2009-11-24 3 views
0

TRUNK의 개정판에서 분기를 작성할 때, 분기점에 mergeinfo 세트가 없으므로 분기 개정판을 나중에 이해할 수 없다는 것을 알 수 있습니다.mergeinfo와 함께 개정판에서 Subversion 분기

나는 TRUNK에 대해 차후에 diffs를 자동으로 생성해야하는 스크립트가 있지만 필요한 개정 번호가 없습니다. 내가 main과 다시 병합하면 스크립트가 그것을 풀 수 있도록 merginfo가 설정됩니다.

또한 나는 개정을 설정합니다

svn merge --record-only svn+ssh://{url}/[email protected]{revision} 

이 작업을 수행 할 수 있습니다. 하지만 속도가 느리고 소스를 확인하고 변경을 다시 수행해야합니다.

또한 mergeinfo가없는 경우 트렁크에 대한 diffback으로 폴백하지 않는 한 분기의 변경 사항에서 diff를 생성하도록 스크립트를 변경할 수 있지만 특수한 경우 이이를 매우 복잡하게 만듭니다.

더 쉬운 방법이 있습니까?

설명 : 더 많은 전복 연구를 한 후 this을 읽습니다. 내가 필요한 것은 IMPLICIT mergeinfo에 접근하는 프로그래밍 방식이다. 왜냐하면 당신은 복사를 통해 브랜치를 만들 때 명시 적 mergeinfo 속성을 얻지 못하기 때문이다.

암시 적 속성은 사실 /TRUNK:1-BRANCHPOINT이며 분기에는 모두 BRANCHPOINT까지의 모든 수정본이 포함되어 있음을 나타냅니다. 내가 찾으려는 것은 분기가 만들어진 후 BRANCHPOINT입니다.

답변

3

질문에서 나는 정확히 어떤 차이를 생성하려고하는지 완전히 확신하지 못합니다. 그러나, 당신은 항상 분기를 사용하여 온 개정 얻을 수 있습니다 : 해당 분기의 복사 작업을 넘어 돌아 가지 않는다

svn log -v --stop-on-copy -r 1:HEAD -l 1 svn+ssh://{url}/branch 

이 먼저 개정 오래된을 주문을하고 1로 제한 개정 (복사 작업 자체).

그러나 svn mergeinfo는 분기 연산을 고려하여 이미 병합 된 것으로 간주합니다. (이 작업을 수행하지 않았을 때 짜증나지만 시간이 지나면 고정되어 있습니다), mergeinfo를 사용하여 어떤 방향으로 병합 되더라도 무엇이 합리적인지를 보여줄 것입니다.

+0

글쎄 나는 svn log -v의 출력을 파싱 할 수 있다고 생각한다. 그러나 그 결과는 이상적이지 않다. 나는 몇 가지 설명을 추가하고 이것을 지금 당장 열어두고있다. – rhettg