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
'文件「
+0
@MattHickford與標準svn命令一樣,它的意思是用於內部文件一個工作副本。如果您還想處理工作副本以外的文件,請將'.status'調用放在'try/except'塊中。將以示例更新。 –
相關問題
- 1. Subversion中的版本控制docx文件
- 2. pysvn文件複製功能版本號
- 3. MySQL版本控制 - Subversion
- 4. 版本控制下的Gettext .po文件
- 5. Xcode4和SCM(Subversion) - 不受版本控制的組/文件夾
- 6. 自動刪除Subversion未版本控制的文件
- 7. iPhone版本控制工具(subversion)
- 8. 版本控制測試用例
- 9. 版本控制和測試網站
- 10. 版本控制下的xcodeproj
- 11. Subversion:獲取當前目錄中版本控制文件的列表
- 12. 在Subversion控制下使用Xcode構建失敗(使用版本)
- 13. 版本控制文件
- 14. 如何取回已被Subversion刪除的未版本控制的文件夾
- 15. 簡單的版本控制系統或版本控制文件系統或版本控制數據庫
- 16. Python版本的PHP測試腳本
- 17. Subversion作爲PhpStorm中的版本控制選項丟失
- 18. C++ Builder中的Subversion版本控制集成
- 19. Git版本分別控制版本庫中的文件
- 20. 文件版本控制與版本控制
- 21. Python中的文件測試?
- 22. 散文的版本控制
- 23. BusinessObjects的版本控制
- 24. 版本控制(即Subversion)是否適用於文檔跟蹤?
- 25. git:忽略*版本控制的文件
- 26. 對大文件的版本控制
- 27. MDF文件的版本控制
- 28. Emacs的備份版本控制文件
- 29. Capistrano:共享文件的版本控制/
- 30. 資源文件的版本控制
這裏有兩種情況。該文件不在任何工作副本中,或該文件在工作副本中但未添加。 –