[svn] Subversion 관리 파일 이름에서 @ 문자를 이스케이프 처리하는 방법은 무엇입니까?

많은 Subversion 작업에서 파일 또는 URL 인수 끝에 ‘@’기호를 추가하면 해당 파일의 특정 개정을 대상으로 할 수 있습니다. 예를 들어, “svn info test.txt@1234″는 개정 1234에 존재했던 test.txt에 대한 정보를 제공합니다.

그러나 파일 이름에 @이 포함되어 있으면 Subversion에서 개정 지정자로 잘못 해석됩니다.

svn info ‘test @ .txt’svn : 구문 오류 구문 분석 개정 ‘.txt’

‘/’, ‘\’및 ‘@’으로 이스케이프 처리하는 것 외에도 큰 따옴표와 작은 따옴표를 시도했습니다. @ 기호를 파일 이름의 일부로 취급하도록 Subversion에 지시하려면 어떻게해야합니까?



답변

로부터 SVN 책 (강조는 추가) :

지각 독자는이 시점에서 페그 개정 구문이 실제 복사 경로 또는 실제로 부호가있는 URL에 문제를 일으키는 지 궁금합니다. 결국 svnnews@11 은 내 트리의 디렉토리 이름 인지 또는“ 뉴스 개정 11”의 구문 인지 어떻게 알 수 있습니까? 고맙게도 svn 은 항상 후자를 가정하지만 사소한 해결 방법이 있습니다. 당신은 경로의 끝에 기호에서를 추가 할 필요가 같은, news@11@. svn 은 인수의 마지막 기호에만 관심이 있으며 그 뒤에 기호 페그 개정 지정자를 생략하는 것은 불법으로 간주되지 않습니다. 이 해결 방법은 at 기호로 끝나는 경로에도 적용됩니다.filename@@filename @ 이라는 파일 에 대해 이야기합니다 .


답변

원래 답변은 정확하지만 충분히 명시 적이 지 않을 수 있습니다. 특정 유닉스 명령 행 옵션은 다음과 같습니다.

svn info 'image@2x.png@'

또는

svn info "image@2x.png@"

또는

svn info image\@2x.png\@

방금 세 가지를 모두 테스트했습니다.


답변

다른 하위 폴더에 여러 파일을 추가하기위한 솔루션 :

for file in $(find ./ -type f -name "*@*.png"); do svn add $file@; done

@ .png” 의 “png” 를 추가하려는 파일 종류로 바꾸십시오 .


답변

다음 파일을 추가하려면 : image@2x.png 다음을 수행하십시오. svn add image \ @ 2x.png @


답변

간단히 추가

@

SVN 명령이 무엇이든 관계없이 파일에서 다음과 같이 사용해야합니다.

file@2x.jpg

file@2x.jpg@


답변

필자의 경우 @ 기호가 포함 된 SVN 저장소에서 파일을 제거해야했습니다.

이것은 작동하지 않습니다 :

svn remove 'src/assets/images/hi_res/locales-usa@2x.png'

그러나 이것은했다 :

svn remove 'src/assets/images/hi_res/locales-usa@2x.png@'


답변

여러 파일을 추가하려면 대체 솔루션이 있습니다.

svn status | grep \.png | awk '{print $2"@"}'| xargs svn add