Development Tip

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

yourdevel 2020. 10. 14. 21:22
반응형

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

It can be if you created new directory at the disk BEFORE create/commit it in the SVN. All that you need is just create it in SVN and do move after:

$ 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

You can do it by following 3 steps:

 - svn rm old_file_name
 - svn add new_file_name
 - svn commit

참고URL : https://stackoverflow.com/questions/17279947/how-to-rename-a-file-using-svn

반응형