如何使用命令行提交SVN中除一个文件之外的所有文件?

3
在我的项目中,有25个修改过的文件。我需要将其中24个文件提交到SVN仓库中。唯一不想提交的文件还没有完成,因此我会在以后再提交它。
我正在使用Linux服务器上的远程shell进行SVN提交。我知道如何做上述操作的唯一方法是键入:
# svn ci file1 file2 file3 file4........... file24

这种方法有些荒谬而且效率低下。有没有更简单的替代方案?我可以提交所有内容,但是选择留下某些文件吗?

需要用到一些高级的bash脚本吗?


哦,我唯一的想法是。暂时忽略您不想提交的文件,提交其他所有内容,然后稍后删除忽略文件。但我认为忽略不起作用,如果该文件已经在存储库中... - dowhilefor
我也考虑过那个方法,但似乎这样做很愚蠢。 - Jake Wilson
3个回答

2
如果您需要进行单个事务,请尝试以下方法:
svn commit `svn status | sed -n -e '/file_you_dont_want/!s/^.......//p'`

无法做这样简单的事情,让我想起为什么有那么多人正在迁移离开 Subversion。 - Lambart

0

可以的。您可以编写一个Bash脚本,提交某个目录中除了传递给它作为参数的文件之外的所有文件。脚本的核心是一个循环:

for x in `ls`
do
     svn ci $x
done

你可以选择通过将ls的输出通过grep进行管道传输来组合过滤器,或者在循环内部放置一个if语句。我可能会选择第一种方法。


0

您可以使用changelist:

svn cl _listName_ -R *
svn --remove unexpected_filenames
svn commit --cl _listName_

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接