Kiedy próbuję svn mv old_file_name new_file_name
, dostaję
svn: Path 'new_file_name' is not a directory
Jaki jest właściwy sposób? (przepraszam, to wydaje się takie trywialne, ale utknąłem).
PS. używając svn w wersji 1.6.11
EDYTUJ Wygląda na to, że otrzymuję ten błąd tylko wtedy, gdy new_file_name
odnosi się do nazwy pliku, który jest obecnie pod kontrolą wersji. W tym przypadku oczywiście mogę po prostu
mv old_file_name new_file_name
svn delete old_file_name
file://...
czysvn://...
lubhttp://...
do pliku.Odpowiedzi:
Zachowanie różni się w zależności od tego, czy nazwa pliku docelowego już istnieje, czy nie. Zwykle jest to mechanizm zabezpieczający i są co najmniej 3 różne przypadki:
Plik docelowy nie istnieje:
W takim przypadku
svn mv
powinno działać w następujący sposób:Plik docelowy już istnieje w repozytorium:
W takim przypadku plik docelowy musi zostać jawnie usunięty, zanim będzie można zmienić nazwę pliku źródłowego. Można to zrobić w tej samej transakcji w następujący sposób:
W wyjściu
svn stat
TheR
wskazuje, że plik został zastąpiony, a plik ma swoją historię.Plik docelowy już istnieje lokalnie (niewersjonowany):
W takim przypadku zawartość pliku lokalnego zostanie utracona. Jeśli to jest w porządku, plik można usunąć lokalnie przed zmianą nazwy istniejącego pliku.
źródło
Używanie TortoiseSVN działało z łatwością w systemie Windows dla mnie.
http://tortoisesvn.net/
Kliknij prawym przyciskiem plik -> Menu TortoiseSVN -> Przeglądarka repozytoriów -> kliknij prawym przyciskiem plik w repozytorium -> zmień nazwę -> naciśnij Enter -> kliknij OK
Korzystanie z SVN 1.8.8 TortoiseSVN w wersji 1.8.5
źródło
Ten komunikat pojawi się, jeśli używasz systemu plików bez rozróżniania wielkości liter (np. Na komputerze Mac) i próbujesz wpisać wielką literę w nazwie (lub inna zmiana wielkości liter). W takim przypadku musisz zmienić nazwę na trzecią, fikcyjną nazwę:
źródło
Może tak być, jeśli utworzyłeś nowy katalog na dysku PRZED utworzeniem / zatwierdzeniem go w SVN. Wszystko, czego potrzebujesz, to po prostu utworzyć go w SVN i przejść po:
źródło
Możesz to zrobić, wykonując 3 kroki:
źródło