Aracılığıyla paylaş


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

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Kodu mevcut bir Team Foundation Sürüm Denetimi (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. Değişiklik, 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
  • Takımınızı eğitme

Önkoşullar

Kategori Gereksinimler
Proje erişimi projesiüyesi.
İzinler - Özel projelerde kodu görüntüleme: En az Temel erişimi.
- Özel projelerde kodu klonlama veya katkıda bulunma: Projede Katkıda Bulunanlar güvenlik grubuna üyelik veya ilgili izinler.
- Dal veya depo izinlerini ayarlayın: izinleri yönetin dal veya depo için.
- Varsayılan dalı değiştirme: Depo izinlerini düzenleme politikaları.
- Depoyu içeri aktarma: Proje Yöneticileri güvenlik grubunun üyesi veya Git proje düzeyi Depo oluşturma izni İzin verolarak ayarlanmıştır. Daha fazla bilgi için bkz . Git deposu izinlerini ayarlama.
Hizmetler Repo'lar etkinleştirildi.
Araçlar Opsiyonel. az repos komutlarını kullanın: Azure DevOps CLI.

Uyarı

Genel projelerde, Paydaş erişimi olan kullanıcılar, kod görüntüleme, kopyalama ve koda katkıda bulunma dahil olmak üzere Azure Depolarına tam erişime sahiptir.

Kategori Gereksinimler
Proje erişimi projesiüyesi.
İzinler - Kodu görüntüle: En az Temel erişim.
- Kodun bir kopyasını oluşturma veya koda katkıda bulunma: Katkıda Bulunanlar güvenlik grubunun üyesi veya projedeki ilgili izinlere sahip olma.
Hizmetler Repo'lar etkinleştirildi.

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

İçeri aktarma deneyimi küçük, basit TFVC depoları için idealdir. Merkezi sürüm denetiminde Git ve TFVC'den Git'e geçiş bölümünde açıklandığı gibi, zaten temiz olan depolar için de uygundur. Bu bölümlerde daha gelişmiş TFVC depo yapılandırmaları için diğer araçlar da önerilir.

Önemli

TFVC ve Git mağazası sürüm denetimi geçmişindeki farklılıklar nedeniyle, Microsoft'un Windows'u ve diğer ürünleri merkezi sürüm denetiminden Git'e geçirirken benimsediği yaklaşım olan geçmişinizi geçirmemenizi öneririz.

Depoyu içeri aktarma

  1. Depolar, Dosyalar'ı seçin.

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

  2. Açılır menüden 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 TFVC deposunun yolunu yazın. Yol şu formatta $/TFVCRepositoryName olmalıdır. Belirli bir dalı içeri aktarmak için şu formatı kullanın: $/TFVCRepositoryName/BranchName. Alt klasörleri de dahil olmak üzere belirli bir klasörü içeri aktarmak için biçimini $/TFVCRepositoryName/FolderNamekullanın. TFVC içeri aktarma süreci yalnızca kök veya dalın içeriğini taşır. Örneğin, $/Fabrikam içinde bir dal ve bir klasör bulunan bir TFVC projeniz varsa, $/Fabrikam içeri aktarma yolu klasörü içeri aktarırken $/Fabrikam/<branch> yalnızca dalı içeri aktarır.

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

  6. Yeni Git deposuna bir ad verin ve İçeri Aktaröğesini seçin. İç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, küçük ve basit TFVC depoları ya da geçiş için hazırlanmış olan depolar için optimize edilmiştir. Bu, birkaç sınırlaması olduğu anlamına gelir.

  1. Sadece kök klasörün veya bir dalın içeriğini aktarır. Örneğin, $/Fabrikam içinde bir dal ve bir klasör bulunan bir TFVC projeniz varsa, $/Fabrikam içeri aktarma 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.

Eğer daha önce listelenen bilgilerden herhangi biri içeri aktarma işleminizi engelliyorsa, Git-TFS gibi dış araçları denemeyi ve teknik incelemelerimizi okumayı öneririz: Merkezi sürüm denetiminden Git'e geçiş 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 Microsoft dışı uzantıları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 depo içeri aktarma prosedürünü izlemeye başlamadan önce birçok gereksinim bulunmaktadır.

  • Yalnızca tek bir dalı geçirin. geçiş planlamaGit için yeni bir dallanma stratejisi seçin. Yalnızca ana dalı geçirmek, Gitflow veya GitHub Flowgibi konu-dal tabanlı bir iş akışını destekler.
  • En son sürümü aktararak geçiş yapın; yani, kaynak kodun yalnızca en son sürümünü içeri aktarın. TFVC geçmişi basitse, bir miktar geçmişi, 180 güne kadar, taşımayı tercih edebilir ve böylece ekip yalnızca Git ile çalışabilir. Daha fazla bilgi için bkz. Git 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 Microsoft dışı uzantıların işlevselliğini, güvenilirliğini veya güvenliğini onaylamaz, desteklemez veya garanti etmez.

Göçmek

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

  1. Yerel diskinizdeki TFVC'den dalının son sürümünü çe.
  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ürme. Örneğin, .tfignore dosyalarını .gitignoreve .tpattributes dosyalarını .gitattributesdönüştürün.
  4. Değişiklikleri iade edin ve Git'e geçiş gerçekleştirin.

1-3 arası adımlar isteğe bağlıdır. Eğer depoda ikili dosyalar yoksa ve .gitignore veya .gitattributesayarlamanız gerekmiyorsa, doğrudan değişiklikleri iade etme ve geçiş adımını gerçekleştirme işlemine devam edebilirsiniz.

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

Yeni bir çalışma alanı oluşturun ve Git'e geçirilen sunucu dizini için bir çalışma klasörü eşleyin. Bu eylem tam çalışma klasörü eşlemesi gerektirmez. Yalnızca depodan kaldırılması gereken ikili dosyaları içeren klasörler ile sürüm kontrol sistemine özgü yapılandırma dosyalarını içeren klasörleri, örneğin .tfignoregibi, eşleyin.

Eşlemeler ayarlandıktan sonra klasörü yerel olarak edinin.

tf get /version:T /recursive

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

Git, değiştirilen dosyaların geçmişini her geliştiriciye geçmiş her dosyanın bir kopyasını sağlayarak depoladığı için ikili dosyaların doğrudan depoya gönderilmesi, deponun hızla büyümesine ve performans sorunlarına yol açması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 araç ve kitaplık, NuGet Galerisiüzerinde 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, onları .gitignorelistesine ekleyerek Git deposuna dahil edilmemelerini sağlayın.

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 dosyası sağlar. .tfignore dosyasını, derleme çıktısı gibi otomatik olarak oluşturulan dosyalar için kullanabilirsiniz, böylece bunlar yanlışlıkla eklenmez.

Proje bu davranışa dayanırsa, .tfignore dosyasını .gitignore bir dosyaya dönüştürün.

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

Değişiklikleri kaydedin ve geçişi gerçekleştirin

Yapılan değişikliklerde ikili dosyaları kaldıran, paket yönetimine geçiş sağlayan veya sürüm kontrolüne özgü yapılandırmayı dönüştürenleri kaydedin. TFVC'de bu son değişikliği yaptıktan sonra, içeri aktarma işleminiyapabilirsiniz.

Gelişmiş geçişler

Git-TFS aracı, TFVS 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 uzun bir süre boyunca tam geçmişe sahip bir geçiş için uygundur. İsterseniz Git-TFS kullanarak birden çok dal ve birleştirme ilişkisi içeren bir geçiş girişiminde de bulunabilirsiniz.

Git-TFS ile geçiş denemeden önce, TFVC ile Git deposu geçmişi arasındaki aşağıdaki temel farklara 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. dosya A dosya Bolarak yeniden adlandırıldığını görmek yerine yalnızca A silindiğini ve dosya 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ı öneririz.

Git-TFS ile gelişmiş bir geçiş girişiminde bulunmak için, bkz. geçmişiyle tek bir dalı kopyalama veya birleştirme geçmişine sahip 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 Microsoft dışı uzantıları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.