我有一个本地更改的文件,永远不应该同步回存储库,因为它只适用于我的本地安装。但是如果在repo中更改了相同的文件,我希望这些更改能够更新我的本地副本。
目前,当我想要签入我的更改时,相关文件始终会显示在更改列表中,我必须手动将其从签入中排除。我如何制作它以便我可以在上述限制的情况下更新?
谢谢:)
答案 0 :(得分:8)
如果您使用的是TortoiseSVN,则可以将该文件添加到' ignore-on-commit'更改列表。
这与svn:ignore不同。该文件将被版本化(即它将存在于存储库中),您将在更新时获得更新,但是,当您提交时,此文件将显示在单独的列表中,并且默认情况下未选中。你仍然可以提交文件,但不小心提交它会更加困难。
我将此功能用于需要本地修改但未提交的数据库配置文件。
请参阅此处的文档:(搜索ignore-on-commit) http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-changelists.html http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-commit.html
答案 1 :(得分:0)
您可以创建一个预提交挂钩,检查该文件是否已提交,如果是,则中止提交。
http://wordaligned.org/articles/a-subversion-pre-commit-hook
在这里你可以看到这样的钩子样本(检查提交文件中是否有标签。你需要做的就是编写类似的脚本,检查更改文件列表中是否有该文件)
答案 2 :(得分:0)
这不是直截了当的。其他地方有两个几乎完全相同的问题good answers。
您还可以考虑编写一个shell脚本,使用svn diff
针对您的版本创建补丁;移动你的版本;做svn up
;并修补新的更新版本。
答案 3 :(得分:-1)
在这种情况下,svn ignore属性会有所帮助。 Check this link