gpt4 book ai didi

python - 测试文件是否在 pysvn(python 颠覆)中的版本控制下

转载 作者:太空狗 更新时间:2023-10-30 00:51:36 29 4
gpt4 key购买 nike

pysvn , 如何测试文件是否在版本控制下?

最佳答案

使用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)

关于python - 测试文件是否在 pysvn(python 颠覆)中的版本控制下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10622214/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com