2009-07-06 34 views
10

Używając TortoiseSVN w systemie Windows, jak mogę usunąć pliki z repozytorium, które zostało już usunięte w systemie plików? Oczekuję, że pojawią się jako "brakujący" lub "usunięty" przy następnym zatwierdzeniu, ale wydaje się, że tak nie jest.Jak usunąć pliki z SVN, które zostały już usunięte z FS?

Na Linux/Mac, po prostu uruchom polecenie:

svn st | grep ^! | cut -b7- | xargs svn delete 

-Chris

Odpowiedz

20

musiał użyć "tortoisesvn -> Usuń", aby usunąć plik.

Jeśli usunięto bezpośrednio przez pomyłkę, wykonaj aktualizację SVN, aby pobrać plik z powrotem, a następnie wykonaj „żółw svn-> usuń”

:-)

1

Pliki pokazać się jako „brakujące” w okno dialogowe zatwierdzenia TortoiseSVN tylko wtedy, gdy folder, w którym zostały usunięte, jest wersjonowany i nadal obecny. Jeśli usunąłeś cały folder, nie pojawi się on jako brakujący.

1

Jeśli plik został usunięty przypadkowo (bez użycia svn), możesz po prostu przywrócić tę zmianę, aby odzyskać plik, a następnie usunąć go za pomocą svn. Lub zainstaluj linię poleceń svn równolegle i użyj jej do usunięcia :)

+0

Jeśli dobrze pamiętam, możesz nawet wybrać "svn delete" z menu kontekstowego w oknie przywracania. –

2

Kliknij prawym przyciskiem myszy i otwórz przeglądarkę repozytorium TortoiseSVN. Zobaczysz plik w repozytorium i możesz go usunąć bezpośrednio.

1

Zazwyczaj po prostu instaluję cygwin w oknach i używam svn z wiersza poleceń.

1

na linux, biorąc pod uwagę także pliki z białymi spacjami:

svn st | grep ^! | cut -b9- | sed 's/^/"/;s/$/"/' | xargs svn rm 

to działa na Windows, jak również w przypadku zainstalowania git dla Windows (Msys) lub Cygwin.

0

Jeśli plik został usunięty przed jego zatwierdzeniem po raz pierwszy, nie można przywrócić go z repozytorium, a następnie odzyskać pliki do Tortise svn> delete, zgodnie z sugestią Indhu.

Właśnie natknąłem się na tę sprawę, w której użyłem Tortise svn -> Dodaj kilka plików, a następnie skasuj pliki bezpośrednio przed zatwierdzeniem. Prawdopodobnie rzadki przypadek, ale oto jak naprawiłem swój problem:

Najpierw utworzyłem nowe (puste) pliki o takich samych nazwach plików jak "brakujące" teraz pliki. Następnie zrobiłem Tortise svn> Cofnij Dodaj dla każdego pliku. Spowodowało to, że svn przestał próbować zatwierdzać pliki z tymi nazwami.

Powiązane problemy