2010-01-27 12 views
14

Mam plik w moim repozytorium Clearcase. Sprawdziłem go i zmodyfikowałem, a następnie ponownie go sprawdziłem.Jak przywrócić plik zaznaczony do usunięcia?

Nie zrobiłem nic takiego jak zrobienie linii bazowej, rebase lub dostarczenie w moim strumieniu/widoku.

Żałuję, że dokonałem zmian w tym pliku - powinienem był cofnąć kasę, z perspektywy czasu.

Jak cofnąć zmiany? (Lub cofnij, lub cofnij, czy jakakolwiek jest właściwa nomenklatura.)

Odpowiedz

20

What is described byskwllsp można zrobić w dynamic view dzięki zastosowaniu extended pathnames

cd m:/myDynamicView/MyVob/path/to/file 
cleartool lsvtree myFile 
cleartool checkout -c "cancel co" myFile 
copy [email protected]@/main/xx myFile 
cleartool checkin -nc myFile 

z xx jest numer wersji chcesz przywrócić.


Ale powinno być wykonane wielu Meldunki, w tym niektóre chcesz anulować, ClearCase pozwala anulować część poprzednich checkins przez Subtractive Merge
See IBM "to remove contributions of some versions" (i merge man page)

Możesz usunąć wszystkie zmiany z wielu wersji jednocześnie. Na przykład, następujące polecenie usuwa zmiany do wersji 14 do 16 na głównej gałęzi:

  • W systemie UNIX lub Linux:
cleartool merge -graphical -to opt.c -delete -version /main/14 /main/16 
  • W systemie systemu Windows :
cleartool merge -graphical -to opt.c -delete -version \main\14 \main\16 

Możesz również usunąć zmiany z jednej wersji na raz. Na przykład poniższe polecenia usuwają tylko zmiany w wersji 14 z wersji opt.c wyrejestrowany bieżący widok:

  • W systemie UNIX lub Linux:
cleartool merge -graphical -to opt.c -delete -version /main/14 
  • W systemach Windows:
cleartool merge -graphical -to opt.c -delete -version \main\14 

Ewentualnie w dowolnym z powyższych przykładów można pominąć argument -wersję, jeśli używasz rozszerzonej ścieżki wersji dla selektora-wersji-selektora.


Wreszcie jedno do nie zrobić jest rmver.
To polecenie nieodwracalnie niszczy informacje i rzadko jest to dobre.

+0

Kiedy mówisz "nieodwracalnie niszczy informacje", mówisz tylko o informacjach związanych z ostatnim odprawą (które i tak było niepoprawne), prawda? W takim razie dlaczego mówisz, że rzadko jest to dobre? Odprawa była jednak błędem, więc jaka jest szkoda w usuwaniu istnienia tych wersji? Proszę podziel się swoją wiedzą. –

+2

@ArvindhMani Mówię o dowolnej wersji, którą chciałbyś "przetłumaczyć". A to zostawiłoby linki zwisające (lub je również usuwając), które mogłyby zagrozić integralności innych obiektów (takich jak pełna linia bazowa UCM). Jeśli najnowsza wersja nie ma żadnego hiperłącza i nie jest odwoływana przez inny obiekt, to tak, 'rmver' jest rozwiązaniem. – VonC

+2

@ArvindhMani Problem polega na tym, że chociaż może działać w twoim przypadku, wszystko, co zapamiętasz, to "rmver" działa "... co doprowadzi do dnia, w którym' rmver' będzie niedbale używany i zrobi więcej szkód. Dlatego wolę ograniczyć jego użycie. – VonC

1

Otwórz historię wersji dla tego pliku, następnie otwórz w edytorze poprawną wersję pliku z drzewa wersji, sprawdź plik jeszcze raz, zastąp jego z treścią poprzedniej poprawnej wersji i odprawą. Nie zapomnij porównać poprzedniej wersji i ostatniej wersji.

+1

Czy to jest najlepsze rozwiązanie CC? Oy. (Jestem nowy w CC, używałem svn wyłącznie przez ostatnie 5 lat). – JXG

+0

Nie jestem pewien, czy jest najlepszy, ale daje poprawny wynik :) –

+2

Wiem, że to stary, ale zgadzam się z JXG (ja też korzystam z SVN przez ostatnie 6 lat i CVS przez lata wcześniej) ... czy najlepszy CC może zrobić? Załóżmy, że musisz wycofać zmianę, a dotyczy to około 30 nieparzystych plików w wielu katalogach. Dlaczego nie miałby on typu "cofnąć zmiany z tego polecenia"? – Jon

3

Clearcase może zrobić o wiele lepiej niż tylko tworzenie nowej wersji, w której cofasz zmianę! Otwórz historię wersji swojego pliku, znajdź wersję, którą błędnie zaznaczyłeś i zniszcz ją (wybierz wersję, którą chcesz zniszczyć, i znajdź odpowiednie polecenie w menu Wersje). Tak właśnie robi rmver, jeśli chcesz użyć wiersza poleceń. VonC powiedział, że to bezpowrotnie niszczy twój błąd. Nie widzę w tym nic złego.

+4

@Kathy: nie widzisz wady, ale to jest bardzo * bardzo * złe rozwiązanie. Jedyny, którego nigdy nie możesz zrobić. Chociaż może to zadziałać w tym przypadku, lepiej uniemożliwić użytkownikom ** zrobienie pliku **. Zawsze. Ponieważ działa tutaj oznacza, że ​​pewnego dnia znowu go użyją w sytuacji, w której wszystko zepsuje się. Poważnie: nie rób tego. – VonC

+0

FWIW, w mojej osobistej sytuacji, nie mam uprawnień do usuwania plików w ten sposób. – JXG

Powiązane problemy