如何忽略TortoiseSVN中的文件而不删除它们?

时间:2014-07-23 15:49:48

标签: svn tortoisesvn

假设有人意外地检查了配置文件或我的存储库中是否有构建文件夹,如何在不删除所有用户下次更新的文件的情况下从SVN删除/忽略它们?

假设我更新了根文件夹的属性以忽略文件config.xml。如果我下次尝试提交更改,它将提交根文件夹的新属性,但也将config.xml标记为已删除。这看起来并不正确,因为现在每个人的config.xml都会被下一个svn更新删除,尽管我只是希望从SVN中删除并忽略该文件。 我只是通过提交文件夹属性更改而不是"删除操作"来尝试为每个人删除删除操作。但是现在我发现了奇怪的树冲突,总而言之,似乎必须有一种更清洁的方法来做到这一点。

4 个答案:

答案 0 :(得分:7)

您无法忽略Subversion存储库中的文件。您只能忽略不存在的文件或目录。

如果我理解正确,目前存储库中有一个名为config.xml的文件。如果从存储库中删除它,则当其他用户执行svn update时,它将被删除。悲伤,但却是真的。

但是,如果发生这种情况,则意味着用户的本地副本与旧版本完全相同。没问题,他们只需将svn cat config.xml文件运行到该修订版,他们就会将其恢复。

如果他们修改了config.xml文件怎么办?他们在更新时会收到以下错误:

Tree conflict on 'config.xml'
    > local file edit, incoming file delete upon update
    Select: (r) mark resolved, (p) postpone, (q) quit resolution, (h) help:

他们应该推迟决议。然后:

$ svn delete --keep-local config.xml

这将保留其config.xml的本地版本并解决冲突。

如果他们将冲突标记为已解决,则Subversion会将config.xml标记为已添加到存储库。

为防止这种情况发生,您可以使用我可以配置的pre-commit hook,如果有人试图添加此特定文件,则会导致提交失败。

答案 1 :(得分:6)

在提交或“检查修改对话框”中,您可以右键单击要忽略的文件,然后通过“添加到忽略列表”选择忽略“this.file”< / strong>或忽略“*。file”(“文件”可能是您的后缀)。 请注意,SVN将您忽略的文件存储在文件所在目录中的所谓“属性”中。因此,directoy将显示为已更改。 enter image description here

答案 2 :(得分:1)

使用TortoiseSVN:右键单击文件,TortoiseSVN - &gt; &#34; Unversion并添加到忽略列表&#34;然后选择文件名/通配符/ etc。

Ignore files which are already versioned

  

如果您不小心添加了一些应该被忽略的文件,那么如何让它们脱离版本控制而不会丢失它们?也许您有自己的IDE配置文件,这不是项目的一部分,但是您花了很长时间才能按照自己喜欢的方式进行设置。

答案 3 :(得分:0)

如果像我一样你以某种方式添加了不是用于subversion的文件,你只需要制作相关文件的备份副本。 svn删除&#39;文件&#39;。提交repo然后将备份文件的名称更改为原始文件。至少适用于少量文件。