[svn] svn을 사용하여 파일 이름을 바꾸는 방법은 무엇입니까?

내가 시도 svn mv old_file_name new_file_name하면

 svn: Path 'new_file_name' is not a directory

올바른 방법은 무엇입니까? (죄송합니다, 이것은 너무 사소한 것처럼 보이지만 붙어 있습니다).

추신. svn 버전 1.6.11 사용

편집new_file_name 현재 버전 관리중인 파일의 이름을 참조하는 경우에만이 오류가 발생하는 것 같습니다 . 이 경우에는 물론 간단하게

 mv old_file_name new_file_name
 svn delete old_file_name



답변

동작은 대상 파일 이름이 이미 존재하는지 여부에 따라 다릅니다. 일반적으로 안전 메커니즘이며 최소한 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...


답변

TortoiseSVN을 사용하면 Windows에서 쉽게 작동했습니다.

http://tortoisesvn.net/

파일-> TortoiseSVN 메뉴-> Repo-browser-> 저장소의 파일을 마우스 오른쪽 버튼으로 클릭-> 이름 바꾸기-> Enter 누르기-> 확인 누르기

SVN 1.8.8 TortoiseSVN 버전 1.8.5 사용


답변

이 메시지는 대소 문자를 구분하지 않는 파일 시스템 (예 : Mac)을 사용하고 이름을 대문자로 바꾸려는 경우 (또는 다른 대소 문자 변경) 나타납니다. 이 경우 세 번째, 더미 이름으로 이름을 바꿔야합니다.

svn mv file-name file-name_
svn mv file-name_ FILE_Name
svn commit


답변

SVN에서 생성 / 커밋하기 전에 디스크에 새 디렉터리를 생성 한 경우 일 수 있습니다. 필요한 것은 SVN에서 생성하고 다음으로 이동하는 것입니다.

$ svn mv etc/nagios/hosts/us0101/cs/us0101ccs001.cfg etc/nagios/hosts/us0101/ccs/
svn: E155010: Path '/home/dyr/svn/nagioscore/etc/nagios/hosts/us0101/ccs' is not a directory

$ svn status
?       etc/nagios/hosts/us0101/ccs

$ rm -rvf etc/nagios/hosts/us0101/ccs
removed directory 'etc/nagios/hosts/us0101/ccs'

$ svn mkdir etc/nagios/hosts/us0101/ccs
A         etc/nagios/hosts/us0101/ccs

$ svn move etc/nagios/hosts/us0101/cs/us0101ccs001.cfg etc/nagios/hosts/us0101/ccs/us0101accs001.cfg
A         etc/nagios/hosts/us0101/ccs/us0101accs001.cfg
D         etc/nagios/hosts/us0101/cs/us0101ccs001.cfg

$ svn status
A       etc/nagios/hosts/us0101/ccs
A  +    etc/nagios/hosts/us0101/ccs/us0101accs001.cfg
        > moved from etc/nagios/hosts/us0101/cs/us0101ccs001.cfg
D       etc/nagios/hosts/us0101/cs/us0101ccs001.cfg
        > moved to etc/nagios/hosts/us0101/ccs/us0101accs001.cfg


답변

다음 3 단계를 따르십시오.

 - svn rm old_file_name
 - svn add new_file_name
 - svn commit


답변