Jak usunąć plik z kontroli wersji bez jego usuwania?

Jeśli uruchomię svn rm file, plik zostanie usunięty z lokalnej kopii roboczej.

To co teraz robię to:

$ cp file file2
$ svn rm file
$ svn ci
$ mv file2 file

Jak uniknąć usuwania pliku lokalnego przez svn przy użyciu svn rm?

Author: Tshepang, 2010-08-27

3 answers

Chcesz użyć opcji --keep-local w wierszu poleceń. Spowoduje to usunięcie pliku z kontroli wersji bez usuwania go z systemu plików.

$ svn rm --keep-local my_important_file
 261
Author: Andres Jaan Tack,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-17 17:38:42

Usuwanie pliku z SVN bez usuwania go lokalnie nigdzie nie jest częstym problemem. Jednym z najważniejszych przykładów jest plik .classpath w projekcie Eclipse. Umieszczenie tego pliku konfiguracyjnego pod SVN jest wspaniałe tak długo, jak wszystkie maszyny używane w projekcie mają tę samą instalację Eclipse i Java. Po złamaniu tego warunku commity zaczynają łamać inne projekty Eclipse. To jest punkt, który trzeba usunąć plik z SVN bez usuwania ist gdziekolwiek.

svn rm --keep-local .classpath

Does the job doskonale na jednej maszynie i w tym momencie.

Problem polega na tym, że inne maszyny mogą utracić ten plik (przy aktualizacji) lub wskrzesić go (przy zatwierdzeniu). Wada SVN nie polega ani na obsłudze --keep-local w repozytorium, ani na propagowaniu go do innych kopii roboczych. Dlatego na wszystkich innych maszynach powyższe polecenie musi zostać wykonane-najlepiej przed zatwierdzeniem lub aktualizacją.

To, oczywiście, zadziała w 90%, w najlepszym razie. Usuwanie i ponowne wersje nastąpią nagle. Moim rozwiązaniem jest posiadanie każdej Maszyny, I mieć bezpośredni lub pośredni dostęp do, do
svn rm --keep-local .classpath
copy .classpath .classpath-nameOfTheMachine
svn add .classpath-nameOfTheMachine
To jest tak wprost brzydkie, że trudno nazwać to "rozwiązaniem". Niemniej jednak zawsze pozwalała na szybkie naprawy wszelkich późniejszych wypadków.
 10
Author: Albrecht Weinert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-15 13:22:43

Nie mam odpowiedzi na to dokładne pytanie, ale mam odpowiedź na powiązane pytanie, czyli jak usunąć wszystkie pliki (tzn. nie konkretny) w katalogu z kontroli wersji bez usuwania ich lokalnie. Rozwiązanie to pochodzi z implementacji Scientific Linux.

ls -a .svn

Powinien pokazywać katalog svn, w którym przechowywane są dane kontrolne. Po prostu:

rm -r .svn

Pozbędzie się tego katalogu. Następnie wpisując:

svn status

Będzie produkować błąd' warning: this directory is not a working copy', ponieważ nie jest już pod kontrolą wersji.

Mam nadzieję, że to pomoże.
 -2
Author: cjames,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-01 12:31:34