IT TIP

Subversion에서 파일 삭제를 취소하는 간단한 방법은 무엇입니까?

itqueen 2020. 10. 28. 21:23
반응형

Subversion에서 파일 삭제를 취소하는 간단한 방법은 무엇입니까?


이 지침은 약간 겁이 나고 혼란 스럽습니다. http://svnbook.red-bean.com/en/1.0/ch04s04.html#svn-ch-4-sect-4.3 . 또한 " svn rm"[1]을 수행 한 후 아직 체크인하지 않은 경우 훨씬 더 간단하다고 언급하지 않는 것 같습니다 .

그래서 나는 이것이 인터넷 검색을하는 사람들에게 더 간단한 대답을 기록하기에 좋은 장소라고 생각했습니다.

[1] svn 초보자에게는 " svn rm"가 파일을 즉시 파괴하는 것처럼 보일 수 있습니다 . 나는 svn rm소스 제어에서 그것을 제거하고 파일 자체가 실제로 사라 졌을 때 놀라게 할 것이라고 생각했던 것을 기억 합니다. 따라서 하위 질문은 실제로 로컬 복사본을 제거하지 않고 버전 제어에서 파일을 제거하는 올바른 방법은 무엇입니까?


방금했다면

svn rm foo.txt

다음으로 간단히 취소 할 수 있습니다.

svn revert foo.txt

" svn rm"을 (를 svn log) 수행 한 후 이미 체크인 한 경우 로그 ( )를보고 파일이 있었던 마지막 개정판을 찾아 해당 버전에서 가져올 수 있습니다.

이를 수행하는 한 가지 방법은 파일이있는 이전 개정판을 병합하는 것입니다. 현재 개정이 123이고 해당 파일이있는 마지막 버전이 120이라고 가정하면 다음을 수행하십시오.

svn merge -r123:120

원치 않는 작업을 수행하지 않도록 먼저 드라 이런을 수행 할 수 있습니다.

svn --dry-run merge -r123:120

하위 질문의 경우 로컬 사본을 제거하지 않고 svn에서 파일을 제거하는 방법 :

svn rm foo.txt --keep-local

또는 물론 svn rm'ing 전에 임시 파일에 복사 한 다음 다시 복사 할 수 있습니다.

cp foo.txt foo.txt-tmp
svn rm foo.txt
(svn ci -m "just removed foo.txt from the repository")
cp foo.txt-tmp foo.txt

어떤 이유로 든, -rarg는 나를 위해 작동하지 않았습니다 (svn 버전 1.6.9). 이전과 이후에 시도했지만 src현재 개정판에서 파일을 찾을 수 없다는 메시지가 계속 표시되었습니다 (duh). --revision과 동일합니다. @ 스타일 구문을 사용하면 효과가 있습니다.

svn cp url/to/removed/foo.txt@4 foo.txt

파일을 제거하고 작업 복사본에 보관하려면

svn rm foo.txt --keep-local

제거를 커밋 한 후 파일을 다시 가져 오려면 merge 명령 또는 복사 명령을 사용할 수 있습니다. 둘 다 파일 기록을 유지합니다. 병합 방법은 이미 다른 곳에서 설명되었으므로 복사 방법은 다음과 같습니다.

svn rm foo.txt
svn ci foo.txt -m "removed file"
(now at r5 as an example)
svn cp url/to/removed/foo.txt -r4 foo.txt
svn ci foo.txt -m "got file back"

TortoiseSVN 사용자의 경우 Repo 브라우저를 통해 매우 쉽게 수행 할 수 있습니다. Repo 브라우저 내에서 파일이 삭제되기 전 버전으로 전환합니다 (오른쪽 상단의 "Revision :"버튼을 사용하여 버전을 변경할 수 있습니다) :

여기에 이미지 설명 입력

그러면 Repo 브라우저의 원래 위치에서 삭제 된 파일을 볼 수 있습니다. 마우스 오른쪽 버튼으로 클릭하고 "작업 복사본으로 복사 ..."를 선택합니다.

여기에 이미지 설명 입력

그러면 파일은 커밋 할 준비가 된 (svn이 추가 된 것처럼) 작업 복사본에 복원되고 로그 기록은 그대로 유지됩니다.


SVN에서 삭제 된 파일을 되돌리려면. 삭제 직전에 개정 번호를 찾으십시오 (예 : 341). 그런 다음 해당 파일 만 해당 개정 번호로 되돌립니다.

svn up -r341 [path_to_deletedFile]

나는 거북이를 사용하여 이전 개정의 복사 메뉴 항목을 사용하고 나를 위해 일하고 역사를 유지했습니다.

참고 URL : https://stackoverflow.com/questions/497670/whats-a-simple-way-to-undelete-a-file-in-subversion

반응형