Depoları TFVC'den Git'e içeri aktarma ve geçirme

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Kodu mevcut bir TFVC deposundan aynı kuruluş içindeki yeni bir Git deposuna geçirebilirsiniz. Git'e geçiş, büyük TFVC depoları ve ekipleri için dahil olan bir işlemdir. TFVC gibi merkezi sürüm denetim sistemleri, Git'ten temel yollarla farklı davranır. Anahtar, yeni komutları öğrenmekten çok daha fazlasını içerir. Dikkatli bir planlama gerektiren kesintiye neden olan bir değişikliktir. Şu konularda düşünmeniz gerekir:

  • Araçları ve süreçleri düzeltme
  • İkili dosyaları ve yürütülebilir dosyaları kaldırma
  • Ekibinizi eğitin

Geçişi başlatmadan önce Merkezi sürüm denetimini Git'e ve aşağıdaki TFVC'den Git'e Geçir bölümünü okumanızı kesinlikle öneririz.

İçeri aktarma deneyimi, küçük basit TFVC depoları için mükemmeldir. Ayrıca, Merkezi sürüm denetiminde Git'e ve aşağıdaki TFVC'den Git'e Geçiş bölümünde açıklandığı gibi zaten "temizlenmiş" depolar için de iyidir. Bu bölümlerde daha gelişmiş TFVC depo yapılandırmaları için diğer araçlar da önerilir.

Önemli

TFVC ve Git deposu sürüm denetimi geçmişindeki farklılıklar nedeniyle geçmişinizi geçirmenizi öneririz. Microsoft, Windows'u ve diğer ürünleri merkezi sürüm denetiminden Git'e geçirirken bu yaklaşımı benimsemiştir.

Depoyu içeri aktarma

  1. Depolar, Dosyalar'ı seçin.

    Dallarınızı görüntüleme

  2. Depo açılan listesinden Depoyu içeri aktar'ı seçin.

    Depo İçeri Aktar Seçeneği

  3. Kaynak türü açılan listesindeN TFVC'yi seçin

  4. Git deposuna aktarmak istediğiniz depo / dal / klasörün yolunu yazın. Örneğin $/Fabrikam/FabrikamWebsite

  5. TFVC deposundan geçmişi geçirmek istiyorsanız, Geçiş geçmişi'ne tıklayın ve gün sayısını seçin. En son değişiklik kümesinden başlayarak 180 güne kadar geçmiş geçirebilirsiniz. Git'e geçirilen ilk değişiklik kümesinin işleme iletisine TFVC deposu bağlantısı eklenir. Bu, gerektiğinde eski geçmişi bulmayı kolaylaştırır.

  6. Yeni Git deposuna bir ad verin ve İçeri Aktar'a tıklayın. İçeri aktarmanın boyutuna bağlı olarak Git deponuz birkaç dakika içinde hazır olur.

    Depo İçeri Aktar İletişim Kutusu

Sorun giderme

Bu deneyim, geçiş için hazırlanmış küçük, basit TFVC depoları veya depoları için iyileştirilmiştir. Bu, birkaç sınırlaması olduğu anlamına gelir.

  1. Yalnızca kök veya dalın içeriğini geçirir. Örneğin, altında 1 dal ve 1 klasör bulunan bir TFVC projeniz $/Fabrikam varsa, içeri aktarma $/Fabrikam yolu klasörü içeri aktarırken $/Fabrikam/<branch> yalnızca dalı içeri aktarır.
  2. İçeri aktarılan depo ve ilişkili geçmiş (içeri aktarıldıysa) boyutu 1 GB'ı aşamaz.
  3. En fazla 180 günlük geçmişi içeri aktarabilirsiniz.

Yukarıdakilerden herhangi biri içeri aktarma işleminizde engelleyiciyse, teknik incelemelerimizi içeri aktarmak ve okumak için Git-TFS gibi dış araçları denemenizi öneririz - Merkezi sürüm denetimi Git'e ve aşağıdaki TFVC'den Git'e Geçiş bölümü.

Önemli

Git-TFS gibi dış araçların Microsoft ürünleri, hizmetleri veya platformları ile kullanımı tamamen kullanıcının sorumluluğundadır. Microsoft, bu tür üçüncü taraf uzantılarının işlevselliğini, güvenilirliğini veya güvenliğini onaylamaz, desteklemez veya garanti etmez.

TFVC'den Git'e geçiş

Kaynak kodu, merkezi bir sürüm denetim sisteminden Git'e geçirmeden önce ikisi arasındaki farkları anlayın ve geçişe hazırlanın.

Gereksinimler

Geçişleri kolaylaştırmak için, bu makalenin önceki bölümündeki depoyu içeri aktarma yordamını izlemeden önce bir dizi gereksinim vardır.

  • Yalnızca tek bir dalı geçirin. Geçişi planlarken Git için yeni bir dallanma stratejisi seçin. Yalnızca ana dalı geçirmek, GitFlow veya GitHub Flow gibi konu dalı tabanlı bir iş akışını destekler.
  • İpucu geçişi yapın; örneğin, kaynak kodun yalnızca en son sürümünü içeri aktarın. TFVC geçmişi basitse, ekibin yalnızca Git'in dışında çalışabilmesi için geçmişi 180 güne kadar geçirme seçeneği vardır. Daha fazla bilgi için bkz . Git'e geçişinizi planlama.
  • Görüntüler, bilimsel veri kümeleri veya oyun modelleri gibi ikili varlıkları depodan hariç tutun. Bu varlıklar, içeri aktarma aracının yapılandırmadığı Git LFS (Büyük Dosya Depolama) uzantısını kullanmalıdır.
  • İçeri aktarılan deponun boyutunu 1 GB'ın altında tutun.

Depo bu gereksinimleri karşılamıyorsa, geçişinizi yapmak için Git-TFS aracını kullanın.

Önemli

Git-TFS gibi dış araçların Microsoft ürünleri, hizmetleri veya platformları ile kullanımı tamamen kullanıcının sorumluluğundadır. Microsoft, bu tür üçüncü taraf uzantılarının işlevselliğini, güvenilirliğini veya güvenliğini onaylamaz, desteklemez veya garanti etmez.

Geçiş adımları

TFVC'den geçiş işlemi genellikle basittir:

  1. Yerel diskinizde TFVC'den dalın en son sürümüne göz atın.
  2. Depodan ikili dosyaları ve derleme araçlarını kaldırın ve NuGet gibi bir paket yönetim sistemi ayarlayın.
  3. Sürüm denetimine özgü yapılandırma yönergelerini dönüştürün. Örneğin, dosyaları öğesine dönüştürün .tfignore ve dosyaları öğesine .gitattributesdönüştürün.tpattributes..gitignore
  4. Değişiklikleri iade edin ve Git'e geçişi gerçekleştirin.

1-3 arası adımlar isteğe bağlıdır. Depoda ikili dosyalar yoksa ve veya ayarlamanız .gitignore gerekmiyorsa, doğrudan Değişiklikleri iade etme ve geçiş adımını gerçekleştirme bölümüne geçebilirsiniz.gitattributes.

En son sürüme göz atın

Yeni bir TFS çalışma alanı oluşturun ve Git'e geçirilen sunucu dizini için bir çalışma klasörü eşleyin. Bunun için tam çalışma klasörü eşlemesi gerekmez. Yalnızca depodan kaldırılacak ikili dosyalar içeren klasörleri ve gibi .tfignoresürüm denetimi sistemine özgü yapılandırma dosyalarını içeren klasörleri eşleyin.

Eşlemeler ayarlandıktan sonra klasörü yerel olarak alın:

tf get /version:T /recursive

İkili dosyaları ve derleme araçlarını kaldırma

Git'in geçmişteki her dosyanın bir kopyasını her geliştiriciye sağlayarak değiştirilen dosyaların geçmişini depolama şekli nedeniyle ikili dosyaları doğrudan depoya denetlemek deponun hızla büyümesine neden olur ve performans sorunlarına neden olabilir.

Kitaplıklar gibi derleme araçları ve bağımlılıkları için NuGet gibi sürüm oluşturma desteğine sahip bir paketleme çözümü benimseyin. Birçok açık kaynak aracı ve kitaplığı NuGet Galerisi'nde zaten mevcuttur, ancak özel bağımlılıklar için yeni NuGet paketleri oluşturun.

Bağımlılıklar NuGet'e taşındıktan sonra git deposuna eklenmediklerinden .gitignoreemin olun.

Sürüm denetimine özgü yapılandırmayı dönüştürme

Team Foundation Sürüm Denetimi, belirli dosyaların TFVC deposuna eklenmemesini sağlayan bir .tfignore dosya sağlar. Dosyayı derleme çıkışı gibi otomatik olarak oluşturulan dosyalar için kullanabilirsiniz .tfignore , böylece bunlar yanlışlıkla iade edilemez.

Proje bu davranışa bağlıysa, dosyayı bir .gitignore dosyaya dönüştürün.tfignore.

Platformlar arası TFVC istemcileri, dosyaların yerel diske nasıl yerleştirildiğini veya depoda nasıl denetlendiğini denetleen bir .tpattributes dosya için de destek sağlar. Bir .tpattributes dosya kullanımdaysa, dosyayı bir .gitattributes dosyaya dönüştürün.

Değişiklikleri iade edin ve geçişi gerçekleştirin

İkili dosyaları kaldıran, paket yönetimine geçirilen veya sürüm denetimine özgü yapılandırmayı dönüştüren değişiklikleri iade edin. TFVC'de bu son değişikliği yaptıktan sonra içeri aktarma işlemini yapabilirsiniz.

İçeri aktarma işlemini yapmak için Depoyu içeri aktarma yordamını izleyin.

Gelişmiş geçişler

Git-TFS aracı, Team Foundation Sürüm Denetimi ile Git arasında iki yönlü bir köprüdür ve geçiş gerçekleştirmek için bunu kullanabilirsiniz. Git-TFS, İçeri Aktarma aracının desteklediği 180 günden daha uzun bir süre boyunca tam geçmişe sahip bir geçiş için uygundur. Veya Git-TFS kullanarak birden çok dal ve birleştirme ilişkisi içeren bir geçiş denemesi yapabilirsiniz.

Git-TFS ile geçiş denemeden önce, TFVC ile Git deposu geçmişi arasında temel farklılıklar olduğuna dikkat edin:

  • Git, geçmişi deponun anlık görüntüsü olarak depolarken, TFVC bir dosyada gerçekleşen ayrık işlemleri kaydeder. TFVC'de yeniden adlandırma, geri alma ve geri alma gibi değişiklik türleri Git'te ifade edilemez. Dosyanın A dosya Bolarak yeniden adlandırıldığını görmek yerine, yalnızca bu dosyanın A silindiğini ve dosyanın B aynı işlemeye eklendiğini izler.
  • Git'in TFVC etiketinin doğrudan analogu yoktur. Etiketler belirli bir sürümde herhangi bir sayıda dosya içerebilir ve farklı sürümlerde dosyaları yansıtabilir. Kavramsal olarak benzer olsa da Git etiketleri, deponun tamamının belirli bir noktada anlık görüntüsünü gösterir. Proje, teslim edilenleri öğrenmek için TFVC etiketlerini kullanıyorsa Git etiketleri bu bilgileri sağlamayabilir.
  • TFVC'deki birleştirmeler deponun tamamında değil dosya düzeyinde gerçekleşir. Değiştirilen dosyaların yalnızca bir alt kümesi bir daldan diğerine birleştirilebilir. Daha sonra kalan değiştirilen dosyalar sonraki bir değişiklik kümesinde birleştirilebilir. Git'te birleştirme tüm depoyu etkiler ve her iki değişiklik kümesi de birleştirme olarak görülemez.

Bu farklılıklar nedeniyle, geçmişi görüntülemek için bir ipucu geçişi yapmanız ve TFVC deponuzu çevrimiçi ancak salt okunur tutmanız önerilir.

Git-TFS ile gelişmiş geçiş denemesi yapmak için bkz . Geçmişe sahip tek bir dalı kopyalama veya birleştirme geçmişi olan tüm dalları kopyalama.

Önemli

Git-TFS gibi dış araçların Microsoft ürünleri, hizmetleri veya platformları ile kullanımı tamamen kullanıcının sorumluluğundadır. Microsoft, bu tür üçüncü taraf uzantılarının işlevselliğini, güvenilirliğini veya güvenliğini onaylamaz, desteklemez veya garanti etmez.

İş akışını güncelleştirme

Merkezi sürüm denetim sisteminden Git'e geçmek yalnızca kodu geçirmekten daha fazlasıdır. Ekibin Git'in mevcut sürüm denetim sisteminden ne kadar farklı olduğunu ve bu farklılıkların günlük çalışmayı nasıl etkilediğini anlamak için eğitime ihtiyacı vardır.

Merkezi sürüm denetiminden Git'e geçiş hakkında daha fazla bilgi edinin.