내가 시도 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에서 쉽게 작동했습니다.
파일-> 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