如何只使用SVN在未命名的更改列表中提交文件?

Rya*_*all 15 svn commit changelist

我正在使用命令行SVN客户端(出于速度原因)并且有一个我希望在每次提交时忽略的文件更改列表(很像TortoiseSVN).有没有办法提交除特定更改列表之外的所有文件,或者只提交不在更改列表中的所有文件?

谢谢

khm*_*ise 6

不可以.更改列表的目的是相反.只需提交更改列表中包含的文件,而不是将它们排除在提交之外.如果您想忽略某些文件,则应将它们放入svn:ignore属性中,但前提是它们不受版本控制.

  • 我希望我可以为svn的这个"特征"投票.我目前在我的默认更改列表中有一大堆更改,并且正在寻找一种方法来避免检查我不想提交的几个文件,而无需按名称签入一百个文件. (9认同)

小智 5

我使用以下单行代码,假设您有一个名为TO_IGNORE的更改列表,您放置了不想提交的文件:

svn st | sed -e "/^--- Changelist 'TO_IGNORE'/,/^--- Changelist/d" | grep '^[ADMR]' | awk '{print $2}' | xargs svn ci
Run Code Online (Sandbox Code Playgroud)

这取决于"svn st"首先列出不在任何更改列表中的所有文件,然后是所有更改列表一个接一个的事实.

sed命令删除要忽略的更改列表之间的所有行,直到下一个.

grep用于将已添加,已删除,已修改和已替换的文件限制为提交.

awk从svn st输出中提取文件名.