SVN列出没有最新结账的目录?

时间:2012-01-12 06:48:59

标签: linux svn

命令svn list将为我提供当前目录中所有子目录的列表。 但是,它仅限于当前版本中存在的目录。

例如。说存储库网址是:

“http://www.example.com/svncode/mainproduct/trunk” 在trunk中,有3个目录

trunk/
     1/
     2/
     3/

如果我svn list,它会显示所有目录1 2 3。 现在有人在trunk中进行提交,在trunk中添加了另一个目录4。 有没有办法在没有先更新的情况下检查该目录的存在?由于svn list仅提供最新svn update之前的信息,而不是之后发生的更改。

后台:我想要检索trunk中存在的最新目录(最大数字表示最新,在这种情况下为4),并且只想检查中继代码库的那部分,而不是完整主干。

6 个答案:

答案 0 :(得分:6)

 svn ls http://www.example.com/svncode/mainproduct/trunk

答案 1 :(得分:5)

你可以在服务器上:

svn ls http://server/repo

答案 2 :(得分:2)

如果您只对目录感兴趣并想要排除文件:

svn list -R http://www.example.com/svncode/mainproduct/trunk| grep -E  '/$'

答案 3 :(得分:1)

如其他答案所述:在存储库网址上使用svn list

请注意,如果您在记住/输入URL时遇到问题,可以使用svn info的输出来获取与当前工作目录对应的URL。结合起来:

svn list `svn info | grep URL | cut -b6-`

答案 4 :(得分:0)

用于SVN本地使用:

svn ls svn://yourlocaladdresssvn

答案 5 :(得分:0)

如果存储库中的位置' trunk-branches-tags fork的路径不一致,我们必须使用类似@ bernard-de-rubinat建议的过滤器,但改为:

svn ls -R https://some.server.com/svn/someRoot | grep '/trunk/$'

这仅选择与以... / trunk /结尾的字符串模式匹配的递归ls的输出。

这将只选择名为trunk的目录。