2016-06-06 2 views
0

필자는 우리 저장소 중 하나에서 특히 낡은 수정 버전을 검색하여 두 가지 병합을 통해 어떤 일이 발생했는지 파악하려고합니다.Subversion은 mergeinfo없이 병합을 기록 할 수 있습니까?

$ svn --log --verbose --use-merge-history --revision 100 ^/target 
------------------------------------------------------------------------ 
r100 | <author> | <date> | 1 line 
Changed paths: 
    A /path/to/new/file 
------------------------------------------------------------------------ 
:

내가 목표 지점에 개정 중 하나를 보면, 그것은 나에게 (도, 나는 차이점을 확인, 날 믿어) 정확히 소스 분기에 수정 같은의 내용을 보여줍니다

하지만 누락 된 것이 있습니다. 어디에도 mergeinfo 속성 변경이 기록되어 있지 않습니다. 그래서 그것을 이해할 수있을만큼 병합 할 수는 없습니다. 저자가 파일을 편집 한 것일까 요?

나는 자격이 개정 무엇인지 Subversion을 생각 확인하지 더블 :

$ svn mergeinfo --show-revs eligible ^/source ^/target | grep 100 

아무것도! Subversion은 mergeinfo가 없어도 개정 내용이 병합되었다고 생각합니다.

$ svn mergeinfo --show-revs merged ^/source ^/target | grep 100 
r100 

가능합니까? 방법?


은 내가 CollabNet article 및 mergeinfo 누락에 Svn Book section를 참조하십시오.

  • 관련없는 소스 병합 : 내가 말했던 것처럼, 소스 브랜치에서 정확한 내용/diff를 볼 수 있습니다.
  • 외부 저장소에서 병합 : Ditto.
  • --ignore-ancestry 사용 : 가능합니다 (작성자가 어떤 명령을 호출했는지 알 수 없음). 이 병합 할 수있는 목록에 나타나지 않습니까?
  • 대상의 자연사에서 역 병합 적용 :이 병합은 역 병합이 아닙니다.

답변

2

아차, 실제로 는 지금까지의 내가 지금 말할 수있는svn:mergeinfo 특성이있다. svn log이 속성 변경 만 인쇄했는지 여부를 기억하지 못했습니다. svn log --verbose을 실행하거나 ^/target에 대해 svn propget svn:mergeinfo --verbose을 실행 해보십시오.


SVNBook | Merges Without Mergeinfo을 읽으십시오.

BTW, mergeinfo가 Subversion 1.5에 도입 된 것을 잊지 마십시오. 따라서 이전 Subversion 버전과의 병합이 발생하면 svn:mergeinfo 속성이 누락 된 것일 수 있습니다.

예, 무의미한 커밋 작성자는 파일을 편집하여 커밋을 병합처럼 보이게 만들 수 있습니다.

+0

내 질문이 업데이트되었습니다. 그것은 조상 옵션을 무시할 수 있지만 병합 할 수있는 목록에 소스 개정판을 남기지 않을 가능성이 있습니까? –

+0

@AnthonyMastrean 업데이트 된 답변 확인 – bahrep

+0

원본 로그 문구가 장황했습니다. 나는 다른 누군가가 그 재산을 다른 개정판의 일부로 수정 한 것이 가능하다고 생각한다. –

관련 문제