SVN : 아직 생성되었지만 아직 커밋되지 않은 디렉토리를 다시 만듭니다.

StackOverflow https://stackoverflow.com/questions/578009

  •  06-09-2019
  •  | 
  •  

문제

여기 조금 있습니다 SVN 문제:

로컬로 디렉토리를 만듭니다.

$ svn mkdir output
A         output

실수로 제거합니다.

rm -rf output

이제 어떻게 재현합니까? 나는 이것을 시도했다 :

$ svn mkdir output
svn: 'output' is already under version control

이:

$ svn revert output
Reverted 'output'

그러나 여전히 거기에 없습니다.

업데이트: 사람들은 단순한 것을 제안합니다 mkdir output 제거 후 충분했을 것입니다. 그러나 내 SVN 버전에서는 그렇지 않습니다. 그것은 있다는 사실을 무시합니다 output/.svn 내가 제거한 디렉토리. 단지 mkdir output 물론 그것을 다시 가져 오지 않을 것입니다. 어떻게 든 SVN은 그 레크리에이션에 관여해야합니다. output 예배 규칙서. (저는 SVN 1.4.6을 사용하고 있습니다.)

도움이 되었습니까?

해결책

공식적으로 SVN에서 제거하십시오.

$  svn rm --force output
svn: 'output' does not exist

그런 다음 다시 만듭니다.

$ svn mkdir output 
A         output

그 출력 svn remove 위는 약간 오해의 소지가 있습니다. 나는 제거가 실패했다고 생각했고 아무것도 바꾸지 않을 것이라고 생각했다.

SVN에서 가장 직관적 인 접근 방식은 아니지만 이런 식으로 작동합니다.

다른 팁

단지 mkdir output 충분했을 것입니다.

이것에 대해 이해해야 할 것은 SVN이 유지 관리하는 디렉토리와 로컬 파일 시스템에 의해 유지되는 디렉토리 간의 구별입니다.

원래 게시물에 발행 된 네 가지 명령은 다음을 수행합니다.

  1. SVN에게 SVN 리포지토리에 '출력'이라는 디렉토리를 추가하려고합니다. 해당 정보를 'Changelist'에 추가하여 응답합니다.
  2. 로컬 파일 시스템에서 '출력'제거 -SVN 은이 일이 발생하는 것을 알지 못합니다.
  3. SVN에게 SVN 리포지토리에 '출력'이라는 디렉토리를 추가하려고한다고 말하십시오.
  4. SVN에 '출력'디렉토리 추가에 대해 마음이 바뀌 었다고 말합니다.

단순히 발행 한 경우 ...

mkdir output

... 3 단계로서 모든 것이 괜찮 았을 것입니다. 파일 시스템을 사용하여 디렉토리가 제거되었으므로 파일 시스템을 사용하여 복원해야합니다. SVN이 복원에 참여할 이유가 없으며, 찾은 것처럼 그렇게하려고 시도하는 것은 단순히 문제를 혼란스럽게합니다.

HTH

또한 디렉토리를 다시 만들어 낼 수도 있습니다 mkdir.

svn mkdir 디렉토리를 생성하고 동등한 작업도 수행합니다 svn add, 그러나 한 단계에서.

따라서 문제가있는 이유는 "추가"때문입니다. 당신이 저지르지 않았기 때문에, 되돌아 오는 것은 아무것도하지 않을 것이며 svn mkdir Subversion은 이미 다음 커밋에 추가하기위한 디렉토리가 이미 있기 때문에 작동하지 않습니다 ( rm 전복 외부에 있었다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top