SVN:如何在 Subversion 中列出更改列表中的所有文件?

Ian*_*ung 7 svn command-line

如何获取 SVN 更改列表中的文件列表,除了文件列表之外没有其他信息?

我想要一个更改列表中的文件列表,其格式可以在 Bash 的 $() 中使用。我从 开始svn st --cl 3011,它列出了文件,但有很多额外的垃圾:

在 'foo' 处对外部项目执行状态

? 富/酒吧

在“foo/bar”处对外部项目执行状态

--- 更改列表“3011”:

M src/math/math.cc

一个 src/math/determinant.cc

一个 src/math/determinant.h

M src/math/matrix.h

有很多信息需要尝试通过 sed 或 awk 来解析,我担心我会把它搞砸并最终丢失更改列表中的文件或添加不在更改列表中的内容。-q 没有多大帮助。

有什么办法让 svn 只给我src/math/math.cc src/math/determinant.cc src/math/determinant.h src/math/matrix.h吗?

谢谢,伊恩

use*_*977 6

这会做:

svn st --changelist 3011 | grep -v Changelist | cut -b 3-
Run Code Online (Sandbox Code Playgroud)

svn st --changelist将打印更改列表的名称以及文件的状态和文件名:

--- Changelist 'cl_name':
M       file1
A       file2
Run Code Online (Sandbox Code Playgroud)

现在,您可以通过首先删除带有“grep -v Changelist”的第一行来编辑它,这会删除带有单词 Changelist 的行。然后执行“cut -b 3-”删除每行的前几个字符。

使用完整命令,您将获得:

 file1
 file2
Run Code Online (Sandbox Code Playgroud)


AlG*_*AlG 1

如果您不介意一次进入一个目录,您可以对每个目录执行以下操作:

svn status lib | awk '{print $2}'

在哪里将 lib 替换为有问题的目录。