2008-09-25 3 views

답변

1

나는 파일과 폴더를 동일하게 취급한다고 생각한다.

파일의 경우 : 다릅니다 (Windows 또는 Unix 서버가 있는지 여부에 따라 다름). 우리는 Windows PERFORCE 서버 (이 버전의 Java 코드)에서이 문제를 겪고 있습니다. 아주 가끔씩 누군가가 문제가있는 파일을 체크인하는 경우가 있습니다 (Java로 인해 컴파일 오류가 발생합니다). 이 문제를 해결할 수있는 유일한 방법은 파일을 삭제하고 올바른 대/소문자로 파일을 다시 제출하는 것입니다.

11

일단 PERFORCE가되면 대소 문자가 설정된 상태로 유지됩니다. Johan이 언급했듯이, 여러분은 지울 수 있고, 이름을 올바르게 설정하고, 다시 그것을 추가 할 수 있습니다. 그러나 약간의 장애가 있습니다. ...

다른 사람 (Windows 운영)이 이미 잘못된 버전을 동기화 한 경우 올바른 버전을 다시 동기화하면 해당 컴퓨터에서 대소 문자가 변경되지 않습니다. 이것은 Windows 파일 시스템의 특이 사항이지만, 근본적으로 대소 문자 독립적입니다.

많은 사용자가 동기화되어 있고 컴퓨터에서 폴더를 빼내는 것이 편리하지 않은 경우 (그리고 컴퓨터에서 폴더를 날려 버리는 것이 편리하지 않은 경우), 어둡고 더러운 Perforce 기법 인 " 검문소 수술 ". 그것은 희미한 사람이 아니지만 다음과 같이하십시오.

  1. 서버를 중지하고 체크 포인트를 사용하십시오.
  2. 멀티 메가 바이트 파일을 처리 할 수있는 텍스트 편집기를 사용하면 &을 검색하여 이전 사례 이름의 모든 항목을 새 항목으로 바꿉니다. 물론 스크립트를 사용할 수도 있습니다.
  3. 체크 포인트 파일을 재생하여 PERFORCE 데이터베이스 메타 데이터를 재생성하십시오.
  4. 서버를 다시 시작하십시오.

이는 투명하게 모든 사용자의 클라이언트 사양에 영향을 미칠 것이며, 그래서 그들은 동기화 할 때 그들은 마술처럼 적합한 모델을 얻을 것이다.

털이 나는 소리가 들리지만 이전에해야만했습니다. 예를 들어 돌보고, 백업하고, 시험 실행을 한 다음에는 모두 정상이어야합니다.

+3

Windows는 파일 이름 대소 문자는 신경 쓰지 않지만 * 기억합니다. 제 동료 중 한 명은 이것을 "사례 보유자"라고합니다. :-) –

+0

대소 문자가 기억 나는 것은 플랫폼에 관계없이 발생할 수 있습니다. 전에 리눅스에서 일어난 일들을 알고 있습니다. 문제를 추적했을 때 저의 궁지에요. perforce 자체가 경로에 대소 문자를 구분하지 않는 검사라고 생각합니다. –

+0

누군가이 문맥에서 "폐기"를 정의하는 의견을 추가 하시겠습니까? OS를 사용하여 드라이브에서 파일을 삭제한다는 의미입니까? – Craig

2

디렉토리에 대해 잘 모르지만 파일에이 문제가 있습니다. 문제를 해결하려면 파일을 삭제하고 변경 사항을 제출 한 다음 p4 파일을 대소 문자와 함께 추가하고 두 번째 변경 사항을 제출해야합니다. 그런 일이 끝나면 잘못된 경우 파일을 동기화 한 유닉스 사용자는 p4 동기화를 수행 한 다음 물리적으로 파일을 삭제해야합니다 (p4는 대소 문자를 업데이트하지 않으므로). 그런 다음 p4 sync -f 파일을 사용하십시오.

우리 서버는 Windows에 있으므로 다를 수도 있습니다.

0

질문은 3 세 이상은, 그러나 나는 서브 버전 가져 오기를 수행하는 동안이 같은 문제에 달렸다 퍼 포스에 들어가서 내가 얻은 정보가 유용 할 수 있다고 생각했습니다. 그것은 말괄량이 방법과 비슷하지만 역사를 유지하는 데 도움이됩니다. 역사를 유지하기 위해 사용할 수 없었던 중복 명령을 사용합니다. 이 과정은 기본적으로 :

  1. 임시 위치에 중복됩니다.
  2. 방금 ​​복사 한 위치를 삭제하십시오.
  3. 임시 위치에서 이름을 바꾼 사례 위치로 복제하십시오.
  4. 임시 위치를 삭제하십시오.

이렇게하면 파일 변경 내역이 유지되지만 새 경로에서도 모두 변경됩니다. 불행히도 경로 사례의 변경 사항은 없지만 불가피한 것으로 보입니다. 여기에 언급 된 다른 방법과 마찬가지로 사용자는 수동으로 작업 영역에서 디렉토리의 이름을 바꾸거나 삭제하고 다시 동기화하여 새 경로 이름을 가져와야합니다.

또한 P4V는 트리에 표시되는 경로를 캐시하므로 이전 이름으로 표시 될 수 있습니다. 그러나 p4 dirs 명령은 새로운 경우를 보여줍니다.

1

수정 사항을 표시 할 수 있도록 PERFORCE 캐시를 제거해야한다고 생각합니다.

ABC의 이름을 abc_TMP로 변경하고 abc_TMP의 이름을 abc로 바꾼 다음 캐시를 지울 수 있습니다.

Setps 캐시 삭제하기 :

  1. 열기 창 사용자 홈 폴더 (Windows7의에 ==> C : \ 사용자 \)
  2. 라는 폴더를 찾습니다 ".p4qt"
  3. 가에 폴더 이름 바꾸기 "old.p4qt"
  4. Launch Perforce, 이제 모든 것이 작동합니다!

참고 :이 단계는 기본 설정을 유지합니다.

관련 문제