2008-08-28 2 views
4

Subversion이 충돌을 일으키지 않는 한 "업데이트/병합"을 알리는 방법이 있습니까?Subversion : 충돌이 발생하면 업데이트가 실패합니까?

나는 업데이트를 실행하기 전에 확인 --dry-run/status -u을 사용할 수 있습니다 알고 있지만, 나는 종종 다른 업데이트를 실행하고는 "C의 index.php를"선을 확인하지 않기 때문에 깨진 웹 페이지를 받고 있습니다.

나는 또한 svn이 충돌에 대해 너무 불만스럽게 보이지 않는다는 것을 알아 냈습니다. 충돌에 관계없이 svn이 여전히 "개정판으로 업데이트되었습니다"라고 말하고 0을 종료합니다. 그래서 나는 그것들을 발견하기 위해 라인별로 출력을 파싱해야한다. 확실히 더 좋은 방법이 있을까요?

답변

3

당신은 충돌이 발생했을 때 어떻게해야하는지 나타 내기 위해 --accept 매개 변수를 사용할 수 있습니다 또한

--accept ARG    : specify automatic conflict resolution action 
          ('postpone', 'base', 'mine-full', 'theirs-full', 
          'edit', 'launch') 

참조 svnbook에서 interactive conflict resolution 페이지를

1

아마 더 좋은 방법은 그래픽 도구를 사용하는 것입니까? 또는 출력을 파일로 리디렉션하는 업데이트를 수행하는 스크립트를 작성하고 끝에 cat svnupdate.log | grep "^ C" "충돌을 표시 하시겠습니까?

내가 사용하는 그래픽 도구 (TortoiseSVN 및 Netbeans)를 사용하면 끝에 불쾌한 잡음이 생기고이를 다루는 병합 선택 대화 상자가 표시됩니다. 필자는 명령 줄 도구와 동등한 기능을 제공하지 못합니다.

1

@jsight : TortoiseSVN은 훌륭하지만 X가없는 * NIX 환경에서 주로 개발됩니다. 따라서 대개 명령 줄을 (제한적으로) 사용하고 있습니다.

당신의 스크립트 제안에서, 그게 내가 지금하고있는 일입니다. 그래서 나는 단지 $를 확인할 수 없다는 것을 짜증이납니다. 지금은 "파일로 출력"을 건너 뛰고 파이프를 사용하지만 그렇지 않은 경우 정확하게 설명합니다.

1

--diff3-cmd 매개 변수를 사용하여 사용할 병합 도구 (일반적으로 diffutils의 diff3)를 지정할 수 있습니다.

0

또한 미리 커밋 스크립트를 사용하여 파일에서 충돌 마커를 찾고 커밋을 방지 할 수 있습니다.

0

서브 버전 1.5 (최근에 출시 된) 일부 기능을 추가 업데이트 충돌시 "--accept"인수를 사용하여 수행 할 작업을 지정합니다.

관련 문제