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
?
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
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ą.
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.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.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