2011-04-06 4 views
2

여러 파일을 체크 아웃하여 제출할 준비가되었습니다.Force Perforce가 작업 영역보기를 유효한 것으로 받아들입니다.

내 클라이언트 사양이 내 대체 루트를 하드 코딩한다는 것을 알았 기 때문에 클라이언트 사양의 모든 줄에서 대체 루트를 제거하고 대신 대체 루트 상자에 지정했습니다.

changelists에 추가 할 준비가되지 않았기 때문에 체크 아웃되지 않은 파일이있어서 디렉터리 구조의 이름을 바꾼 다음 필요한 모든 브랜치를 동기화 한 다음 AltBranch 디렉터리의 이름을 변경하고 이전 이름을 다시 변경했습니다.

이제 모든 체크 아웃 된 파일은 "작업 영역보기에 매핑되지 않았습니다"로 나열됩니다. 그러나 여전히 그대로 있습니다.

나는 나의 버전에 동의 억지로 강요하고 싶었다, 그래서 나는 그러나 나는 다음 p4 sync -k -f을 시도

//.../X.cpp#10 - is opened for edit and can't be deleted 

오류를 얻을 수 있지만 오류

//.../X.cpp#10 - refreshing C:\Work\...\X.cpp 
//.../X.cpp#10 - is opened for edit and can't be deleted 

에를 얻을 p4 sync -k 시도 전체적으로 나는 Perforce를 정말 좋아하지만, 항상 가장 잘 알고 있다는 주장은 실망 스럽다.

답변

0

.

이 솔루션은 윈도우/DOS 특정 -이 수정에 필요한 구문 분석 할 수있는 다른 명령 쉘 상상 있지만 : 디렉토리 버전이 가능 대입 될 것이지만,

@ echo off 
echo Please Exit Perforce 
pause 
setlocal 
rem Retrieve depot spec format of file 
for /f "delims=# " %%d in ('p4 files %1') do set p4name=%%d 
rem Retrieve current pending changelist 
for /f "tokens=5 delims= " %%d in ('p4 opened %p4name%') do set change=%%d 
p4 revert -k %p4name% 
p4 sync -k %p4name% 
p4 edit -c %change% %1 

이 버전은 파일에 고유을 filesdirs

또한 바보 같은 명령 프롬프트는 틱의 명령이 실패하면 ERRORLEVEL을 설정하지 않습니다.

1

클라이언트 매핑을 재정렬하는 것이 훨씬 쉽다. n 파일을 체크 아웃하지 않았습니다. 투기장 있어요? 그렇다면, 스펙 저장소에서이를 회복하여 클라이언트 정의의 이전 버전으로 쉽게 되돌아 갈 수 있습니다. 그런 다음 파일을 제출하거나 보관하여 작업 공간에 열린 파일이없는 지점으로 이동할 수 있습니다. 그런 다음 클라이언트 매핑을 다시 정렬하고 다른 레이아웃으로 실험 할 수 있으며 Perforce는 열어 본 파일에 문제없이 실행하여 디스크의 파일을 행복하게 다시 정렬합니다.

+0

우리는 투기장이 없습니다. 나는 그것이 실제로 무엇인지 확신하지 못합니다. 체크 아웃하지 않은 파일을 어떻게 열지? –

+0

"open"은 "체크 아웃 됨"과 같습니다. spec depot에 대해 자세히 알아 보려면 http://www.perforce.com/perforce/r10을 방문하십시오.2/manuals/p4sag/03_superuser.html # 1083233 –

0

나는 p4 reopen <changelist>을 할 수 있으며 정상으로 돌아갈 수 있다고 생각합니다.

0

"작업 영역보기에 매핑되지 않았습니다."그리고 다시 정렬해야하는 클라이언트 사양/작업 영역에 두 개의 매핑이 있음이 드러났습니다.

나쁜 :

//B/foo/... //mySpec/foo/... 
//A/... //mySpec/... 

좋은 : 나는 억지로의 순서가 내가 원하는 것을 달성하기 위해 명령을 포함하는 배치 파일을 만들어 관리해야

//A/... //mySpec/... 
//B/foo/... //mySpec/foo/...