TFS 2010'un Visual Studio dışındaki dosyalarda yapılan değişiklikleri algılaması nasıl sağlanır?


118

Team Foundation Server 2010'u Visual Studio 2010 ile kullanıyorum.

Visual Studio dışındaki bir dosyayı her değiştirdiğimde, TFS dosyada yapılan değişikliği algılamıyor gibi görünüyor ve bu nedenle bana dosya değiştirildikten sonra teslim etme seçeneği sunmuyor.

Bu nasıl çözülebilir?


18
Subversion veya Git (ve belki diğerleri), bir dosyayı teslim etmek / teslim almak için API yerine dosyaların karmalarını karşılaştırıyor. Çok daha basit ve çok daha az riskli!
Steve B

8
daha kötüsü TFS, değiştirilmiş bir dosyanın teslim edilmesi gerektiğini bile fark etmez, bu yüzden onu genellikle unutabilirsiniz .. ta ki meslektaşınız onu kontrol edene ve kodunuzun derlenmediğini veya çalışmadığını anlayana kadar. İnsanların TFS'nin "steroidler üzerinde VSS" olduğunu söylemesine şaşmamalı - daha iyi, ancak yine de birçok VSS problemi var.
gbjbaanb

Steroidlerin vücudunuzu tahrip etmesi gibi, steroidler üzerindeki VSS.
Ian Kemp

Yanıtlar:


48

Visual Studio dışında çalışırken sunucunuza bir ağ bağlantınız varsa, muhtemelen en iyisi dosyayı düzenlemeden önce tf komut satırı istemcisini kullanarak veya Windows Gezgini kabuk entegrasyonunu kullanarak kontrol etmektir. mevcut TFS Elektrikli El Aletleri serbest bırakılması. (Ayrıca, artan sayıda diğer araç, bunu otomatik hale getiren TFS entegrasyonuna sahiptir, ancak yalnızca not defteri kullanıyorsanız, bunun yine de manuel bir adım olması gerekir.)

Elbette, çalışırken birçok kez olur ve dosyaları kontrol etmenize izin veren bir ağ bağlantınız yoktur.

Hangi dosyaları değiştirdiğinizi biliyorsanız, bunları Visual Studio'nun içinden teslim alabilirsiniz, ardından tekrar iade edebilirsiniz.

Hangi dosyaları düzenlediğinizi bilmiyorsanız, tfpt onlinekomutu çalıştırarak değişiklikleri tespit edebilirsiniz (ayrıca Power Tools sürümünün bir parçasıdır). Bu, yerel olarak değiştirilmiş dosyaları bulur ve bu dosyaları sunucudan kontrol eder.


Visual Studio, dosyalardaki değişiklikleri yalnızca teslim alarak algılamıyor gibi görünüyor. Bir klasöre göz atmayı denedim ve içerik, bekleyen değişikliklerde düzenleme olarak göründü. Sonra Dosya Gezgini'ndeki klasörü sildim ve bekleyen değişiklikleri yeniledim ancak Visual Studio bekleyen değişikliklerde dosyaların silindiğini söylemedi. Ayrıca, dosyalar Çözüm Gezgini'nde hala mevcuttu.
Kyle Delaney

160

TFS'nin bunun için bir "Uzlaştır" komutu vardır:

  1. Kaynak denetim Explorer
  2. Değişikliklerin olduğu klasöre sağ tıklayın ve Karşılaştır'ı seçin
  3. Uzlaştırmak istediğiniz dosyaları seçin ( tüm dosyaları seçmek için CTRL+ ' Aya basın )
  4. Tıklayın uzlaştırma düğmesi
  5. Klasör Farklarını Uzlaştır iletişim kutusundaki seçenekleri ayarlayın . Emin olun bekleyen değişiklikleri yok Files ayarlandığında Check Out
  6. tıklayın Tamam
  7. Yerel değişiklikleriniz varsa, Ödünç Verme iletişim kutusu gösterilecektir. Tercih edilen Kilit türünü ayarlayın
  8. Kontrol Et'i tıklayın

Klasör Farklılıklarını Uzlaştırın

Ayrıca bkz: Klasörler arasındaki farklılıkları uzlaştırma


13
Komut satırı veya riskli 'Bekleyen değişiklikleri geri al' gerektirmediğinden bu en iyi yanıttır.
NickH

4
Günümü kurtardım! Adımlarınızı tam olarak takip ettim ve tam olarak beklendiği gibi çalıştı. :-)
Gilad Barner

4
Açıklandığı gibi çalıştı. En iyi cevap olmalı.
Nicolas

Maalesef, bunu tüm projem üzerinde yaparken, şu hatayı alıyorum Belirtilen yol, dosya adı veya her ikisi de çok uzun. Tam nitelikli ad 260 karakterden az olmalı ve dizin adı 248 karakterden az olmalıdır. Tek tek klasörleri seçmek benim için bir seçenek değil, çünkü değiştirdiğim tüm dosya dizinlerini hatırlayamıyorum. Herhangi bir fikir?
kraftwer 1

2
VS 2015 güncelleme 3 ile mükemmel çalışıyor, çok teşekkürler. En iyi cevap olmalı, işe
yaraması

35

Bu, TFS Elektrikli El Aletleri kullanarak benim için çalıştı:

tfpt online /adds /deletes /diff /noprompt /recursive directory-name

(burada dizin adı, güncellenecek dizine giden yoldur, aksi takdirde tüm TFS deponuzdaki değişiklikleri algılar)

Gerçekte herhangi bir değişiklik yapmadan ne yapacağını bilmek istiyorsanız, /previewanahtarı ekleyerek onu kuru çalıştırmaya zorlayabilirsiniz .


@Adam Batkin bahşiş için teşekkürler. Büyü gibi çalıştı ve şimdi düzeldim! +1
iOnline247

9
Dikkat edin, bu komut satırı istenmeyen dosyaları da içerecektir: * .user, BIN \, obj, vb ...
Steve B

1
Şerefe, şirketin TFS'sini yerel Git depomdan güncellemeyi otomatik hale getirmek için bir komut satırı yolu arıyordum!
Mark K Cowan

2
@SteveB bir orada /exclude:fld_name/*,filenameçok beni halped istenmeyen dosyaları hariç için kullanılabilecek anahtar ..
Kresimir Pendic

1
Bu şekilde çalışıyorum tfpt online /deletes /noprompt /recursive directory-nameve "değiştirilecek" bin dosyam var, bu yüzden geri almak zorundayım. Ama bunlara hiç dokunmadım, sadece klasörü sildim.
Dzmitry Lahoda

16
*1- make changes outside of Visual Studio
2- go to Visual Studio and open Source Control Explorer
3- right click on the folder > "Check Out for Edit" > "Check Out"
4- right click on the same folder > "Undo Pending Changes..." > "Undo changes" > "No to All"*

Bu geçici çözümü bir dalda test ettim ve bana çok yardımcı oldu. Ancak elle yapılması gereken yalnızca yeni dosyalar ve yeni klasörler vardır.

Operasyondan önce şube oluşturmanızı tavsiye ederim. Ameliyat zamanını izole eder.

Not: Bu teknik, TFS'nin her zaman değiştirilmiş olarak işaretlediği dosyaların aynısını temizler.


3
Bu gerçekten alga'nın gönderisine bir yorum olmalı , yeni bir cevap değil. Her halükarda, yine de, yosun yukarıda önerdiğinde tavsiye etmemle aynı nedenle bunu yapmamayı tavsiye ederim.
Edward Thomson

Kesinlikle mükemmel! Tam olarak aradığım şey (şirketimiz TFS sunucumuzu taşıdıktan ve TFS / VS2010 bundan dolayı şaşkına döndükten sonra). Şimdi, düzenlediğim dosyalarımı kontrol ettim. Teşekkürler!
Mike Gledhill

Bu işe yarar, ancak MS bunu yapmanın daha iyi yollarını sağlamalıdır. İyi bir üründe komut satırı ve hackler gerekli olmamalıdır (özellikle bu VS'ye katıştırılmışsa). SVN ve Mercurial bunu eğlence için yapıyor ...
user2173353

4. nokta yerine tfpt uu stackoverflow.com/a/544285/10245
Tim Abell

Bu sadece yaptığınız şeyi geri alır. Visual Studio'nun yaptıklarınızdan haberdar olmasını sağlamaz.
Kyle Delaney

7

Bunu dene. Bu bir çeşit geçici çözüm, ancak işe yarıyor:

  1. Visual Studio dışında değişiklik yapma
  2. Visual Studio'ya gidin ve Kaynak Denetim Gezgini'ni açın
  3. klasöre sağ tıklayın> "Düzenleme için Teslim Al" > "Teslim Al"
  4. Aynı klasöre sağ tıklayın> "al Beklemede Değişiklikler ..." > "Değişiklikleri geri al" > " Hayır All etmek "

Bu kadar. Değişiklikler şimdi görülebilir.


3
Buna karşı gerçekten tavsiye ederim - en büyük endişem, bunu parmak uçlarıma vurmam ve yanlışlıkla tüm yasal değişikliklerimi geri almam olurdu. Ek olarak, istemcinize ve sunucu yapılandırmanıza bağlı olarak, muhtemelen tüm dosyalardan bazılarını veya olası tüm dosyaları kilitleyecek ve teslim alırken en sonuncuyu alabilecek ve kesinlikle sinir bozucu olabilecek tüm dosyaları kontrol ediyorsunuz.
Edward Thomson

1
Bu sadece yaptığınız şeyi geri alır. Visual Studio'nun yaptıklarınızdan haberdar olmasını sağlamaz.
Kyle Delaney

Ve o seansta yeni öğeler yarattıysanız veya eklediyseniz: Gone baby, gone!
Christian

4

TFS'nin Visual Studio dışında değişen dosyaları bulmasını sağlamak için başka bir çözüm de var:

  1. Çözümü çevrimdışı açın
  2. Çözüm Gezgini'nde çözüm dosyasını seçin ve ardından Çevrimiçi Ol düğmesine ( GoOnline Düğme Simgesi) basın.

TFS, bundan sonra değişiklikleri otomatik olarak tarar.

Birinci adım birkaç farklı yolla gerçekleştirilebilir. İşte bazıları:

  • GoOffline Uzantısını kullanın - çok basit ve etkili.
  • Çözümü açarken TFS kimlik bilgileri istenirse (otomatik etki alanı kimlik doğrulaması yoksa), kimlik bilgilerini girmeyin. Çözüm çevrimdışı açılacak ve Çevrimiçi Ol düğmesine bastıktan sonra oturum açacaksınız
  • (aşırı çözüm) Ağ kablonuzun bağlantısını kesin; Çözümü açın; Ağ kablosunu bağlayın.

3

Visual Sourcesafe de bu şekilde çalışıyor ve değişikliği fark etmek için VSS veya TFS'yi elde ettiğim yol, dosyayı Visual Studio içinde bir kez kontrol etmektir.


1

Kaynak Denetimini açın ve TFS klasörünüze gidin. Klasöre sağ tıklayın ve 'Karşılaştır'ı seçin.

Düzenlenen dosyalarınızın kırmızıyla işaretlendiğine dikkat edin.

Bunun tfpt online, size salt okunur olmayan ve düzenlenmemiş dosyaları da almasından daha iyi olduğunu düşünüyorum.


1

Geçmişte, İnternet'im kapalıyken ve çevrimdışı çalıştığımda bu sorunu yaşadım ve değişikliklerimin çoğu Takım Gezgini'nde görünmedi.

Şu adımları izleyin: İlk olarak, çözüm gezgininde, yeniden uzlaştırmak istediğiniz klasörü seçin (benim için bu, tüm çözüm klasörümdü) ve Karşılaştır'ı seçin ... Filtreyi Değiştir'egörüntü açıklamasını buraya girin tıklayın ve filtre metninde- kutu, yazabilirsiniz:

*.cs;!obj\;!bin\;!packages\;

Bu örnekte, aramaya yalnızca C # dosyalarını dahil edecek ve klasörlerde hariç tutacaktır: bin, obj ve paketler.

Değişiklik Bekleyen sütununun dosyanın düzenle, ekle vb. Olarak işaretlenip işaretlenmediğine veya hiçbir şey olmadığına dair bilgi içerdiğine dikkat edin ...

  • Düzenleme olarak işaretlemek için (yerel öğenin eşleşen bir sunucu öğesi olduğunda), dosyayı seçin ve Düzenle için Teslim Al'ı seçin ...
  • Ekle olarak işaretlemek için (yerel öğenin herhangi bir sunucu öğesi olmadığında), dosyayı seçin ve Dosya Ekle'yi seçin.

Son olarak, projelerin neden burada listelenmediğinden emin değilim (* .cs filtresini kaldırdıktan sonra hala görünmüyor), bu nedenle projelerin de güncellendiğinden emin olmak için çözümü yeniden oluşturun

+ Çözümde, Çevrimiçi Ol diyen bağlan düğmesine (görünüyorsa) tıklayın .


0

Visual Studio 2015'te proje açıkken Visual Studio'nun dosyaların harici olarak değiştirildiğini keşfettiğini ve hiçbir şey yapmam gerekmeden bunları otomatik olarak kontrol ettiğini buldum. Projeye normal şekilde giriş yapmak, harici değişiklikleri kaydetti.


0

Benim durumumda aşağıdakiler işe yaradı (en azından denediğimde):

  1. Git Beklemede Değişiklikler panelinden
  2. Dahil Edilen veya Hariç Tutulan değişiklikler altında Seçenekleri Görüntüle'yi seçin .
  3. Tümünü Göster ve Çözüm Değişikliklerini Göster arasında geçiş yapın
  4. İsterseniz geri dönün

TFS Değişikliklerini Yenile

Görünüm Seçeneğinin Değiştirilmesi, değiştirilen dosyaların yenilenmesini zorunlu kılar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.