pysvn에서 파일이 버전 제어하에 있는지 어떻게 테스트합니까?pysvn (python subversion)의 버전 제어하에있는 파일인지 확인하십시오.
4
A
답변
7
client.status()
을 사용하고 반환 된 상태 개체의 text_status
특성을 확인하십시오. 예 :
>>> import pysvn
>>> c = pysvn.Client()
>>> out = c.status("versioned.cpp")[0] # .status() returns a list
>>> out.text_status
<wc_status_kind.normal>
이는 파일의 버전이 지정되고 수정되지 않았 음을 나타냅니다.
>>> c.status("added.cpp")[0].text_status # added file
<wc_status_kind.added>
>>> c.status("unversioned.cpp")[0].text_status # unversioned file
<wc_status_kind.unversioned>
당신은 당신이 때문에 같은에서 그것을 마무리 할 수 dir (pysvn.wc_status_kind)
사용하여 다른 가능한 상태를 탐색 할 수 있습니다 :
def under_version_control(filename):
"returns true if file is unversioned"
c = pysvn.Client()
s = c.status(filename)[0].text_status
return s not in (
pysvn.wc_status_kind.added,
pysvn.wc_status_kind.unversioned,
pysvn.wc_status_kind.ignored)
당신은 또한 svn의 작업 외부에있는 파일을 해결하려면
디렉토리에 있다면 ClientError
을 잡아서 처리해야합니다. 예 :
def under_version_control(filename):
"returns true if file is unversioned"
c = pysvn.Client()
try:
s = c.status(filename)[0].text_status
catch pysvn.ClientError:
return False
else:
return s not in (
pysvn.wc_status_kind.added,
pysvn.wc_status_kind.unversioned,
pysvn.wc_status_kind.ignored)
+0
'File "
+0
@MattHickford 표준 svn 명령과 마찬가지로, 내부의 파일에 사용됩니다. 작업 카피. 작업 사본 이외의 파일도 처리하려면'.status' 호출을'try/except' 블록 안에 넣으십시오. 예제로 업데이트됩니다. –
두 가지 경우가 있습니다. 파일이 작업 사본에 없거나 파일이 작업 사본에 있지만 추가되지 않았습니다. –