2012-04-05 86 views
3

在我的项目中,有25个修改后的文件。我需要将这些文件中的24个提交到SVN存储库。我不想提交的单个文件尚未完成,因此我将在稍后的日期提交。如何SVN提交所有文件,除了一个,只使用命令行?

我在Linux服务器上使用远程shell进行SVN提交。我知道如何做到这一点的唯一方法是键入:

# svn ci file1 file2 file3 file4........... file24 

这是一种荒谬和低效。有没有更容易的选择呢?我可以承诺一切,但选择省略某些文件?

是否需要一些奇特的bash脚本?

+0

HM,我已经是唯一的想法。临时忽略不想提交的文件,提交其他所有文件,然后删除忽略文件。但我认为忽略不会这样工作,如果该文件已经在存储库中... – dowhilefor 2012-04-05 16:12:15

+0

我也想过,但它似乎是一个愚蠢的做法。 – 2012-04-05 16:23:38

回答

0

是的。你可以编写一个bash脚本来提交某个目录中的所有文件,除了那些将它作为参数传递的文件。脚本的核心是一个循环:

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

您可以选择通过grep的管道LS的输出放在一起的过滤器,或放一个,如果在循环中的语句。我可能会第一次去。

2

如果你需要在一个事务中尝试这样的事:

svn commit `svn status | sed -n -e '/file_you_dont_want/!s/^.......//p'` 
+0

无法做这样简单的事情让我想起为什么这么多人从Subversion迁移出来 – Lambart 2014-07-02 22:28:58

0

您可以使用变更列表:

 
svn cl _listName_ -R * 
svn --remove unexpected_filenames 
svn commit --cl _listName_ 
相关问题