문제

코드베이스의 성능으로 브랜치를 만들었습니다. 다음은 분기 사양입니다.

//depot/code/main/... //depot/code/branch/...

그런 다음 분기에서 분기 파일을 움직여 a.txt-> b.txt를 사용한다고 말합니다.

p4 integrate //depot/code/branch/a.txt //depot/code/branch/b.txt
p4 delete //depot/code/branch/a.txt

이제 지점에서 b.txt에 통합하고 싶은 메인에서 A.txt가 몇 가지 변경되었다고 가정 해 봅시다.

원래 브랜치 사양을 사용하여 통합하려고 할 때 Main에서 A.TXT에 대한 변경 사항을 B.txt에 반영하지 않습니다. 이름이 변경된 파일에 메인 표시가 표시 될 수있는 방법이 있습니까?

분기 사양은 다소 크고 (수백 건의 변경) 많은 파일이 분기에 이름이 바뀌 었으므로 자동화 된 방법을 사용하고 싶습니다. 여기서 무엇이든 명확히 할 수 있는지 알려주세요. 화이트 보드를 갖는 데 도움이 될 것입니다.)

감사! 샘

도움이 되었습니까?

해결책

Perforce 2009.1에는 적절한 이름이 있으며, 이는 이에 도움이 될 수 있으며, 아마도 향후 이름 만에만 도움이 될 수 있습니다. 보다 Perforce 2009.1 릴리스 노트, 특히 :

#177023 * **
    The new 'p4 move' command allows for better support for
    renaming files.  A file must be already opened for 'edit'
    or 'add' in order to be moved.  Moved files can be synced,
    resolved and diffed against the repository just like files
    opened for 'edit'.  See 'p4 help move' for more info.

이름 변경을 분기 사양에 추가 할 수 있습니다. 지점 사양이 더 길고 복잡 해지더라도 적어도 통합이 자동으로 될 것입니다.

다른 팁

'-3'스위치를 추가하여 새로운 엔진을 사용하여 통합을 위해 이전에 'P4 Move'로 이동 한 대상 파일을 감지하고 자동으로 '재 타르게'자체가 해당 이동 작업을 따라갈 수 있습니다.

p4 integrate -3 //depot/code/main/... //depot/code/branch/...

//depot/code/main/a.txt의 변경 사항을 //depot/code/branch/b.txt에 통합합니다.

이것은 현재 2010.2 릴리스의 'UNDOC'기능이지만 다가오는 2011.1의 기본 동작이 될 것입니다.

Perforce가 이것을 처리하는 유일한 방법은 분기 사양을 사용하여 원본의 이전 파일을 분기의 새 파일에 매핑하는 것입니다. 아마도 그것은 최근의 Perforce 버전에서 새로운 Move 명령으로 바뀌었지만 내가 경험 한 것은 아닙니다.

P4 FSTAT의 출력을 사용하여 이동 된 파일을 처리하기위한 브랜치 사양의 생성을 스크립트 할 수 있습니다.

다음을 시작점으로 사용하십시오.

ROOT_PATH="//depot/books/..."
FIRST_CHANGE=91212

p4 fstat -Os -T headChange -F "headAction=move/* headChange>$FIRST_CHANGE" $ROOT_PATH|grep headChange | sort -u|while read DUMMY1 DUMMY2 change; do p4 describe $change; done|grep "moved from"|sed 's/\.\.\./\t/g; s/\#[0-9]*//g; s/ moved from//g;'

이것은 // Depot/Books/...의 모든 파일을 찾을 수 있습니다.

우리에게는 이것의 출력이 보입니다

//depot/books/bar.txt //depot/books/foo.txt

분기 사양을 만드는 데 사용하십시오.

나는 그렇게 믿지 않는다. 직접적인 것이 없기 때문에 p4 rename, 당신은 통합하고 삭제해야합니다 - 일단 완료되면 다른 분기에서 통합하면 더 이상 올바른 파일로 이동하지 않습니다. 적어도 그것은 내 경험이었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top