Bir TFS girişini nasıl geri alırım?


92

Kısa süre önce TFS'de yaptığım bir değişikliği geri almak istiyorum. Subversion'da bu oldukça basitti. Ancak, TFS'de inanılmaz bir baş ağrısı gibi görünüyor:

1. Seçenek: Önceki Sürümü Alın

  1. Her dosyanın önceki sürümünü manuel olarak alın
  2. Düzenlemek için göz atın
  3. Başarısız - ödeme (VS2008'de) beni en son sürümü almaya zorluyor

Seçenek 2: TFS Elektrikli El Aletleri Edinin

  1. Team Foundation Power Tools'u İndirin
  2. Cmd satırından geri alma komutu verin
  3. Başarısız - bekleyen başka değişiklikler varsa çalışmaz

3. Seçenek: Değişiklikleri Manuel Olarak Geri Al

  1. Değişikliklerimi manuel olarak geri al, ardından yeni bir değişiklik seti uygula

Soru

TFS'de önceki bir değişiklik kümesine nasıl geri dönebilirim?


2
VSS'nin geri dönüşü yoktur. "Geri dönüş" olarak adlandırılan başka bir özelliğe sahipler, ancak TFS açısından bu gerçekten bir Destroy. (a) bunu yalnızca bahşişten yapabilirsiniz; Geri almak istediğinizden sonra herhangi bir ek değişiklik kontrol edilmişse çalışmaz (b) değişiklikleri veritabanından KALICI OLARAK KALDIRIR
Richard Berg

1
Oh, VSS geri dönüşünün kolaylığını ne kadar özlüyorum.
Greg

2
Son zamanlarda bu konuya tökezledim - TFS'de geri dönmek neden bu kadar zor? Geri alma, kaynak kontrolünün temel işlevlerinden biridir
JohnIdol

2
Bu, TFS'de çok acı verici!
Jon Kragh

1
Mercurial'e geç! İş değiştirdim ve kendimi TFS'ye bağladım. O zamandan beri komut satırından Hg gibi görünmesi için PowerShell betikleri yazıyorum.
Sumo

Yanıtlar:


63
  1. Team Foundation Power Tools'u indirin ve yükleyin .
  2. Visual Studio komut istemini açın
  3. TFS'nin eşlendiği dosya sisteminde dizine gidin. Bunu yapmazsanız, geri almayı denediğinizde "Çalışma alanı belirlenemiyor" hatası alırsınız
  4. Diğer her şeyin kontrol edildiğinden veya rafa kaldırıldığından emin olun
  5. arayüzü getirmek için tfpt rollback'i çalıştırın.
  6. Geri almak istediğiniz değişiklik kümelerini seçin
  7. Geri aldığınız dosyaların yeni sürümlerini kontrol edin

Aracın en büyük dezavantajı, siz birleştirmeden önce çalışma alanınızdaki her şeyi yenilemek isteyecek olmasıdır. Bu sorunu, yalnızca etkilenen dosyaların bulunduğu kaynak ağacındaki yere doğrudan eşlenen geri alma için yeni bir çalışma alanı oluşturarak aştım.

Hangi değişiklik setlerinin geri alınacağını bulmak için yardıma ihtiyacınız varsa, ücretsiz Team Foundation Side Kicks eklentisindeki kod inceleme aracını çok yararlı buluyorum .


Bu şekilde deneyebilirsiniz, ancak uyarılabilirsiniz, araçlar iyi bir şekilde belgelenmemiştir ve tüm hataları aşsanız bile, gerçekten geri alma olanağınız olabilir veya olmayabilir. (Sadece 2 saat denedim)
simya

1
Bu teknik benim için çalıştı. Çalışma alanı önerisi çok iyiydi (ve büyük bir kod tabanı ile uğraşıyorsanız önemlidir).
cloggins

1
Uyarı ... TFS ve Visual Studio'nun uyumsuz sürümlerini kullanıyorsanız bir catch 22 vardır. VS2010'u TFS2008 ile kullanıyorum (dev ile yetişmeyen klasik bir BT durumu) ve VS2010 ile TF.EXE şimdi geri alma özelliğine sahip ... ancak TFS2008'e karşı çalışmıyor. Ve tfpt 2010 geri alma kaldırıldı, bu yüzden eski yöntemle yapamam.
Simon Gillbee

7
: 'geri alma' komutu nedenle, artık yalnızca 'tf geri alma' yazmanız gerekir, VS2010 için Elektrikli El Aletleri dışına taşındı social.msdn.microsoft.com/Forums/en/tfspowertools/thread/...
Dan

TFS Power Tools'un Ağustos 2011 sürümünden başlayarak, geri almak için artık komut satırını kullanmanız gerekmiyor.
26'da katılım

24

Çözüm 1'iniz işe yarayacak: 1. Her dosyanın önceki sürümünü manuel olarak alın

  1. düzenleme için kontrol et

  2. Dosyayı iade edin ve sorulduğunda sunucu değişikliklerini Yoksay.

Sizin için başarısız olmasının nedeni, "Teslim alınırken öğenin en son sürümünü al" seçeneğinin açık olması gerektiğidir. Araçlar ... Seçenekler ... Kaynak Kontrolü ... Visual Studio Tema Foundation Server'a giderek ve "Ödemede öğenin en son sürümünü al" seçeneğinin işaretini kaldırarak bu seçeneği kapatın.

Şerefe


2
Elektrikli El Aletleri ile 2 saat uğraştıktan ve hiçbir yere varamadıktan sonra bu şekilde yaptım ... wtf, TFS ile bu temel işlevi desteklemiyor ...
simya

İşlevsellik, TFS 2010 / Visual Studio 2010'a eklendi.
Robaticus

2
Açık olmak gerekirse, bu gerçek bir geri dönüş değil. Daha eski bir versiyonu oluyor. Aynı şey değil.
Ryan Cromwell

Ödemede öğenin en son sürümünü edinin ayarıyla ilgili soruna işaret eden +1 !
Sir Crispalot

18

Geri alma, tfpt.exe'den Team Foundation Sürüm Kontrol Aracı olan tf.exe'ye taşındı.

TF - Team Foundation Version Control Tool, Version 10.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Rolls back the changes in a single or a range of changesets:
tf rollback /changeset:changesetfrom~changesetto [itemspec] [/recursive]
            [/lock:none|checkin|checkout] [/version:versionspec]
            [/keepmergehistory] [/noprompt] [/login:username,[password]]

tf rollback /toversion:versionspec itemspec [/recursive]
            [/lock:none|checkin|checkout] [/version:versionspec]
            [/keepmergehistory] [/noprompt] [/login:username,[password]]

1
Bunu doğrudan Visual Studio'dan yapmanın bir yolu var mı?
Kyle Delaney

14

TFS 2010 Sürüm Denetimi'nde bir değişiklik kümesini geri almak (geri almak) için iki seçeneğiniz vardır. İlk seçenek, Kullanıcı Arayüzünü kullanmaktır ( TFS 2010 Power Tools'un en son sürümüne sahipseniz ).

TFS 2010 için Kullanıcı Arabiriminde Geri Alma Değişiklik Seti

Diğer seçenek, TFS 2010 sürüm kontrolü komut satırı uygulamasını kullanmaktır:

tf.exe rollback

Blog gönderimde her iki yaklaşım hakkında da bilgi var: http://www.edsquared.com/2010/02/02/Rollback+Or+Undo+A+Changeset+In+TFS+2010+Version+Control.aspx


14

1. seçeneğinizin işe yaramasını sağlamanın bir başka yolu da adımların sırasını tersine çevirmektir:

  1. Öğeleri Kontrol Edin
  2. Belirli Sürümü eski sürüme alın
  3. Teslim edin ("uyarı sunucu sürümü daha yeni" iletişim kutusunu yok sayarak) VEYA Bekleyen Değişiklikler iletişim kutusunun çakışmalar bölümünde yerel sürümü koruyarak çakışmaları çözün.

Bu, En Son Satın Aldığınızda Satın Aldığınızda setiniz olsa bile çalışacaktır.


1
Benim için çalışmadı. Ancak bunun nedeni, bazı hatiplerin TFS'yi aptalca politikalarla ayarlaması olabilir.
SHODAN

5

Başvuru için, TFS 2010 kullanıyorsanız , işte Rollback Command (Team Foundation Sürüm Kontrolü) kılavuzuna bağlantı.

Belirli bir değişiklik kümesini geri almak için Visual Studio Komut İstemi'ne (2010) gidin, TFS çalışma alanı dizininize gidin ve command yazın:

tf rollback /changeset:C12345

değişiklik 12345set numaranız nerede . Bundan sonra, size ne yaptığının günlüğünü gösterecek ve birleştirme çatışmalarını çözmeniz gerekecek.



4

Geri alma seçeneğine sahip olmamak aslında TFS'nin özelliğidir;)

Değişiklikleri geri almak için:

  1. İstediğiniz belirli değişiklik sürümlerine göz atın
  2. Düzenle-> Tümünü Seç-> Dosyadaki metni kopyalayın
  3. Sunucudaki dosyanın sürümünü kontrol edin
  4. Dosyanın üzerine yapıştırın ve iade edin.

Ve şimdi geri alma işleminden önceki tüm ara değişiklik kümeleriniz de kaydediliyor! Ne harika bir özellik!


İlk başta bunun alaycı olduğunu düşündüm, ancak bu çözüm, geri alma izni alacak kadar şanslı olmayanlarımız için gerçekten işe yarayabilir.
EBarr

Gerçekte saklamak istediğiniz aynı dosyalara daha sonra değişiklikler yapılmadıysa.
Robert Jeppesen

Kaba ama bunu TFS'de yapabilmemin tek yolu buydu. Bir ödeme yaparsam, eski sürüm TFS'yi geri alırsam, onu tekrar iade etmeyi denediğimde son sürüme Otomatik Birleştirilecek.
Steve

1

1 check-in yaptıysanız ve yalnızca geri almak istiyorsanız, bununla ilişkili bir değişiklik kümesi # vardır. Kötü değişiklik kümesini görmek için söz konusu klasörde bir geçmiş yapın. Ayrıntıları görmek için açın (tüm dosyalar değişti, vb.).

O ekrandan bir değişiklik kümesini geri yükleyebileceğinize veya geri alabileceğinize inanıyorum, ancak bunu yapmaya çalıştığımda Visual Studio'm çöktü. / sigh - Ben kesinlikle acınızı paylaşıyorum.

Bu sitede TFS'yi nerede indirebilirim?


Hayır, Geçmiş kullanıcı arayüzünden geri dönüş yalnızca TFS 2010'da eklendi.
Richard Berg


1

Ben Scheirman - Değişiklik Kümesi Ayrıntıları iletişim kutusunun geri alma işlevi yoktur.


1

Diğer bir seçenek de TFSPlus'tır . Bu Visual Studio Eklentisi, geçmiş penceresine (diğerlerinin yanı sıra) Bu Sürümü Al komutunu ekler. Dosyayı teslim aldıysanız, o sürümle değiştirecektir. Daha sonra bir iade yaparsanız, o sürüme etkili bir şekilde geri dönersiniz.

Yine de, tam değişiklik setleri yerine tek tek dosyalar üzerinde çalışır.



1

Belirli Sürümü Alın

In Versiyon Türü gibi seçkin Tipi açılır değişiklik kümesi

Değişiklik Kümenizi bulmak için Değişiklik Kümesi ... düğmesini kullanın veya bu numarayı biliyorsanız sadece yazın.

Belirli Değişiklik Kümesine sahip olduktan sonra.

Çıkış yapmak

Giriş


0

Bu çözümlerin hiçbiri benim için pek işe yaramadı Dave Roberts çözümü, gerçekten çalıştığıma en yakın olanıydı. Teslim alırken öğenin en son sürümünü al seçeneği etkin değil, ancak bu bir sunucu politikası gibi görünüyor.

Bunun için benim çözümüm, dosyayı düzenleme için kontrol etmek, belirli bir sürümü almak, ardından çakışma algılandığında birleştirme aracını kullanmak (ve değişikliklerin hiçbirini manuel olarak birleştirmek), böylece dosyanın olduğu durumda olmasını sağlayın.

Belirli sürümle karşılaştırmaya gidecektim ve tüm dosyayı kopyaladıktan sonra sadece eskisinin üstüne yapıştıracaktım.

Yine de bunu yapmanın daha kolay bir yolu olmalı!


0

Yukarıdaki çözüm TFS2008 içindir. TFS2010, yerleşik geri alma özelliğine sahiptir. bakınız bu ayrıntılar için makalesine.


VS2010 (tf) 'nin TFS2008'e karşı çalışmaması ve TFPT 2010'un artık geri dönüşü olmadığı için, ısmarlıyorsunuz.
Simon Gillbee

0

TFS Power Tools'un en son sürümünü (Ağustos 2011) yükleyin ve bir değişiklik kümesine sağ tıklayıp "Tüm Değişiklikleri Geri Al" ı seçebilirsiniz. Bundan daha kolay olamaz.

Burada bulunabilir: http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

Yukarıdaki sayfada Takım Gezgini Geliştirmeleri altında ima edilmiştir :

Bu sürümdeki bir yenilik, [..] sürüm kontrolündeki değişiklikleri kolayca geri alma yeteneğidir.

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.