2010-04-30 6 views
3

전 Subversion에 새로 온 사람입니다. 최근에 저는 두 개의 다른 지점에서 개발을 수행했습니다. 하나의 지점이 다른 지점의 지점이었습니다. 나는 첫 번째 브랜치에서부터 트렁크까지 몇 가지 변경 사항을 통합했다. 그러나 다른 지점의 변경 사항을 트렁크에 병합하려고 시도 할 때 모든 것이 엉망이되었습니다. 즉, 나는 많은 갈등을 겪었는데, 그 중 일부는 해결했지만 그 중 일부는 해결하지 못했다. 더 나쁜 것은, 내가 지점으로 변경 한 많은 부분이 어떤 이유로 트렁크에 병합되지 않았다는 것입니다. 지금, 내 유일한 질문은 트렁크를 이전 상태로 되돌리기 위해 작업 복사본을 되돌릴 수 있습니까? 즉,이 일을 통해 나는 어떤 것을 망칠 것인가? 제 가르침은 다시 시작하여 "손으로"더 조심스럽게 행동하는 것입니다.병합 후 되돌리기, 나쁜 생각인가요?

고맙습니다.

답변

5

항상 깨끗하고 새롭게 업데이트 된 작업 복사본으로 병합을 수행하는 경우에만 병합이 수행 한 모든 변경 사항 (충돌을 해결하기 위해 수행 한 변경 사항)을 되돌려서 병합을 취소 할 수 있습니다.
커밋되지 않은 변경 사항이있는 작업 복사본으로 병합하려고 시도하지 마십시오.

은 병합 충돌을 최소화하기 위해, 당신은 당신이 당신의 병합 대상의 임시 복사본을 만들 수 있습니다, 어떤 이유로 당신이 그들에 여러 병합을 저지하려는 경우 (한 번에 하나의 병합을

  • 원하는 즉 다시 병합 대상으로 병합, 그에 여러 가지를 병합하고, 이후에 삭제합니다.)
  • 항상 이 지점에서 다시 변경 내용을 병합 모든 발생하는 충돌을 해결하는 첫 번째 분기에 트렁크에서 변경 내용을 병합 트렁크 (또는 다른 브랜치)에 당신이에서 재 통합 svn merge--reintegrate
  • 던져가는 요리 가지를 사용하여) 그 복사에 의해 만들어지고 대신
1

아직 커밋하지 않았고 되돌리기를 사용하면 트렁크의 마지막 버전을 사용하게됩니다.

작업 복사본을 첫 번째 병합 후 상태로 반환 할 수 있다고 생각하지 않습니다.

0

로컬 파일을 재설정 작업 복사본을 되돌리기 다시 저장소에 무엇에 새롭게을 만들 수 있습니다. 다시 말해, 사용자가 변경 한 사항을 제거합니다. 트렁크는 변경되지 않습니다 (트렁크가 저장소에 있으므로). 되돌리기는 작업 복사본을 삭제하고 다시 체크 아웃하는 것과 거의 같습니다.

트렁크의 작업 복사본에 분기를 병합하고 커밋하지 않은 경우 다른 분기를 동일한 작업 복사본으로 병합하려고하면 작업 복사본을 되돌릴 수 있습니다. 당신은 모든 일을 포기할 것입니다.

분기를 트렁크에 병합하고 커밋 한 후 실행 취소하려는 경우 해당 커밋의 변경 사항을 되돌릴 수 있습니다 (여전히 "되돌리기"라고하지만 다른 동작 임).

  • 개정을 마우스 오른쪽 단추로 클릭
  • 사용 거북이 작업 복사본에서 로그를 볼 수 있습니다 (로컬 변경) 트렁크의 깨끗한 작업 복사본으로

    1. 시작 : 예를 들어, 경우 TortoiseSVN이를 사용하지 않는 것 병합을 실행 한 항목을 실행 취소하고 "이 수정본에서 변경 사항 되돌리기"를 선택하십시오.
    2. 사실을 확인하고 효과적으로 병합을 취소했습니다.

    이 문제를 방지하려면 두 번째 분기의 변경 사항을 첫 번째 분기로 병합하고 첫 번째 분기의 변경 사항을 다시 트렁크로 병합해야합니다. 그것이 당신이 일하고 싶지 않은 방식이라면, 아마도 첫 번째 브랜치가 아닌 트렁크에서 두 번째 브랜치를 생성해야합니다. 분기하는 지점으로 다시 병합하는 것이 가장 쉽습니다.

  • 2

    작업 복사본이 엉망인 경우 가장 쉬운 방법은 완전히 삭제하고 처음부터 다시 체크 아웃 한 다음 다시 시도하는 것입니다. 되돌리기는 이론상으로는 동일하지만 추가 된 파일이 남아 있습니다 (나중에 병합하는 데 문제가 발생할 수 있음). 또한 삭제 및 체크 아웃이 다시하는 것은 명백합니다.

    커밋을 수행하지 않은 경우 리포지토리의 트렁크는 영향을받지 않습니다. 병합은 클라이언트 측의 파일 만 수정합니다.

    sbi가 언급했듯이, 항상 svn이 혼란 스럽기 때문에 수정되지 않은 작업 복사본으로 병합해야합니다.