8

我正在研究一种通过 Subversion 命令行提交所有修改/添加文件的方法,不包括提供的黑名单。这可能吗?

例如,如果我有 100 个我想提交的文件,但该列表中散布着七个我不想提交的文件。有没有办法说“提交除/path/to/file1.php、/path/to/file2.php、/path/to/file3.php 之外的所有文件”等......

例如,我将不得不做类似的事情:

svn ci [list all files to commit in here] -m 'my commit message'

但是,有没有更好的方法呢?我找不到任何关于它的记录。

4

3 回答 3

7

没有选项可以在提交时即时忽略文件。但是,您可以采取两种方法:

  1. 使用更改列表功能。这可以帮助您为确实要提交的文件创建过滤器,并且只提交这些文件。由于更改列表是在开发人员机器上创建的,因此您的过滤器不会影响通用存储库。例如,您可以使用以下命令将所有文件添加到更改列表:

    svn changelist to-commit *

    然后删除那些你想忽略的:

    svn changelist --remove /path/to/file1.php

  2. 只有svn add您正在处理的文件,一旦您开始编辑一个一个。任何尚未svn add编辑到存储库的文件将在提交时被忽略。当然,这样做的缺点是您将是唯一在他的机器上拥有这些文件的开发人员。

于 2012-10-30T17:38:05.660 回答
5

我有类似的情况,我必须从一堆修改过的文件中只提交某些文件。我必须更新/删除父项目及其所有子项目(Maven)的依赖项并提交相应的更改。这是我为创建 SVN 更改列表所做的。

svn cl my-changelist $(svn st | grep '^M' | awk '{print $2}' | grep 'pom.xml')

svn commit -m "Updated dependencies" --changelist my-changelist

上面的第一个命令创建了一个名为“my-changelist”的更改列表,并将所有修改后的名为“pom.xml”的文件添加到列表中。

第二个命令提交更改列表(列表中的所有文件都针对单个修订号)。

于 2014-05-23T11:57:28.853 回答
0

您可以为此使用Subversion svn:ignore 属性

于 2012-10-30T16:39:02.183 回答