使用svn remove - 保留磁盘上的文件而不是删除它?

时间:2010-04-30 21:34:15

标签: svn

我正在创建一个eclipse项目,它会生成许多我不想保留在版本控制之下的文件。例如,它创建一个项目文件夹,如:

project/
    bin/
      horse.class
      cow.class
    src/
      horse.java
      cow.java

所以我做的是将项目文件夹添加到svn,如:

svn add project

这使得一切都得到控制,甚至是bin和.class文件。所有这些文件旁边都会有一个“a”。

如何从这些文件中删除“添加”状态?如果我尝试:

svn remove bin/horse.class 

我必须使用--force选项,它会从磁盘中删除该文件。有没有办法简单地从源中删除它但从磁盘中删除文件?

由于

5 个答案:

答案 0 :(得分:4)

如果你有最新版本的SVN(至少1.5),你可以使用

svn remove --keep-local bin/horse.class

答案 1 :(得分:2)

您可以使用svn revert命令。

  

还原:恢复原始工作副本文件(撤消大多数本地编辑)。

     

用法:恢复路径......

由于未添加文件的原始状态,因此它适用于您。

svn revert bin/horse.class

答案 2 :(得分:0)

svn rm --keep-local bin/horse.class应该可以解决问题,但我建议使用subclipse。安装非常简单,它比命令行工具更加集成(我相信你可以想象)。

答案 3 :(得分:0)

不能直接回答你的问题,但我建议你为eclipse试用一个svn插件,例如:subclipse

它会自动为您添加正确的文件。

答案 4 :(得分:0)

在添加之前设置svn的ignore属性以忽略您不想添加的文件。请注意subversion配置文件中global-ignores部分中的[miscellany]。在Linux上,这是~/.subversion/config,在Windows上是%USERDIR%\Application Data\Subversion\config。但是,这仅适用于可以与全局模式匹配的文件(例如以.class结尾的所有文件等。)

在下面显示的布局中,我不会简单地添加project,而只添加应该受版本控制的文件 - 假设project/bin/horse.class是唯一要省略的文件,您可以简单地执行添加为svn add --parents project/src; svn add --parents project/bin/cow.class