Subversion:只在一个客户端本地忽略对文件的修改

是否有可能忽略只在一个客户端本地Subversion中的文件的变化,而不会将忽略传播到整个存储库?

我正在处理的特定问题是我检出了一个项目,并修改了一堆文件,其中包括已经是存储库一部分的Makefile。 现在我正在使用的环境与组中的其他部分不同,我希望对Makefiles的更改保持在本地机器上,而不是承诺。

但是,我不想设置svn:ignore,因为我相信会将该忽略提交到存储库,而将make文件保留在那里是非常重要的。

就像svn的许多方面一样,乌龟很容易。 实际上,我相信乌龟实际上是通过系统地使用现有的svn特性来增加function的。 我意识到这个答案只是窗口,然而,也许有些人就像我一样,仍然使用窗口。 在“检查修改”popup窗口中,只需右键单击文件,然后select“移动到更改列表” – >“ignore-on-commit”。 现在,当您使用乌龟签入时,它会将您的更改分段到各种更改列表中,所以至less可以直观地告诉您要提交的内容以及不想提交的内容。

如果您使用Subversion 1.5.x或更高版本,则可以使用更改列表:

svn cl COMMIT /path/to/project/* svn cl NOT_COMMIT /path/to/project/Makefile 

注意:第二个命令Makefile将从第一个更改列表中删除。 您可以忽略警告。

不要提交第二个更改列表。

通过以下方式提交:

 svn ci --cl COMMIT -m"<LOG MESSAGE HERE>" 

重要提示:如果您提交没有–cl选项,所有您的更改将被提交

我能想到的最接近的安全解决scheme是使用个人分支。

使用svn export来导出文件,所以它不受版本控制。

http://svnbook.red-bean.com/en/1.0/re10.html

编辑:但我相信这必须在每个目录的基础上完成,所以你不得不重新组织你的文件。

我目前无法testing这个,但是在这里可以使用一个稀疏的结帐方式吗?

http://svnbook.red-bean.com/nightly/en/svn.advanced.sparsedirs.html