Subversion:如何对文件进行本地更改*从不*签入,但是还是让它与远程同步?

时间:2011-01-05 10:41:25

标签: svn

我有一个本地更改的文件,永远不应该同步回存储库,因为它只适用于我的本地安装。但是如果在repo中更改了相同的文件,我希望这些更改能够更新我的本地副本。

目前,当我想要签入我的更改时,相关文件始终会显示在更改列表中,我必须手动将其从签入中排除。我如何制作它以便我可以在上述限制的情况下更新?

谢谢:)

4 个答案:

答案 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