如何创建一个Subversion版本库的目录列表

时间:2020-03-06 14:24:46  来源:igfitidea点击:

我有一个客户要我给他们源代码中每个文件和文件夹的清单(然后是源树的简要说明)。有没有一种简单的方法可以从Subversion版本库中创建某种格式合理的列表?

解决方案

假设它可以通过HTTP使用,为什么不给他们一个只读的登录名,然后将他们指向网址呢?

尝试:svn列表-R

与我们要列出的分支的根。

进行检出,然后放入命令提示符,在正确的目录中输入" cd",然后键入类似

dir /a:d /s /b > listing.txt

(当然,假设我们使用的是Windows。)

svn列表-R svn:// svnlocation

这应该列出所有文件和文件夹,可能会将其超出一个文本文件

我们将需要list命令。假设我们正在使用命令行客户端

svn list -R http://example.com/path/to/repos

这将为我们提供存储库中所有内容的完整递归列表。将其重定向到文本文件

svn list -R http://example.com/path/to/repos > file.txt

然后格式化为我们内心的满意。

通常,我们可以使用tree实用程序(在* Nix系统中)为任何目录结构打印出这样的列表。默认情况下,许多发行版中都安装了该软件。如果不在目录中,则可以检查它的标准存储库。例如,在Ubuntu中,使用默认存储库," sudo apt-get install tr​​ee"应该可以解决问题。或者,有一个使用sed的shell脚本在这里实现它。有了树后,只需cd到我们要为其打印清单的目录,然后键入" tree"(如果需要,可以将其重定向到文件)。

这确实需要我们对存储库进行签出,但是在大多数情况下我们可能已经有一个签出库。请注意,这还将包括.svn目录,这有点麻烦,但是我们始终可以通过" grep -v .svn"通过管道传递输出,以去除这些行,可能还带有一些添加的魔术来取出任何内容在层次结构中包含此类.svn的行的"下方"(使用sed或者过程性的shell脚本循环或者类似的内容)。