2015-01-16 3 views
1

Python 용 Perforce API를 다운로드하여 설치했습니다. http://www.perforce.com/perforce/doc.current/manuals/p4script/03_python.html#1127434Perforce API : 서브 디렉토리의 최신 개정판을 받으십시오.

을하지만 불행하게도 문서가 불완전 보인다

나는이 페이지의 예제를 실행 할 수 있어요. 예를 들어, P4 클래스에는 run_sync이라는 메서드가 있지만 실제로 어디에도 문서화되어 있지 않습니다 (사실상 메서드를 사용할 수 있음에도 불구하고 dir(p4)을 Python 대화식 인터프리터에서 실행하면 실제로 나타나지 않습니다. 대화 형 인터프리터)

그래서 위의 링크 된 페이지의 간단한 예를 넘어서 API를 사용하는 방법을 파악하는 데 어려움을 겪고 있습니다.

하위 버전의 최신 개정판을 실행중인 컴퓨터의 파일 시스템에 다운로드하기 만하는 스크립트를 작성하고 싶습니다. 나는 서버가 어떤 식 으로든 변경되는 것을 원하지 않는다. 필자가 Perforce에서 파일을 가져 왔다는 표시가 없기를 바란다. (Perforce 응용 프로그램을 통해 파일을 얻는 대신 파일 시스템의 파일을 검사 할 때까지 읽기 전용으로 표시한다. 그건 바보예요. 스크립트가 실행되는 순간의 하위 디렉토리 모습을 보여줄뿐입니다.)

+0

동기화 기능을 사용하는 파일이 읽기 전용 인 것은 사실입니까? –

+0

템플릿에서 클라이언트 작업 영역을 생성하고 동기화하는 예제를 사용해 보셨습니까? – martineau

+0

@martineau : 나는 가지고 있지만 새로운 템플릿을 만들고 싶지 않습니다. 서버에 나타나기 때문에 그렇지 않습니까? – ArtOfWarfare

답변

1

Python API는 명령 줄 클라이언트와 동일한 기본 구조를 따릅니다. 둘 다 매우 얇은 래퍼입니다 같은 기본 API를 통해), 그래서 당신은 커맨드 라인 클라이언트 문서를보고 싶을 것이다; P4Python에서 "run_sync는"어떻게 작동하는지 예를 들어 이해하기 "P4 동기화"를 보면 :

http://www.perforce.com/perforce/r14.2/manuals/cmdref/p4_sync.html

을 당신은 내가 다음을 수행 할 것이라고 설명하고있는 작업에 대해 (내가 억지로 측면에서 그것을 설명 할 것이다 명령은 파이썬이 조금 녹슬었기 때문에, 일단 실행중인 명령이 무엇인지 알게되면 파이썬으로 변환하는 것이 매우 간단합니다. P4Python 문서는 가장 어려운 부분 인 클라이언트 사양을 만들고 수정하는 것과 같은 예제를 가지고 있기 때문에, :

1) 원하는 저장소 디렉토리를 원하는 로컬 파일 시스템 위치에 매핑하는 클라이언트를 만듭니다 (예 : 당신이 디렉토리를 원하는 경우 "// 창고/foo는/..." "는/usr/팀/foo는"이 당신과 같은 클라이언트 만들 것 다운로드 :

Client: mytempclient123847 
Root: /usr/team/foo 
View: 
    //depot/foo/... //mytempclient123847/... 

당신은 설정해야합니다을 "allwrite"

Options: allwrite noclobber nocompress unlocked nomodtime rmdir 

2) 동기화, 서버에 미치는 영향을 최소화하기 위해 "-p"옵션을 사용하여 (서버는 것을 기록하지 않습니다 : 클라이언트 옵션은 동기화 된 파일을 읽기 전용으로 원하지 않는 말했다 이후 파일을 "가지고있다").

3) 클라이언트를 삭제하십시오.

(제대로 인증되었는지 확인하는 것과 같은 세부 사항은 생략합니다. 서버 보안 및 외부 인증 사용 여부에 따라 다른 도전 과제가 될 수 있지만, 문제가 발생했습니다.)

+0

-p 옵션에 대해 잘 몰랐습니다. –

관련 문제