배경
사이 (사용자 제외) 모든 변경 목록을 가져옵니다.나는 "주류"창고 및 억지로에 "베타"지점을 가지고 "주류"및 지점
"mainline"의 최신 코드를 "베타"분기에 병합하고 싶습니다. 하루에 한 번씩이 작업을 수행해야하며 매일 "주류 지점"에 약 100 개 이상의 커밋/제출이 있습니다.
일반적으로, 정말 같은 것을 할 것입니다 :
p4 integ //prod/mainline/... //prod/beta/...
cd $(p4 where //prod/beta/... | cut -d ' ' -f3 | sed 's/\.\.\.$//g')
p4 resolve ./...
문제
그러나, 우리는 등, 빌드 스크립트를 다양한 메이크 파일의 버전 번호를 업데이트하는 성가신 시간당 빌드 프로세스를 가지고, 버전/지점 번호를 업데이트하고 빌드 서버에서 '더미'계정 (예 : dummy_user
)을 사용하여 PERFORCE에 체크인합니다. 이 작업은 모든 분기 ()에서 수행되므로 병합 작업에 임의의 충돌이 발생할 수 있습니다.
이 버전 번호를 제출하면 이제 p4 integ
/p4 resolve
작업이 완전하게 완료되지 않으며 "버전 번호 업데이트 작업"의 영향을받는 파일을 모두 수동으로 병합해야합니다. 이 버전 번호의 말도 안되는 실제 코드 변경 사항을 손으로 병합하고 싶습니다.
질문
p4 integ
에 대한 방법은 사용자 제외 (주/다른-분기하지만 현재) 아직 지점에 존재하는 변화 목록 의 집합이 있습니까? 그러나, 나는이 모든 변화리스트의 목록을 얻을 수있는 자동화 된 방법이 없습니다
for i in $(p4 changes //prod/mainline/... | grep -v dummy_user | cut -d ' ' -f2)
do
p4 integ //prod/mainline/[email protected]${i},${i} //prod/beta/...
done
: 난 항상 뭔가를 할 수있는 ...
- 이
mainline
의 존재를 - 하지만 아직 병합/통합되지 않았습니다.
beta
... dummy_user
으로 작성하지 않았습니다.
어떻게하면됩니까?
"더 표준적인"(더 많은 P4, 적은 외부 스크립트) 옵션이 있기 때문에 받아들입니다. 길 아래쪽에있는 해당 지점 스펙을 다시 사용하려면 어떤 단계를 수행해야하는지 알려주십시오. 감사! – DevNull
추가 단계가 없으므로 branchspec의 장점입니다. 한번 만들면 여러 번 사용하십시오. :) –