SVN: Czy możesz usunąć katalogi tylko z lokalnego kasy (nie z repozytorium)?

Załóżmy, że masz katalog pod kontrolą subversion, który zawiera niektóre pliki i tony podkatalogów, w ten sposób:

file1.txt
file2.txt
file3.txt
dir1/
dir2/
dir3/
dir4/
:
dirXX/

Teraz potrzebujesz plików i niektórych katalogów, ale nie wszystkich. Można to zrobić za pomocą SVN. Po prostu sprawdź, czy kasowanie nie jest rekurencyjne:

svn checkout -N <URL>

Sprawdza tylko pierwszy katalog i pliki wewnątrz. Nie dołączono żadnych podkatalogów. Nawet jeśli wejdziesz do katalogu kasy i uruchomisz „svn up", zaktualizuje tylko pliki wyewidencjonowane wcześniej, nie doda katalogów. Możesz teraz selektywnie dodawać potrzebne katalogi, jawnie je aktualizując. Np. jeśli potrzebujesz tylko dir2 i dir4, możesz przejść do katalogu checkout i wykonać

svn up dir2
svn up dir4

Jeśli prowadzisz generycznysvn up„w przyszłości zaktualizuje tylko pliki i te dwa katalogi, nie doda żadnych innych katalogów.

Teraz problem: co jeśli zdecyduję w jakimś późniejszym momencie, że nie potrzebuję już dir2? Jak się tego pozbyć? Wydaje się, że nie ma sposobu, aby to zrobić, oprócz usunięcia całego kasy i rozpoczęcia od nowa.

Kiedy po prostu usuniesz dir2, następny ”svn up„przywróci to, jak”svn status„oczywiście pokazuje to jako brakujące („! ”przed jego nazwą). Uruchomienie„svn remove„usunie to oczywiście, ale przy następnym zatwierdzeniu usunie je również z repozytorium, co nie może się zdarzyć.

Nawet nowy rzadki katalog („płytka realizacja”) w SVN 1.5 nie ma tu zastosowania:

Implementacja płytkich czeków w Subversion 1.5 jest dobra, ale nie obsługuje kilku interesujących zachowań. Po pierwsze, nie można wyodrębnić elementu kopii roboczej. Uruchamianie svn update -set-depth pustego w nieskończonej głębokości kopii roboczej nie spowoduje odrzucenia wszystkiego poza najwyższym katalogiem - po prostu się nie powiedzie.
- http://svnbook.red-bean.com/en/1.5/svn.advanced.sparsedirs.html

Czy jest to całkowicie niemożliwe w przypadku SVN? Ktoś kiedykolwiek wymyślił sprytną pracę na ten temat?

Po prostu tworząc katalog checkout (bez SVN), a następnie wyszukując poszczególne podkatalogi z repozytorium bezpośrednio jako podkatalogi do tego katalogu, będą działać dla katalogów: teraz każdy katalog jest własnym kasowaniem, może być aktualizowany i raz nie będzie już potrzebny , możesz go po prostu usunąć. Jak jednak uzyskać pliki (np. Plik1.txt)? SVN nie pozwala na kasowanie pojedynczych plików, możesz tylko pobierać całe katalogi.

questionAnswers(5)

yourAnswerToTheQuestion