假设有人意外地检查了配置文件或者我的存储库中是否有构建文件夹,如何在不删除所有用户下次更新的文件的情况下从SVN删除/忽略它们?
让我们说我更新根文件夹的属性以忽略文件config.xml.如果我下次尝试提交更改,它将提交根文件夹的新属性,但也将config.xml标记为已删除.而这似乎并不正确,因为现在大家的config.xml将与他们的下一个SVN更新被删除,虽然我只是想让该文件被删除,并从SVN忽略.我试着doging仅commiting文件夹属性更改和删除大家不要"删除行为",但现在我已经得到了奇怪的树冲突,所有的一切看起来有必须要做到这一点更清洁的方式.
您不能忽略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
为添加到存储库.
为了防止这种情况,您可以使用我的预提交挂钩,如果有人尝试添加此特定文件,您可以将其配置为导致提交失败.
在提交或"检查修改对话框"中,您可以右键单击要忽略的文件,然后通过"添加到忽略列表"选择忽略"this.file"或忽略"*.file"("文件"可能是您的后缀).请注意,SVN将您忽略的文件存储在文件所在目录中的所谓"属性"中.因此,directoy将显示为已更改.