【问题标题】:Getting list of all folders but not the files获取所有文件夹的列表,但不获取文件
【发布时间】:2018-02-23 18:50:08
【问题描述】:

我正在尝试使用 svn 命令从 svn 收集所有文件夹和子文件夹。清单很大。

我尝试在 svn 上创建一个空文件夹并将其与 base 进行比较,但它在 4 小时后崩溃。

今天早上我尝试了以下方法:

svn list --depth infinity http://serverip/svn/root/ 

到目前为止,它已经运行了将近 6 个小时,仍未完成,它列出了所有文件。

我用grepegrep 参数尝试了其他几种方法,但它无法识别,所以我相信它们可能是Bash 命令,我在Windows 上,这样就可以解释为什么它没有做任何好事。

我想要的只是根目录中的所有文件夹和子文件夹。如果可能的话,我会过滤特定的文件夹名称,如“/tag-088/121359/”。如果我不能在命令中过滤,这没什么大不了的,很容易在 excel 或类似的东西中过滤自己。主要目标是只选择文件夹和子文件夹,而不是文件。

我有大约 4.2 TB 的 svn,所以它有点慢,可能正因为如此,所以这就是我试图在没有文件的情况下列出的原因。

【问题讨论】:

    标签: svn tortoisesvn


    【解决方案1】:

    如果您可以访问服务器(假设您可以访问服务器,因为您非常了解存储库的大小),您可能会考虑使用svnlook 程序。与svn 一样,svnlook 提供了一组子命令。您将需要 svnlook tree 子命令,特别是 --full-paths 选项,它会导致它每行打印一个路径,而不是使用嵌套/缩进的方法。通过grep 管道传输,该grep 仅保留以斜杠字符结尾的输出(仅适用于目录路径),您将获得所需的列表。

    $ svnlook tree /path/to/repos --full-paths | grep '/$'
    /
    /trunk/
    /trunk/dir/
    /trunk/otherdir/
    /tags/
    /tags/my-tag/
    /tags/my-tag/dir/
    /tags/my-tag/otherdir/
    ...
    

    【讨论】:

    • 我完全运行它并且它是成功的。花了大约5个小时,完成了。如果我在不过滤文件的情况下使用标准列表命令,它会运行几天。再次感谢。
    • 如何只过滤两个文件夹意味着一个和他的子文件夹exp trunk/dir/ 而不是/trunk/dir/dir2
    猜你喜欢
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-02
    • 2013-11-26
    • 2011-12-10
    相关资源
    最近更新 更多