首页 文章

SVN:如何在提交时忽略修改后的文件?

提问于
浏览
14

我在svn中编辑了一些文件,如下所示:

$svn st
M  a
M  b
...

现在,我想将我的更改提交给svn,由于某种原因,我不想提交文件 b ,是否有任何快速方法或命令忽略修改后的文件 b


最后,我使用@yzucker解决方案1,cp,还原和提交 . 变更列表太重了,谢谢大家 .

5 回答

  • 8

    唉,提交许多文件与一些烦人的变化忽略了问题 .

    解决方案1:复制,还原和提交

    $cp b /tmp/
    $svn revert b
    $svn commit -m 'commit message'
    $mv /tmp/b ./
    

    解决方案2:复制,提交,反转b的效果,重新承诺b

    $cp b /tmp/
    $svn commit -m 'commit message'
    $svn merge -c -{new revision} b
    $svn commit b -m 'revert message for b'
    $cp /tmp/b ./b
    

    第二种方法不太优选,因为你在svn中引入了破坏的代码 .

  • 4

    您可以使用较新的Subverion客户端的Changelist功能,如此简短示例会话中所示:

    $ svn st
    M       a
    M       b
    
    $ svn cl task1 a
    $ svn cl task2 b
    
    $ svn st
    --- Changelist 'task1':
    M       a
    --- Changelist 'task2':
    M       b
    
    $ svn ci --cl task1 -m "checking in only task 1 stuff"
    Sending        a
    Committed revision 11.
    
  • 2

    我认为没有选项只能排除一个文件,并包含所有其他文件 . 在您的示例中,您可以只包含要提交的文件

    svn co a -m "Only commit a"
    

    然后将排除b . 最后通过示例查看documentation of the command .

    另一种选择可能是使用changelists,但这更重......

  • 3

    如果文件 b 已添加到存储库,则无法再忽略它 . 您必须删除此文件,提交,重新创建并设置ignore属性,如下所示:

    svn propset svn:ignore b .
    

    最后一个点表示当前文件夹 .

    如果要仅在此提交中忽略文件,请在commit命令中显式键入其名称

    svn co a c d
    

    acd 是您要提交的文件 .

  • 16

    在Windows上,您可以使用GUI客户端TortoiseSVN,只需选择所需的复选框 .

相关问题