Subversion umożliwia zmianę nazwy i przenoszenie plików i folderów. Dlatego są wpisy menu pozwalające usuwać i zmieniać nazwy w podmenu TortoiseSVN.
Użyj
→ by usunąć pliki i foldery z Subversion.Podczas wykonywania „zmieniono”. Do czasu zatwierdzenia zmiany, można odzyskać plik używając → na folderze nadrzędnym.
→ na pliku lub folderze, jest on usuwany natychmiastowo z kopii roboczej oraz zaznaczony do usunięcia w repozytorium podczas następnego zatwierdzenia. Folder nadrzędny elementu wyświetla nakładkę ikonyJeśli chcecie usunąć element z repozytorium, ale zachować go lokalnie jako niewersjonowany plik/folder, użyjcie Shift, podczas gdy prawy przycisk myszy wciskacie na elemencie w panelu listy plików w eksploratorze (prawy panel), aby zobaczyć to rozszerzone menu kontekstowe.
→ . Musicie przytrzymać klawiszJeśli element został usunięty w eksploratorze zamiast przy użyciu menu kontekstowego TortoiseSVN, okno zatwierdzenia wyświetla te elementy jako brakujące i pozwala wam usunąć je równiez z kontroli wersji przed zatwierdzeniem. Jednakże podczas uaktualnienia kopii roboczej, Subversion zauważy brak elementu i wypełni go ostatnią wersją z repozytorium. Jeśli potrzebujesz usunąć plik z kontroli wersji, zawsze korzystajcie z
→ by Subversion nie musiało zgadywać, co macie zamiar zrobić.Jeśli usunięto plik lub folder i już zatwierdzono tą operację usuwania do repozytorium, zwykłe
→ nie może go już przywrócić. Jednak plik lub folder nie jest zupełnie stracony. Jeśli znacie wersję, w której plik lub folder zostały usunięte (jeśli nie, skorzystajcie z okna dziennika, aby się dowiedzieć) otwórzcie przeglądarkę repozytorium i przełączcie się do tej wersji. Następnie wybierzcie ten usunięty plik lub folder, kliknijcie prawym przyciskiem myszy i wybierzcie → jako cel tej operacji kopiowania wybierzcie ścieżkę do kopii roboczej.Jeśli chcecie zrobić prostą miejscową zmianę nazwy z pliku lub folderu, użyjcie
→ Wpiszcie nową nazwę elementu i gotowe.Jeśli chcecie przenieść pliki wewnątrz kopii roboczej, być może do innego podkatalogu, należy użyć obsługi przeciągnięcia prawym przyciskiem myszy:
wybierzcie pliki lub katalogi, które chcecie przenieść
przeciągnijcie prawym przyciskiem do nowej lokalizacji wewnątrz kopii roboczej
puśćcie prawy przycisk myszy
w menu kontekstowym wybierzcie
→Ponieważ zmiana nazwy i przesunięcie są wykonywane jako usunięcie, a następnie dodanie trzeba zatwierdzić folder nadrzędny do przemianowanego/przeniesionego pliku, aby usuwana część zmiany nazwy/przeniesienia pojawiła się w oknie dialogowym zatwierdzenia. Jeśli nie zatwierdzi się usuwana część przemianowania/przeniesienia, to pozostanie w repozytorium, a kiedy współpracownicy zaktualizują kopię roboczą, stary plik nie zostanie usunięty. tj. będą posiadać obie, zarówno starą i nową kopię.
Jest konieczne zatwierdzenie zmiany nazwy folderu przed zmianą jakiegokolwiek plików w tym folderze, w przeciwnym razie w kopii roboczej zrobi się prawdziwy rozgardiasz.
Innym sposobem przenoszenia lub kopiowania plików jest użycie poleceń Windows kopiuj/wytnij. Wybierzcie pliki, które chcecie skopiować, kliknijcie prawym przyciskiem myszy i wybierzcie
→ z menu kontekstowego eksploratora Windows. Następnie przejdźcie do folderu docelowego, kliknijcie prawym przyciskiem myszy i wybierzcie → . Przy przenoszeniu plików, wybierzcie → zamiast → .Można również użyć przeglądarki repozytorium, aby przenosić elementy wokół. Czytajcie „Przeglądarka repozytorium”, aby dowiedzieć się więcej.
Nie możecie używać poleceń TortoiseSVN Move lub Zmień nazwę w folderze, który został stworzony przy wykorzystaniu svn:externals
. Ta akcja spowoduje, że zewnętrzny element zostanie usunięty ze swojego repozytorium, prawdopodobnie denerwując wielu innych ludzi. Jeśli chcecie przenieść folder zewnętrzny należy użyć zwykłych poleceń przenoszących powłoki, a następnie dostosować atrybuty svn:externals
folderów nadrzędnych źródła i przeznaczenia.
Jeśli repozytorium zawiera już dwa pliki o tej samej nazwie, ale różniące się tylko w wielkością liter (np. TEST.TXT
i test.txt
), nie będziecie mogli zaktualizować ani pobrać katalogu nadrzędnego na kliencie Windows. Chociaż Subversion obsługuje różnice w wielkości liter w nazwach plików, system Windows nie.
To się czasem zdarza, kiedy dwaj ludzie zatwierdzają z oddzielnych kopii roboczych pliki, które czasem mają taką samą nazwę, ale z różnicą wielkości liter. Może się również zdarzyć, gdy pliki są zatwierdzone z systemu obsługującego rozróżnianie wielkości liter, takich jak Linux.
W takim przypadku trzeba zdecydować, który z nich ma pozostać a drugi usunąć (lub zmienić nazwę) z repozytorium.
Istnieje skrypt przechwytujący serwera dostępny pod adresem: https://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/, który zapobiega pobraniom, w wyniku których powstaną konflikty wielkości liter.
Czasami przyjazne IDE będzie zmieniać nazwy plików za Was w ramach wykonywania refaktoryzacji, i oczywiście nie poinformuje Subversion. Jeśli spróbujecie zatwierdzić swoje zmiany, Subversion będzie widzieć stare pliki jako brakujące, a nowe jako niewersjonowane. Możecie po prostu zaznaczyć nową nazwę pliku, do dodania, ale stracicie wtedy ślad historyczny, jako że Subversion nie wie, że pliki są powiązane.
Lepszym sposobem jest powiadomienie Subversion, że ta zmiana jest rzeczywiście przemianowaniem, a można to zrobić w oknach Zatwierdź zmiany i Sprawdź zmiany. Wystarczy wybrać jednocześnie starą nazwę (brak) i nową nazwę (bez informacji o wersji) i użyć → by powiązać dwa pliki jako zmianę nazwy.
Zazwyczaj ustawia się listy ignorowanych tak, że wszystkie wygenerowane pliki są ignorowane w Subversion. Ale co, jeśli chcecie wyczyścić wszystkie te ignorowane elementy w celu wykonania czystej kompilacji? Zazwyczaj ustawia się to w pliku makefile, ale jeśli debugujecie makefile, lub zmieniacie system kompilacji warto mieć sposób oczyszczania pokładów.
TortoiseSVN zapewnia właśnie taką opcję za pomocą Shift podczas kliknięcia prawym przyciskiem myszy na folder w okienku eksploratora listy (prawy panel), aby zobaczyć rozszerzone menu kontekstowe. Wciśnięcie wejścia menu wyświetli okno dialogowe, które listuje wszystkie pliki bez informacji o wersji w dowolnym miejscu kopii roboczej. Możecie wybrać lub odznaczyć elementy do usunięcia.
→ . Musicie przytrzymaćGdy takie elementy są usuwane, wykorzystuje się kosz, więc jeśli się tu pomylicie i usuniecie plik, który powinien być wersjonowany, nadal można go odzyskać.