2009-10-26 4 views
9

일부 커밋 후 삭제 된 파일을 복원하면 내가 알고 싶습니다BZR : 이전 버전에서 제거 된 파일 (그것을 할 수있는 깨끗한 방법)을 복원 할 경우 시장

내가 이름을 변경 한 내 모든 일을 저지른 것보다, 몇 가지 테스트를 위해 파일을 (내가 파일의 이름을 변경하는 것을 잊었다) 및 기타 커밋을 많이 했어요 ... 나는 깨달았다 , 그것은 너무 늦게 ...

안부, 아이 만이었다

답변

0

이것은 최선의 대답이 아닙니다. bialix의 답을 보라. 훨씬 간단하다. 여기를 참조 용으로 남겨 두겠습니다.

  1. 분기 만듭니다 : 여기


    은 내가 생각하는 가장 깨끗한 방법의 복구 지점에

    BZR 지점으로 myTree 수리 경로

  2. CD를

  3. 누락 된 파일을 마지막 버전 (e 이 예에서 g 287) :

    BZR 커밋

    BZR 주에 다시

  4. CD "내 발 Unshoot"-m 커밋의 변화를 287 lost.file

  5. 을 -r 복귀 수리에 지점

  6. 병합

    BZR 병합 수리 경로

  7. 준비가되면 병합을 커밋하고 복구 분기를 삭제하십시오.

원본 작업 브랜치에서 되돌릴 수는 있지만 그렇게하지 않는 것이 좋습니다. 커밋되지 않은 변경 사항에 대해서도 (약간만) 걱정할 필요가 있습니다.

4

해당 파일을 제거 할 때 수정 번호를 알고있는 경우 (bzr log -v으로 기록을 검사 할 수 있음) 병합 명령을 사용하여 해당 파일을 복원 할 수 있습니다.

bzr merge foo -r N..N-1 

일예 : 그래서 파일 foo 및 개정 번호 N 당신이 명령을 실행해야 수정 287에 대한 :

bzr merge foo -r 287..286 

이 명령은 파일을 개정 287과 같이 복원합니다.이 변경 사항을 커밋해야합니다. 파일이 삭제되기 전에

+0

조심하세요! 이것은 rev 287의 * 전체 *를 취소 할 것입니다. 나는 하나의 특정 파일을 changeset에서 병합 할 수 있다고 생각하지 않습니다. –

+0

예, bzr은 변경 집합의 파일 하나만 병합 할 수 있습니다. 직접 테스트 할 수 있습니다. – bialix

+0

네, 당신이 옳습니다. +1. 나는 나의 코멘트와 나의 대답을 철회한다. 내가 유지해야 할 유일한 사항은 작업의 복잡성에 따라 다른 분기에서 되돌릴 수 있다는 것입니다. –

12

가장 쉬운 방법은 단순히 개정 번호와 bzr revert를 사용하는 것입니다

bzr revert -rX path/to/file 
bzr commit -m 'Bringing path/to/file back' 

당신은 아무것도를 병합 할 필요가 없습니다.

관련 문제