2012-05-09 4 views
1

'p4 copy'명령으로 복사 될 모든 변경 목록에서 'p4 describe'를 수행 할 수 있기를 원합니다. 어떻게 할 수 있습니까?복사 할 변경 목록을 찾는 방법은 무엇입니까?

p4 copy -n from-branch/... to-branch/... | sed -e 's|.* ||' | xargs -n 1 p4 filelog 

파일 당 변화의 목록을 찾아 마지막 지점의 지점에서 목록을 자르거나 (있는 경우)에 분기에 조치를 통합하는 :

내가 좋아하는 뭔가를 할 수 있습니다. 그러나 이것은 잠재적으로 오랜 시간이 걸릴 수 있습니다. 더 좋은 방법이 있습니까?

답변

1

시도 p4 interchanges. 나는 전체 변경 목록 설명을 인쇄하고 파일을 나열 -l-f 플래그, 변경 좋아 :

p4 interchanges -lf from-branch/... to-branch/... 

는 사실은하지만, p4 copy로이 명령을 사용하지 않은, 그래서 결과가 약간 다를 수 있습니다. 특히 멋진 통합 (체리 피킹 리비전)을 수행하는 경우 PERFORCE는 변경 목록이 이미 통합되었을 때에도 통합 될 필요가 있음을 보여줄 수 있습니다.

+0

예, 'p4 copy'는 'integrate'와 약간 다릅니다 .2 개의 코드 라인이 수렴되도록 만들므로, 변경 목록을 병합하고 무시한 경우 복사 대상이됩니다. –

+0

@ p4-randall , 브랜치는 오래 지속되는 릴리스 브랜치입니다. 'p4 interchanges'를 시도했는데, 원하는대로 작동하는 것처럼 보입니다. 모서리가 보이지 않는 경우가 있습니까? –

0

가장 쉬운 방법은 from-branch에서 to-branch로 복사 된 마지막 CL에서 레이블 및 태그 from-branch/...를 작성하는 것입니다. 그런 다음 복사되지 CL에서의 목록을 찾는 것은 쉽지있는 그대로 :

p4 changes 'from-branch/[email protected]>copied-up-to' # where copied-up-to is the name of the dynamic label 

에서 분기 모두 같은 CL에서 태그가 아래에 모든 것을, 나는 마지막 CL 것 그 개정 규격 동적 레이블을 사용할 수 있다면 그 지점에서 지점으로 복사되었습니다.

0

아마도 스크립트는 적절한 방법 일 것입니다. Perl, Python 또는 Ruby API를 사용하면 유지 관리가 더 쉽고 효율적입니다.

기본 개요는 다음과 같습니다

  • 실행 p4 copy -n
  • 가 복사되는 소스 수정을 구문 분석 후보 파일의 목록을 얻을 수 있습니다. 예를 들어, 각 출력 행은 "branch/sync from //depot/foo.c#1, # 3"과 유사합니다. 이 파일에 대해 수정본 1-3이 어떻게 생성되었는지 알고 싶습니다. 모든 명령 통화에 대한 단일 연결을 사용할 수있는이 API를 사용하는 것이 훨씬 더 효율적입니다하고, p4 changes -l //depot/foo.c#1,#3

다시 (예를 들어, 각 파일을 영향을 변경 목록을 얻을

  • 실행 p4 changes.

  • +0

    필자는 필자가 P4Python을 사용하고 있고 쉘 명령을 간결하게하기 위해 언급했다. –

    관련 문제