我有一个颠覆性回购,即“http://crsvn/trunk/foo”...我想走这个目录或者对于初学者来说只是一个目录列表。
这个想法是创建一个脚本,它将对“http://crsvn/branches/bar”中的所有分支进行合并信息,并将它们与主干进行比较,以查看分支是否已合并。
所以我遇到的第一个问题是我不能走路或做
os.listdir('http://crsvn/branches/bar')
我得到值标签语法不正确(提到 URL)
我有一个颠覆性回购,即“http://crsvn/trunk/foo”...我想走这个目录或者对于初学者来说只是一个目录列表。
这个想法是创建一个脚本,它将对“http://crsvn/branches/bar”中的所有分支进行合并信息,并将它们与主干进行比较,以查看分支是否已合并。
所以我遇到的第一个问题是我不能走路或做
os.listdir('http://crsvn/branches/bar')
我得到值标签语法不正确(提到 URL)
您可以使用PySVN。特别是,pysvn.Client.list方法应该做你想做的事:
import pysvn
svncl = pysvn.Client()
entries = svncl.list("http://rabbitvcs.googlecode.com/svn/trunk/")
# Gives you a list of directories:
dirs = (entry[0].repos_path for entry in entries if entry[0].kind == pysvn.node_kind.dir)
list(dirs)
无需结帐。您甚至可以指定要处理的修订,以确保您的脚本在运行时可以忽略在存储库上工作的其他人。
listdir
采用路径而不是 url。如果 python 可以知道远程服务器上的结构,那就太好了,但我认为情况并非如此。
如果您要先在本地签出您的存储库,您可以使用 pythons 函数轻松遍历目录。