동작은 대상 파일 이름이 이미 존재하는지 여부에 따라 다릅니다. 일반적으로 안전 메커니즘이며 최소한 3 가지 다른 경우가 있습니다.
대상 파일이 없습니다 .
이 경우 svn mv
다음과 같이 작동합니다.
$ svn mv old_file_name new_file_name
A new_file_name
D old_file_name
$ svn stat
A + new_file_name
> moved from old_file_name
D old_file_name
> moved to new_file_name
$ svn commit
Adding new_file_name
Deleting old_file_name
Committing transaction...
대상 파일이 이미 저장소에 있습니다.
이 경우 소스 파일의 이름을 바꾸기 전에 대상 파일을 명시 적으로 제거해야합니다. 다음과 같이 동일한 트랜잭션에서 수행 할 수 있습니다.
$ svn mv old_file_name new_file_name
svn: E155010: Path 'new_file_name' is not a directory
$ svn rm new_file_name
D new_file_name
$ svn mv old_file_name new_file_name
A new_file_name
D old_file_name
$ svn stat
R + new_file_name
> moved from old_file_name
D old_file_name
> moved to new_file_name
$ svn commit
Replacing new_file_name
Deleting old_file_name
Committing transaction...
의 출력 svn stat
은이 R
파일이 교환 된 것을 나타내고, 파일 역사를 가지고있다.
대상 파일이 이미 로컬에 있습니다 (버전 없음) :
이 경우 로컬 파일의 내용이 손실됩니다. 괜찮다면 기존 파일의 이름을 바꾸기 전에 파일을 로컬에서 제거 할 수 있습니다.
$ svn mv old_file_name new_file_name
svn: E155010: Path 'new_file_name' is not a directory
$ rm new_file_name
$ svn mv old_file_name new_file_name
A new_file_name
D old_file_name
$ svn stat
A + new_file_name
> moved from old_file_name
D old_file_name
> moved to new_file_name
$ svn commit
Adding new_file_name
Deleting old_file_name
Committing transaction...
file://...
하거나svn://...
또는http://...
파일에.