2008-09-20 15 views
60

Mam struktury SVN jak poniżej:Moving katalogi z historią

/Projects 
    /Project1 
    /Project2 
/someFolder 
    /Project3 
    /Project4 

Chciałbym przenieść wszystkie projekty do folderu/projektów, co oznacza, że ​​chce się przenieść Projects 3 i 4 z/someFolder do folder/projects.

Ograniczenie: chciałbym zachować pełną historię. Zakładam, że każdy klient musiałby ponownie sprawdzić rzeczy z nowej lokalizacji, co jest w porządku, ale nadal zastanawiam się, jakie jest najprostsze podejście do przenoszenia katalogów bez całkowitego zniszczenia historii?

Subversion 1.5, jeśli to ma znaczenie.

Odpowiedz

52
svn help rename 

Przenoszenie/zmiana nazwy w subversion powoduje zachowanie historii w nienaruszonym stanie.

2

Przenoszenie katalogów w Subversion nie niszczy historii, AFAIK.

4

Możesz użyć polecenia svn copy. Zachowuje twoją historię. Musisz po prostu odznaczyć opcję "Zatrzymaj przy kopiowaniu/zmianie nazwy", jednocześnie wyświetlając Dziennik (Przykład dla żółwia).

Przyjrzyj w Subversion-Book svn copy

-3

O ile mi wiadomo, tylko Bazaar pozwoli zachować historię na katalogach, espacially gdy mówimy o przeniesienie katalogów. SVN pozwala zachować historię podczas przenoszenia plików, ale nie katalogów.

+7

Katalogi ścieżek SVN i Bazaar. Mercurial, Git i CVS nie. – Joshua

38
svn move SRC DST
$ svn move -m "Move a file" http://svn.red-bean.com/repos/foo.c http://svn.red-bean.com/repos/bar.c

svn ruch będzie zachować swoją historię.

+0

Również o wiele szybciej, jeśli zrobione bezpośrednio na repozytorium i zaktualizować kopie robocze po jego powolnym robieniu kopii roboczej – Sam

2

Aby to zrobić, będziesz musiał użyć specyficznych funkcji przenoszenia/zmiany svn (sprawdź pomoc TortoiseSVN, jeśli używasz tego na przykład). Jeśli przeniesiesz pliki samemu, a następnie zatwierdzisz zmiany, nie jestem pewien, czy historia zostanie zachowana.

3

Przeciągnij i upuść za pomocą przeglądarki repo i ponownie powiązaj folder lokalny z serwerem SVN.

4

Po przeniesieniu Projektu 3 do folderu projektu za pomocą polecenia przenieś svn, historia zostanie zachowana dla folderu Projekt 3, ale co ciekawe, folder Projekty nie wyświetli historii projektu 3, który został utworzony przed przeniesieniem projektu 3 Projektowanie.

Uważam to mylące, myślałem folder pokaże całą historię poniżej siebie w hierarchię, ale wydaje się, że to nie jest przypadek (tylko przetestowane to ja)

7

tortoisesvn obsługuje „Right Click” ruch. Po przeciągnięciu pliku/katalogu źródłowego do miejsca docelowego za pomocą "kliknięcia prawym przyciskiem myszy" pojawi się menu kontekstowe. Możesz wybrać odpowiednią opcję menu dla kopiowania/przenoszenia/przenoszenia-zmień nazwę itd. Ta opcja zachowa również historię.

Uwaga: W języku SVN Tortoise istnieje fajny obiekt o nazwie "Napraw ruch" - przy użyciu tej funkcji można zmienić nazwę pliku/katalogu podczas przenoszenia. (Aby uzyskać więcej informacji, patrz Documentation)

+1

Zastanawiam się, dlaczego ta odpowiedź nie ma więcej upvotes.To znacznie łatwiejsze niż tinkering z wiersza poleceń lub przeglądarki repo dla małych ruchów. – LWChris

+0

Ja osobiście używam Total Commander, a tam brakuje mi ruchu prawym przyciskiem myszy. –