Jak wycofać zaewidencjonowanie TFS?

92

Chciałbym cofnąć zmianę, którą ostatnio wprowadziłem w TFS. W Subversion było to całkiem proste. Jednak wydaje się to być niesamowitym bólem głowy w TFS:

Opcja 1: pobierz poprzednią wersję

  1. Uzyskaj ręcznie poprzednią wersję każdego pliku
  2. Sprawdź do edycji
  3. Fail - checkout (w VS2008) zmusza mnie do pobrania najnowszej wersji

Opcja 2: Uzyskaj narzędzia TFS Power Tools

  1. Pobierz Team Foundation Power Tools
  2. Wydaj polecenie wycofania z wiersza cmd
  3. Niepowodzenie - nie zadziała, jeśli są jakieś inne oczekujące zmiany

Opcja 3: Ręczne cofanie zmian

  1. ręcznie cofnij moje zmiany, a następnie zatwierdź nowy zestaw zmian

Pytanie

Jak cofnąć się do poprzedniego zestawu zmian w TFS?

Jason
źródło
2
VSS nie ma wycofywania. Mają jeszcze jedną funkcję, która jest nazywana „wycofywaniem”, ale w terminologii TFS jest to naprawdę zniszczenie. (a) możesz to zrobić tylko z napiwku; nie zadziała, jeśli jakiekolwiek dodatkowe zmiany zostały wprowadzone po tej, którą chcesz cofnąć (b) TRWAŁE USUWA zmiany z bazy danych
Richard Berg
1
Och, jak bardzo tęsknię za łatwością przywracania VSS.
Greg,
2
Niedawno natknąłem się na ten problem - dlaczego, do cholery, tak trudno jest wycofać się w TFS. Przywracanie to jedna z podstawowych funkcji kontroli źródła
JohnIdol,
2
To zbyt bolesne w TFS!
Jon Kragh
1
Przejdź na Mercurial! Zmieniłem pracę i związałem się z TFS. Od tamtej pory piszę skrypty PowerShell, aby wyglądało jak Hg z wiersza poleceń.
Sumo

Odpowiedzi:

63
  1. Pobierz i zainstaluj Team Foundation Power Tools .
  2. Otwórz wiersz polecenia programu Visual Studio
  3. Przejdź do katalogu w systemie plików, do którego jest mapowany program TFS. Jeśli tego nie zrobisz, przy próbie przywrócenia pojawi się błąd „Nie można określić obszaru roboczego”
  4. Upewnij się, że wszystko inne jest odprawione lub odłożone na półki
  5. uruchom wycofywanie tfpt, aby wywołać interfejs.
  6. Wybierz zestawy zmian, które chcesz przywrócić
  7. Sprawdź nowe wersje plików, które zostały przywrócone

Dużą wadą tego narzędzia jest to, że będzie chciał odświeżyć wszystko w obszarze roboczym, zanim będzie można scalić. Omówiłem ten problem, tworząc nowy obszar roboczy tylko dla wycofania, który był mapowany bezpośrednio do miejsca w drzewie źródłowym, w którym znajdowały się pliki, których dotyczy problem.

Jeśli potrzebujesz pomocy w ustaleniu, które zestawy zmian należy wycofać, narzędzie do przeglądu kodu w bezpłatnym dodatku Team Foundation Side Kicks jest bardzo pomocne.

Helephant
źródło
Możesz spróbować w ten sposób, ale ostrzegam, że narzędzia nie są dobrze udokumentowane, a nawet jeśli uda ci się ominąć wszystkie błędy, możesz naprawdę wycofać się lub nie. (Właśnie próbowałem przez 2 godziny)
alchemiczne
1
Ta technika zadziałała dla mnie. Sugestia dotycząca obszaru roboczego była bardzo dobra (i jest ważna, jeśli masz do czynienia z dużą bazą kodu).
cloggins
1
Ostrzeżenie ... istnieje haczyk 22, jeśli używasz niezgodnych wersji TFS i Visual Studio. Używam VS2010 z TFS2008 (klasyczny przypadek IT nie dogania dev) i TF.EXE z VS2010 ma teraz wycofanie ... ale nie działa przeciwko TFS2008. Z tfpt 2010 usunięto wycofywanie zmian, więc nie mogę tego zrobić w stary sposób.
Simon Gillbee,
7
polecenie „rollback” zostało usunięte z Power Tools for VS2010, więc teraz wystarczy wpisać „tf rollback”: social.msdn.microsoft.com/Forums/en/tfspowertools/thread/ ...
Dan
Począwszy od wersji TFS Power Tools z sierpnia 2011 r., Aby wycofać, nie trzeba już używać wiersza poleceń.
joerage
24

Twoje rozwiązanie nr 1 zadziała: 1. ręcznie pobierz poprzednią wersję każdego pliku

  1. sprawdź do edycji

  2. Wpisz plik i zignoruj ​​zmiany na serwerze po wyświetleniu monitu.

Przyczyną niepowodzenia jest to, że musisz mieć włączoną opcję „Pobierz najnowszą wersję elementu przy pobieraniu”. Wyłącz tę opcję, przechodząc do menu Narzędzia ... Opcje ... Kontrola źródła ... Visual Studio Tema Foundation Server i odznaczając opcję „Pobierz najnowszą wersję elementu przy pobieraniu”

Twoje zdrowie

Happer
źródło
2
Po prostu zrobiłem to w ten sposób po 2 godzinach pracy z elektronarzędziami i nigdzie nie dociera ... wtf jest z TFS nie obsługującym tej podstawowej funkcjonalności ...
alchemiczne
Funkcjonalność została dodana do TFS 2010 / Visual Studio 2010.
Robaticus
2
Żeby było jasne, to nie jest prawdziwe wycofanie. Dostaje starszą wersję. To nie to samo.
Ryan Cromwell
+1 za zwrócenie uwagi na problem z ustawieniem Pobierz najnowszą wersję elementu przy kasie!
Sir Crispalot
18

Wycofywanie zostało przeniesione z tfpt.exe do tf.exe, narzędzia kontroli wersji Team Foundation.

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]]
Kevin Lo
źródło
1
Czy istnieje sposób, aby to zrobić bezpośrednio z programu Visual Studio?
Kyle Delaney
14

Istnieją dwie opcje wycofania (cofnięcia) zestawu zmian w kontroli wersji TFS 2010. Pierwsza opcja polega na użyciu interfejsu użytkownika (jeśli masz zainstalowaną najnowszą wersję narzędzi TFS 2010 Power Tools ).

Zestaw zmian wycofywania zmian w interfejsie użytkownika dla TFS 2010

Inną opcją jest użycie aplikacji wiersza polecenia kontroli wersji TFS 2010:

tf.exe rollback

Mam informacje o obu podejściach na moim blogu dostępnym tutaj: http://www.edsquared.com/2010/02/02/Rollback+Or+Undo+A+Changeset+In+TFS+2010+Version+Control.aspx

Ed Blankenship
źródło
14

Innym sposobem, aby opcja 1 działała, jest odwrócenie kolejności kroków:

  1. Sprawdź elementy
  2. Pobierz określoną wersję do starej wersji
  3. Wpisz (ignorując okno dialogowe „Wersja serwera ostrzegawczego jest nowsza”) LUB w sekcji konfliktów okna dialogowego Oczekujące zmiany rozwiąż konflikty, zachowując wersję lokalną.

To zadziała, nawet jeśli masz ustawioną opcję Pobierz najnowsze przy kasie.

Dave Roberts
źródło
1
Nie działa dla mnie. Ale to musi być spowodowane tym, że jakiś pinhead skonfigurował TFS z głupimi zasadami.
SHODAN
5

Dla odniesienia, jeśli używasz TFS 2010 , oto łącze do podręcznika Polecenie wycofywania (Team Foundation Version Control) .

Aby wycofać określony zestaw zmian , przejdź do wiersza polecenia programu Visual Studio (2010) , przejdź do katalogu obszaru roboczego TFS i wpisz polecenie:

tf rollback /changeset:C12345

gdzie 12345jest twój numer zestawu zmian. Następnie pokaże Ci dziennik tego, co zrobił i będziesz musiał rozwiązać konflikty scalania.

Иван Грозный
źródło
4

Brak opcji wycofywania jest w rzeczywistości cechą TFS;)

Aby cofnąć zmiany:

  1. Sprawdź, jaką konkretną wersję zmian chcesz
  2. Edycja-> Zaznacz wszystko-> Skopiuj tekst z pliku
  3. Sprawdź dowolną wersję pliku na serwerze
  4. Wklej plik i odłóż.

A teraz wszystkie pośrednie zestawy zmian przed przywróceniem są również zapisywane! Co za wspaniała funkcja!

CamelBlues
źródło
Na początku myślałem, że to sarkastyczne, ale to rozwiązanie może faktycznie działać dla tych z nas, którzy nie mają szczęścia, aby uzyskać pozwolenie na wycofanie.
EBarr
Chyba że później wprowadzono zmiany w tych samych plikach, które faktycznie chcesz zachować.
Robert Jeppesen
Surowe, ale to był jedyny sposób, w jaki mogę to zrobić w TFS. Jeśli dokonam płatności, pobiorę starą wersję TFS automatycznie przywróci ostatnią wersję za każdym razem, gdy spróbuję ją ponownie sprawdzić.
Steve,
1

Jeśli wykonałeś 1 rejestrację i chcesz to po prostu cofnąć, jest z nim powiązany zestaw zmian #. Zrób historię w folderze, o którym mowa, aby zobaczyć zły zestaw zmian. Otwórz go, aby zobaczyć szczegóły (wszystkie zmienione pliki itp.).

Uważam, że możesz przywrócić lub cofnąć zestaw zmian z tego ekranu, ale mój program Visual Studio po prostu się zawiesił, gdy próbowałem to zrobić. / westchnienie - zdecydowanie podzielam twój ból.

Gdzie mogę zdegradować TFS na tej stronie?

Ben Scheirman
źródło
Nie, wycofanie z interfejsu historii zostało dodane tylko w TFS 2010.
Richard Berg
1

Myślę, że Team Foundation Power Tools jest drogą do zrobienia. Jeśli istnieją oczekujące zmiany, możesz przenieść je do zestawu półek, a następnie cofnąć lub sprawdzić wszystkie oczekujące zmiany przed uruchomieniem polecenia wycofania. Więcej informacji można znaleźć pod adresem http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20undo%20a%20check-in&referringTitle=Source%20Control%20Practices%20at%20a%20Glance .

Phillip Wells
źródło
1

Ben Scheirman - okno dialogowe Changeset Details (Szczegóły zestawu zmian) nie ma funkcji wycofywania zmian.

jlo
źródło
1

Inną opcją jest TFSPlus . Ten dodatek do programu Visual Studio dodaje (między innymi) polecenie Pobierz tę wersję do okna historii. Jeśli masz wyewidencjonowany plik, zastąpi go tą wersją. Jeśli później dokonasz odprawy, skutecznie cofniesz do tej wersji.

Działa jednak na pojedynczych plikach zamiast na całych zestawach zmian.

Damir Arh
źródło
1

Pobierz określoną wersję

Z listy rozwijanej Typ wersji wybierz opcję Typ jako zestaw zmian

Użyj przycisku Zestaw zmian ..., aby znaleźć swój zestaw zmian lub po prostu wpisz, jeśli znasz ten numer.

Po uzyskaniu określonego zestawu zmian.

Sprawdzić

Zameldować się

Guru
źródło
0

Żadne z tych rozwiązań nie zadziałało dla mnie Rozwiązanie Dave Robertsa było najbliższe temu, co faktycznie pracowałem. Nie mam włączonej opcji Pobierz najnowszą wersję elementu przy pobieraniu, jednak wydaje się, że jest to polityka serwera.

Moim rozwiązaniem jest pobranie pliku do edycji, pobranie określonej wersji, a następnie, gdy zostanie wykryty konflikt, użyj narzędzia scalania (i ręcznie nie scal żadnych zmian), aby plik był w takim stanie, w jakim był.

Zamierzałem porównać z konkretną wersją i skopiować cały plik, a następnie po prostu wkleić go na starym.

Mimo to powinien istnieć prostszy sposób na zrobienie tego!

PJUK
źródło
0

Powyższe rozwiązanie dotyczy TFS2008. TFS2010 ma wbudowaną funkcję wycofywania zmian. szczegóły w tym artykule.

StarCub
źródło
Tyle tylko, że VS2010 (tf) nie działa przeciwko TFS2008, a ponieważ TFPT 2010 nie ma już wycofania, jesteś w opasce.
Simon Gillbee,
0

Zainstaluj najnowszą wersję narzędzi TFS Power Tools (sierpień 2011 r.) I wystarczy kliknąć prawym przyciskiem myszy zbiór zmian i wybrać „Wycofaj cały zestaw zmian”. To nie jest dużo łatwiejsze niż to.

Jest dostępny tutaj: http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

Jest to wskazane w sekcji Rozszerzenia Team Explorer na powyższej stronie:

Nowością w tej wersji jest możliwość [..] łatwego wycofywania zmian w kontroli wersji.

Evgeniy Berezovsky
źródło