2011-10-13 1 views
2

Mac OS X 및 Windows 7 사용자가있는 프로젝트에서 작업하고 있습니다. SVN은 버전 제어 시스템으로 사용됩니다. 맥 오에스텐을 사용하는 누군가가 "문자를 포함하고있는 파일을 커밋했을 때 문제가 발생했다. 맥 오에스 파일 시스템에서는이 문자가 허용되지만 윈도우에서는 그렇지 않다. 따라서 윈도우를 사용하는 사람은 누구도 저장소에서 업데이트하거나 다시 체크 아웃 할 수 없다.다른 사람이 파일 이름이 잘못된 파일을 커밋했을 때 Subversion 작업 복사본을 업데이트하십시오.

파일 이름에

가이

  • 중 하나를 완전히 svn의
  • 에서 도청 개정을 제거하거나 어떻게 든 저장소에
  • 을 이전 버전을 변경하거나 수 있도록하여 모든 버전에서 파일의 이름을 변경하는 방법입니다 "문자 해킹을 통해 NTFS에서
  • 또는 SVN 서버를 만드는 난 당신이 버그 버전을 말살하기 위해 svnadmin dumpsvnadmin load 명령을 사용하는 일부 솔루션을 발견했습니다

불법 파일 이름을 허용하지. 그러나 저장소 전체를 덤프하는 데는 시간이 오래 걸립니다.

답변

2

새 수정 버전에서 svn move/rename을 사용하여 파일의 이름을 바꿀 수 있으므로 사용자가 svn update으로 만들면 올바른 이름의 파일이 생성됩니다. 실제로 리포지토리의 변경 내용을 수정하려면 해킹이 필요하며 SVN의 정신과 거리가 먼 것입니다.

앞으로 이런 일이 발생하지 않도록하는 가장 쉬운 방법은 서버에 사전 커밋 (pre-commit) 훅 스크립트를 설치하는 것입니다. 여기에서 확인하십시오 a nice description on how to install a pre-commit hook.

+0

글쎄,하지만 버그가있는 모든 개정판은 창문에서 접근 할 수 없으므로 쓸모가 없다. 사전 커밋 훅에 대한 설명 주셔서 감사합니다 :-) – Etan

+2

일반적으로 관련이 없습니다. 히스토리에서 리비전을 삭제하면 (완전히 허용되지 않음), 그대로 두지 않는 이유는 무엇입니까? 예 : 관련 기준선 중 일부 태그를 지정하고 나중에 변경하기 만하면 추가 작업을 수행 할 수있는 좋은 기반이됩니다. 그리고 pre-commit hook으로 가십시오. – mliebelt

관련 문제