这是来自svn docs(http://svnbook.red-bean.com/en/1.1/re44.html)
$ svnlook changed -r 39 /usr/local/svn/repos
A trunk/vendors/deli/
A trunk/vendors/deli/chips.txt
A trunk/vendors/deli/sandwich.txt
A trunk/vendors/deli/pickle.txt
我可以检查尾部斜杠(“/”),如果存在,那么它就是一个文件夹。
1)但是如何确保svn始终显示带有斜杠的文件夹路径?
2)或者,可能有更可靠的方法来检查路径类型(文件夹或文件)?
答案 0 :(得分:3)
AFAIK对目录名称始终会有一个斜杠,因为这表示它是一个目录。否则它看起来像没有扩展名的文件。
答案 1 :(得分:1)
以下是解析svn info
(Python + pysvn)输出的替代方法:
from pysvn import Client, node_kind
client = Client()
def isDir(url):
infoList = client.info2(url, recurse=False)
_, info = infoList[0]
return info.kind == node_kind.dir
在您的具体情况下,由于您在服务器上,甚至可以使用file://
网址:
file://<absolute path to repo>/<relative path to file/dir within repo>
这样您就不会通过网络层 - 这可能会节省一些时间。
答案 2 :(得分:0)
客户端并假设你有某种unix shell 您可以将'A'部分切掉,然后简单地测试路径是否是使用shell提供的功能的目录。
之类的东西set TEST=`cat test.txt | cut -c5-`
for p in $TEST;do
if [[ -d $p ]];then
echo "$p is a directory"
fi
done
您可以使用服务器端:
svnlook dirs-changed REPOS_PATH
检测更改的目录,然后从“svnlook changed”中将它们从更改日志中过滤掉,或者您可以使用:
svn info $PATH
在每条路径上并检查节点类型,尽管这可能会很慢。