Team Foundation sürüm denetimi komutlarını kullanma
Makale
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Visual Studio'da gerçekleştirebileceğiniz neredeyse tüm Team Foundation Sürüm Denetimi (TFVC) görevlerini gerçekleştirmek için sürüm denetimi komutlarını kullanabilirsiniz. Visual Studio'da yapılamayan birkaç görevi gerçekleştirmek için sürüm denetimi komutlarını da kullanabilirsiniz. Sürüm denetimi komutlarını komut isteminden veya betik içinde çalıştırmak için aracı kullanırsınız tf.exe .
Komut çalıştırma
Visual Studio komut istemini başlatmak için Windows Başlat'tan VS2022 veya önceki sürüm kısayolu için Geliştirici Komut İstemi'ni seçin.
Not
Visual Studio 2019 ve sonraki sürümlerde, tf.exe ikili dosya artık önceki bazı sürümlerde olduğu gibi Visual Studio yükleme yolunda sabit bir konumda değildir. Örneğin, C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE. Betiğiniz kullanıyorsa tf.exe, Visual Studio yükleme yolunu temel alarak dosyanın yolunu sabit kodlamayın.
Çoğu durumda, sürüm denetimi komutunu çalışma alanına eşlenmiş bir dizin bağlamında çalıştırırsınız. Örneğin, $/SiteApp/Main/ ile c:\\code\\SiteApp\\Main\\eşlenir. Çalışma alanı içindeki tüm öğelerin en son sürümünü almak için aşağıdaki komutu kullanın:
c:\code\SiteApp\Main\SolutionA>tf get
Geliştirme makinenizi ayarlama ve çalışma alanlarını yönetme
Çalışma alanınız, ekibinizin kod tabanının yerel bir kopyasıdır. Bu, geliştirme makinenizde yerel bir kopya olduğundan, çalışmanızı iade etmeye hazır olana kadar kodunuzu yalıtarak geliştirebilir ve test edebilirsiniz. Çalışma alanınızı yönetmek için bazı komutlar şunlardır:
Çeşitli nedenlerle, bazen devam eden çalışmalarınızın bir kısmını veya tümünü ayırmanız gerekir. Çalışmanızı askıya alıp sürdürmek ve raf kümelerinizi yönetmek için şu komutları kullanın:
Her komutun söz dizimi, her başvuru makalesinin en üstünde görünür.
Gerekli ve isteğe bağlı bağımsız değişkenler
Köşeli ayraçsız bağımsız değişkenler gereklidir. [Köşeli Ayraçlar] komutu tamamlamak için gerekli olmayan isteğe bağlı bağımsız değişkenleri gösterir. Ancak, bazı isteğe bağlı bağımsız değişkenler, seçeneği belirtmeseniz bile komuta uygulanan varsayılan değerlere sahiptir.
Özel bağımsız değişkenler
Seçenekler bir kanalla ()| ayrıldığında, seçeneklerden birini belirtebilirsiniz.
Ayrıntılı ve değiştirilebilir bağımsız değişkenler
Köşeli ayraç içine alınmamış öğeler, ayrıntılı olarak eklediğiniz seçeneklerdir. Köşeli ayraç (< ve >) içine alınmış öğeler, komut gerçekleştirmek için gerçek karakterlerle değiştirmeniz gereken bağımsız değişkenlerdir.
<item-spec>: Bu bağımsız değişkeni, kullanıma kullandığınız öğeleri tanımlayan bir öğe belirtimi ile değiştirmeniz gerekir.
Aşağıdaki bağımsız değişkenler isteğe bağlıdır. Bunları sağlamazsanız, bunların etkilerinden hiçbiri komut için geçerli değildir:
/lock:(none|checkin|checkout): Seçeneği belirtmezseniz /lock sistem varsayılan olarak kullanır /lock:none . Aksi takdirde, diğer kilit seçeneklerinden birini belirtebilirsiniz.
/recursive: Bir klasördeki birden çok öğeyi yinelemeli olarak kullanıma almak istiyorsanız, bu seçeneği ayrıntılı olarak belirtmeniz gerekir.
/login:<username>, <password>: Komutu başka bir kullanıcı olarak çalıştırmak istiyorsanız, verbatim seçeneğini belirtmeniz ve yerine <username> kullanıcının adını kullanmanız /login gerekir. Gerekirse değerini kullanıcının parolası ile değiştirin <password> .
Komuttan etkilenen öğeleri belirtme
Komuttan hangi öğelerin etkileneceğini belirtmek için öğe belirtimlerini ve sürüm belirtimlerini kullanabilirsiniz.
Etkilenen öğeleri belirtmek için bir öğe belirtimi bağımsız değişkeni kullanma
Bir komuttan etkilenen öğeleri belirtmek için bir öğe belirtimi kullanırsınız. Öğeleri bir istemci makinesinde veya Azure DevOps sunucunuzda belirtebilirsiniz. ve gibi * joker karakterler kullanabilirsiniz.
İstemci öğesi belirtim bağımsız değişkenleri
İstemci öğesi belirtimi bağımsız değişkeni, istemci makinesindeki öğelerin yolunu belirtir; örneğin:
C:\code\SiteApp\Main\SolutionA\ gibi bir klasör.
C:\code\SiteApp\Main\SolutionA\Project1\program.cs gibi bir dosya.
C:\code\SiteApp\Main\SolutionA\*.cs gibi birden çok dosya.
\\myshare\code\SiteApp\Main gibi bir evrensel adlandırma kuralı (UNC) yolu.
Sunucu öğesi belirtim bağımsız değişkenleri
Sunucu öğesi belirtimi bağımsız değişkeni, Azure DevOps sunucunuzdaki öğelerin yolunu belirtir; örneğin:
$/SiteApp/Main/SolutionA gibi bir klasör.
$/SiteApp/Main/SolutionA/Project1/program.cs gibi bir dosya.
$/SiteApp/Main/SolutionA/*.cs gibi birden çok dosya.
Genellikle istemci makinesinde olmayan öğelerde bir komut çalıştırmanız gerektiğinde sunucu öğesi belirtimi bağımsız değişkenlerini kullanırsınız. Örneğin, bir geliştirme makinesi üzerinde çalıştığınızı varsayalım. Çalışmadığınız bir proje koleksiyonundaki bazı öğeler hakkında düzeltme geçmişi verileri almanız gerekiyorsa, aşağıdaki komutu kullanabilirsiniz:
c:\>tf history /collection:https://fabrikam-3:8080/tfs/DefaultCollection
$/SiteApp/Main/SolutionA/Project1/* /recursive
/noprompt
Birden çok öğe belirtimi bağımsız değişkeni
Bazı komutlar için, birden çok öğe belirtimi bağımsız değişkeni belirtebilirsiniz, örneğin:
Bu komut program.cs ve program2.c.'i kullanıma alır.
Öğelerin etkilenen sürümlerini belirtmek için sürüm belirtimi bağımsız değişkeni kullanma
Bir komuttan etkilenen öğelerin sürümünü belirtmek için bir sürüm belirtimi kullanırsınız. Sürüm belirtimi sağlamak için şunları yapabilirsiniz:
/version seçeneğini kullanın, örneğin, /version:C44.
Sürüm belirtimini noktalı virgülle bir öğe belirtimine (örneğin, program1.cs;C44) ekleme.
Geçmiş komutunu veya Fark komutunu kullandığınızda, sürümleri bir tilde ile ayırarak bir sürüm aralığı belirtebilirsiniz, örneğin:
c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2022~D4/24/2022
Bir sürüm belirtimi belirtmek için aşağıdaki söz dizimini kullanın:
Tür
Sözdizimi
Açıklama
Örnekler
Sonuç
Changeset
[C]<version-number>
Öğeleri değişiklik kümesi numarasına göre belirtir. Kapsamdaki bir öğe belirtilen değişiklik kümesinde değiştirilmediyse, sistem belirtilen değişiklik kümesinden önce oluşan öğenin en son sürümünü alır. Yalnızca bir sayı belirtirseniz atlayabilirsiniz C .
tf get readme.txt /v:C8
tf get readme.txt /v:8
tf get readme.txt;8
değişiklik kümesi 8'de readme.txt değiştirildiyse, örnek kod dosyanın bu sürümünü alır. Aksi takdirde, readme.txt 8 sürümünden önceki en son sürümünü alır.
Etiket
L<label>
Bir etiketin uygulandığı öğeleri belirtir.
tf get readme.txt;LJulyHotFix
tf get /version:LLastKnownGood
İlk örnek, JulyHotFix etiketli readme.txt sürümünü alır. İkincisi, LastKnownGood etiketli değişiklik kümesi oluşturulduğunda var olan çalışma alanında tüm etiketlenmiş öğelerin sürümünü alır (ve etiketlenmemiş öğeleri siler). İkinci örnekteki kodu otomatik derleme işleminin bir parçası olarak kullanabilirsiniz.
Tarih ve saat
D<yyyy-mm-ddTxx:xx>
veya
D<mm/dd/yyyy>
veya
.NET Framework tarafından desteklenen herhangi bir biçim.
veya
Yerel makinede desteklenen tarih biçimlerinden herhangi biri.
Belirli bir tarihte belirli bir zamanda oluşturulan değişiklik kümesini belirtir.
tf get /version:D2022-03-22
tf get /version:D2022-03-22T09:00
İlk örnek, çalışma alanını 22 Mart 2022'de gece yarısı var olan kod tabanıyla eşleşecek şekilde güncelleştirir. İkincisi, çalışma alanını 22 Mart 2022 saat 09:00'da var olan kod tabanıyla eşleşecek şekilde güncelleştirir. .NET Framework tarafından desteklenen tarih ve saat biçimleri hakkında daha fazla bilgi için bkz . DateTime ve Standard tarih ve saat biçimi dizeleri.
Geçerli çalışma alanı
W
Çalışma alanınızdaki sürümü belirtir.
-
-
Belirtilen çalışma alanı
W<workspace-name>; <workspace-owner>
Belirtilen çalışma alanında sürümü belirtir.
tf get /version:WResolveRIConflicts;PatW
Örnek, sahip olduğu PatW çalışma alanında ResolveRIConflicts sürümü belirtir.
İpucu
T
En son sürümü belirtir.
-
-
Komut işlevlerini değiştirmek için seçenekleri kullanma
Komut işlevlerini değiştirmek için bazı yaygın seçenekleri kullanabilirsiniz.
/noprompt Veri giriş isteklerini engellemek ve çıkış verilerini yeniden yönlendirmek için seçeneğini kullanın
/noprompt Veri girişi isteklerini engellemek ve çıkış verilerini komut istemi penceresine yeniden yönlendirmek için seçeneğini kullanın. Bu seçenek, aşağıdaki durumlarda bir betikte sürüm denetimi komutlarını kullanmanız gerektiğinde yararlı olabilir:
Komut, kullanıcının müdahalesi olmadan devam eder.
Betiğin üzerinde ayrıştırma veya yakalama gibi işlemler gerçekleştirmesi için veriler kullanılabilir.
Bu seçeneği kullandığınızda sistem:
Giriş için tüm istekleri gizler:
Sorular komut istemi penceresinde sorulmuyor. Örneğin, bu seçenekle Geri Al komutunu kullandığınızda, sistem değişiklikleri geri almak isteyip istemediğinizi onaylamanızı istemez.
Windows ve iletişim kutuları görüntülenmez. Örneğin, bu seçeneği İade Et komutuyla kullanabilirsiniz. Sistem, öğeleri ve ilişkili iş öğelerini onaylamanız için Kontrol iletişim kutusunu görüntülemez. Bunun yerine, sistem öğeleri onay olmadan denetler.
Çıktı verilerini komut istemine yönlendirir. Örneğin, Geçmiş komutuyla bu seçeneği kullanabilirsiniz. Veriler, Geçmiş penceresi yerine komut istemi penceresinde görüntülenir.
/login Kimlik bilgilerini belirtmek için seçeneğini kullanın
/login komutunun çalıştırılacak Azure DevOps sunucusu kullanıcı hesabını belirtmek için seçeneğini kullanın. Bu seçenek, başka bir ekip üyesinin makinesinde çalışırken yararlı olabilir.
Örneğin, ekip üyenizin geliştirme makinesinde çalıştığınızı varsayalım. Daha önce kilitlediğiniz bir dosyanın kilidini açmak için Kilitle komutunu kullanırsınız:
Bu komutu girdikten sonra sistem, girişinizi maskeleyen bir iletişim kutusuna parolanızı girmenizi ister.
/lock Kilidi uygulama veya kaldırma seçeneğini kullanma
Önemli
En iyi uygulama olarak seçeneği isteğe bağlı olarak kullanın /lock . Bir öğeyi neden kilitlediğiniz ve kilidi ne zaman kaldırmayı planladığınızı ekip arkadaşlarınıza bildirin.
/lock Ekle veya Düzenle gibi başka bir komut çalıştırdığınızda kilidi uygulamak veya kaldırmak için seçeneğini kullanın.
/lock:(none|checkin|checkout)
/lock komut aşağıdaki seçenekleri kullanır:
None: Bir öğeye kilit yerleştirilmemiştir. Bir kilit zaten mevcutsa kaldırılır.
Checkin veya Checkout: Bir kilit uygulanır. Daha fazla bilgi için bkz . Kilit türlerini anlama.
Not
Birkaç durumda kilit işlemi başarısız olabilir:
Belirtilen öğelerden herhangi birini başka kullanıcılar kilitlemişse, kilitleme işlemi başarısız olur.
Belirtilen öğede bekleyen bir değişiklik varsa sistem bu anahtarı yoksayar. Bu durumda, bir öğedeki kilidi değiştirmek için Kilit komutunu kullanmanız gerekir.
Seçenek kısayollarını kullanma
Aşağıdaki seçenekleri kısaltabilirsiniz.
Seçenek
Seçenek Diğer Adı
/comment
-C
/computer
-M
/delete
-D
/force
-P
/format
-F
/help
-?, -H
/lock
-K
/login
-Y
/newname
-N
/noprompt
-I
/owner
-O
/recursive
-R
/server
-S
/slotmode
-X
/template
-T
/user
-U
/version
-V
/workspace
-W
Çıkış kodlarını anlama
Sürüm denetimi komutları aşağıdaki çıkış kodlarını döndürür:
Çıkış Kodu
Tanım
0
Başarılı.
1
Kısmi başarı. En azından bir şey ya da muhtemelen her şey başarılı olamadı.
2
Tanınmayan komut.
100
Hiçbir şey başarılı olmadı.
Örneğin, aşağıdaki komutu çalıştırdığınızı varsayalım:
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Team Foundation Sürüm Denetimi görünüm komutunu kullanarak dosyanın belirli bir sürümünü alın, bilgisayarınızda geçici bir klasörde depolayın ve görüntüleyin.
Bekleyen değişiklikler ve bekleyen değişiklik adayları hakkındaki bilgileri görüntülemek için Team Foundation Sürüm Denetimi (TFVC) Durum komutunu kullanın.
çalışma alanı ve sunucu klasörleri arasındaki eşlemeler hakkında bilgi oluşturmak, değiştirmek veya görüntülemek için Team Foundation Sürüm Denetimi workfold komutunu kullanın.