Changelist에 첨부 된 모든 Perforce 작업을 빠르고 쉽게 삭제할 수 있습니까?
-
03-07-2019 - |
문제
Changelists에 첨부되어 있기 때문에 명령 줄에서 삭제할 수없는 약 600 개의 작업 목록이 있습니다. 내가 그들을 분리하는 방법을 아는 유일한 방법은 GUI를 통한 것이지만 영원히 걸릴 것입니다. 누구든지 더 나은 (예 : 더 빠른) 방법을 알고 있습니까?
해결책
"수정"및 "수정"명령을 사용하여 알아 냈습니다. 절차는 다음과 같습니다.
"수정"명령의 출력을 파일에 덤프합니다.
p4 fixes > tmp.txt
파일에는 다음과 같은 많은 줄이 포함됩니다.
job005519 fixed by change 3177 on 2007/11/06 by raven@raven1 (closed)
job005552 fixed by change 3320 on 2007/12/11 by raven@raven1 (closed)
job005552 fixed by change 3318 on 2007/12/10 by raven@raven1 (closed)
...
신뢰할 수있는 텍스트 편집기 (그리고 여기에 메모장에 대해 이야기하고 있지 않음)를 사용하여 선을 Perforce 명령으로 변환하여 Changelists에서 작업을 분리하는 매크로를 채찍질하십시오 (P4 Fix -d) :
p4 fix -d -c 3177 job005519
p4 fix -d -c 3320 job005552
p4 fix -d -c 3318 job005552
...
파일을 .BAT 또는 .CMD 파일로 저장하고 실행하고 Bada Bing, Bada Boom ... 모든 작업이 Changelists에서 분리되어 GUI를 사용하여 삭제할 수 있습니다. "작업"명령의 요약 및 출력 :
p4 jobs > tmp.txt
다른 팁
Perforce의 -X 인수는 매우 편리합니다. "명명 된 파일 [또는] 표준 입력에서 라인 당 하나의 인수를 P4에 지시합니다. 또한 "Job -D"는 작업이 변경과 관련이있을 때에도 작업을 삭제할 수 있다고 생각합니다. 따라서 Changelist와 관련된 모든 작업을 삭제하려면 이와 같은 작업 (테스트되지 않은)을 수행하십시오.
p4 fixes -c <changenum> | p4 -x - job -d
다음 DOS 스크립트를 사용하여 P4 수정의 출력을 구문 분석 한 다음 수정 및 작업을 삭제할 수 있습니다.
set users_filename =%1입니다
for /f "tokens = 1,5 delims ="%% I in (%users_filename%) do (
P4 FIX -D -C %% J %% i
P4 작업 -D %% i
)