Geçmiş dahil tfvc'yi Git'e taşıma

Sep 18 2020

Tfvc'den Git sürüm kontrolüne geçmeyi planlıyoruz.

Birkaç GB kodumuz ve binlerce değişiklik setimiz var. Bazı makaleler okudum ve Microsoft belgelerini inceledim ve 2 seçenek buldum.

  1. ipucu geçişi - Azure Devops yerleşik aracını "Depoyu İçe Aktar" olarak kullanabilirim. Imported repository'nin 1GB olması gibi kısıtlamaları vardır ve 180 günlük geçmişe sahip olabiliriz.

  2. Git TFS - Bu benim ihtiyacıma uygun. Ancak tüm kodu ve tüm geçmişi taşıyıp taşıyamayacağından emin değilim.

Bunu nasıl başarabilirim? Bundan başka seçenek var mı?

Yanıtlar

1 DanCsharpster Sep 18 2020 at 23:01

Git-tfs ve git-tf araçları oldukça iyi çalışır. Git-tfs'nin benioku dosyasında bazı iyi belgeleri vardır. Yine de bunun nasıl çalıştığını aklınızda bulundurun. TFS oldukça sınırlıdır. Olan, tüm tfs geçmişini çıkarmanız ve ondan yerel bir git deposu oluşturmanızdır. Oradan istediğiniz git uzaktan kumandaya koyabilirsiniz. Tarihi ve yazar isimlerini gayet iyi koruyabilmelidir. Azure DevOps'ta git'e geçiyorsanız, size yardımcı olabilecek bir geçiş aracı vardır.

Ayrıca, bu popüler bir soru akılda ayı olduğunu ve olmuştur istendi önce .

1 Philippe Sep 19 2020 at 14:41

GIT-TFS - Bu benim ihtiyacımı karşılar. Ancak tüm kodu ve tüm geçmişi taşıyıp taşıyamayacağından emin değilim.

TFVC ve Git'in verileri saklama şekli çok farklı olduğundan, hiçbir araç mükemmel değildir. Bu yüzden birçok şeyi denemeniz ve ihtiyaçlarınıza en uygun yolu bulmanız gerekecek. Ama eminim hiçbiri mükemmel olmayacak.

Burada gerçekten 2 seçeneğiniz git-tfs ve git-tf'dir.

Ancak git-tfs için bazı avantajlarla. Görmek:

Git-tf ve git-tfs arasındaki fark nedir?

Bunu nasıl başarabilirim?

Bu dokümantasyona zaten koyduğumdan fazlasını söyleyemem: https://github.com/git-tfs/git-tfs/blob/master/doc/usecases/migrate_tfs_to_git.md

Ancak bu tür bir geçiş mükemmel bir süreç olmadığından, bunu yapmanın iyi yolunu bulana kadar birçok deneme ve hata yapmanız gerekecektir. Küçük bir geçmişle başlayın çünkü verileri TFVC'den almak oldukça yavaş 😕

Bundan başka seçenek var mı?

Var ama hiçbiri mükemmel bir çözüm değil (ama yine de denenecek çözümler var)

https://github.com/viceroypenguin/tfs-fast-export https://github.com/kunom/tfsdb-fast-export

İyi bir arama yaparsanız, belirli bir geçiş için 1 veya 2 kez çalışan başka özel çözümler bulacaksınız ...

ipucu geçişi - Azure Devops yerleşik aracını "Depoyu İçe Aktar" olarak kullanabilirim. Imported repository'nin 1GB olması gibi kısıtlamaları vardır ve 180 günlük geçmişe sahip olabiliriz.

Tarihiniz ne kadar büyükse, TÜM tarihi taşımak o kadar az mantıklı olur. Bu nedenle, yalnızca birkaç ay geçiş yapmak ve TFVC geçmişini bir arşiv olarak tutmak tamamen mantıklı olabilir.

Ayrıca, geçişinizi başlatmak istediğiniz değişiklik kümesini seçerek bu 'ipucu geçişini' git-tfs veya git-tf ile çoğaltmayı deneyebilirsiniz.

TFVC geçmişi çok garip olduğunda ve buna gerçekten ihtiyacınız olmadığında, son çare, son değişiklik setinin kontrolünden başlamak olabilir. Microsoft'un önerdiği şey budur (bu konuda tamamen hemfikir olmasam bile).

Bu tür bir geçişin başarısı esnek olmaktır, kesinlikle mükemmel olmayacağını kabul edin (çoğunlukla TFVC'nin verileri saklama ve tuhaf şeyler yapmanıza izin verme çılgınca yolu nedeniyle) ve devam etmenin iyi bir yolunu bulmalısınız!