UFO ET IT

전복 상태 기호 "~"는 무엇을 의미합니까?

ufoet 2023. 6. 2. 21:41
반응형

전복 상태 기호 "~"는 무엇을 의미합니까?

저는 제가 할 때 틸트 기호를 받습니다.svn status.

프로젝트를 XCode로 편집하여 출력한 결과입니다.

svn status
M      build/Currency_Converter.build/Currency_Converter.pbxindex/imports.pbxbtree
M      build/Currency_Converter.build/Currency_Converter.pbxindex/pbxindex.header
M      build/Currency_Converter.build/Currency_Converter.pbxindex/symbols0.pbxsymbols
~      build/Currency_Converter.build/Currency_Converter.pbxindex/strings.pbxstrings
M      main.m
//more changed files

그게 무슨 뜻인지 알아요?구글이나 svn 치트 시트에서 찾을 수 없는 것 같습니다.

흥미롭게도 main.m만 편집했는데 수정된 파일이 많습니다.왜 그런지 모르겠어요.SVN과 XCode를 사용하는 데 필요한 팁이 있습니까?소스 파일을 버전 관리 하에 두어야 합니까?

편집: 이미 버전 제어 하에 있던 파일이 다른 유형의 파일로 대체되어 발생합니다.이 경우 strings.pbxstrings는 파일이었으나 이제 디렉토리가 되었습니다.이 이야기의 교훈은 빌드 폴더를 버전 관리에 넣지 말라는 것입니다.

SVN Book은 다음과 같이 말합니다.

항목이 한 종류의 개체(파일, 디렉터리, 링크)로 버전화되었지만 다른 종류의 개체로 대체되었습니다.

그래서 아마도 그것은 원래 하나의 파일이었지만, 당신은 그것을 디렉토리로 바꾸었습니까, 아니면 그 줄들을 따라 무엇인가요?

제가 한 일은 다음과 같습니다.

폴더가 테스트인 경우

  1. mv 테스트 테스트 1
  2. svn 제거 테스트
  3. mv 테스트1 테스트

부터

svn help status

다른 종류의 항목에 의해 차단된 버전의 항목

파일 권한이 변경되고 svn에 실행 액세스 권한이 없는 경우에만 본 적이 있습니다.

이게 도움이 되길 바랍니다.

svn delete --keep-local x
svn commit -m "del x"
svn add x
svn commit -m "blah"

이 문제를 해결하는 가장 쉬운 방법은 백업한 다음 이 상태의 폴더 또는 파일을 삭제하고 "svnup"을 수행하는 것입니다. 파일로 대체된 폴더가 아니라 .svn 폴더가 없거나 손상된 것일 수 있습니다.

이 문제는 폴더에서 .svn 폴더를 제거할 때(예: 디렉터리를 제거한 다음 동일한 디렉터리를 다시 만들 때) 또는 디렉터리를 기호 링크로 바꾸거나 같은 이름의 파일로 바꿀 때 발생할 수 있습니다.

폴더가 a-folder라고 하는 폴더인 경우 상위 폴더에서 다음 명령을 실행하여 이 문제를 해결할 수 있습니다.

$ find a-folder -type d -name '.svn' -print0 | xargs -0 rm -Rf
$ svn up --force .
svn: Directory 'logs/.svn' containing working copy admin area is missing
$ svn up --force .
E    a-folder
...
Updated to revision n.

그런 다음 svn이 변경 사항을 추가/제거하고 다시 커밋해야 합니다.

SVN에서도 비슷한 문제가 있었습니다. 잠금 장치에 대해 불평하고 있었습니다.우리가 한 일은 다음과 같습니다.

  • 파일 백업
  • rm -r(linux)을 사용하여 문제의 디렉토리를 제거했습니다.
  • 디렉터리에서 svn 정리 실행
  • run svn up --force on 디렉토리

저는 이것이 줌라 내에서 확장을 설치할 때 자주 발생하는 문제라는 것을 공유하고 싶습니다.확장은 CMS를 통해 설치되며 그룹 쓰기 없이 Apache가 소유합니다.일반적으로 다음 단계는 SVN에 파일을 추가하는 것이지만 파일 Perm을 변경하지 않거나 변경하지 않으면 SVN이 .svn 디렉터리를 쓸 수 없을 때 실패합니다.여기 쉬운 해결책이 있습니다.

mv foo foo-bak
svn up foo
svn revert foo

# just for good measure. Foo should not show up in the two following commands.
ls | grep foo
svn st | grep foo

mv foo-bak foo
svn add foo

Windows(윈도우)에서 심볼릭 링크의 문제일 수도 있습니다.심볼릭 링크를 SVN에 커밋한 다음 Windows에서 확인하면 링크가 일반 파일로 변경되며 이 또한 ~로 보고됩니다.

저는 (예:) 주믈라!, 워드프레스 또는 드루팔에서 모듈을 업그레이드하는 동안 종종 이런 일을 겪었습니다.업그레이드 프로세스에서 .svn 디렉터리가 제거되는 경우가 있습니다.

# rename updated directory
mv foo foo.new

# restore the old directory
svn up foo

# merge / update the old directory with new items
# notice that the above command will preserve the obsolete files
# so you should do a diff -r in order to remove them
cp -r foo.new/* foo

# Add files commit, etc
svn add foo/*
svn delete foo/xx
svn commit -m "updated module"
~ versioned item obstructed by some item of a different kind
    Second column: Modifications of a file's or directory's properties

언급URL : https://stackoverflow.com/questions/853405/what-does-the-subversion-status-symbol-mean

반응형