我们小组正在考虑转向SVN。但是,我似乎无法找到一种方法来执行以下操作:
我需要在本地对存储库中的大约20个文件进行一些小的调整,而SVN认为它们“已更改”并包含在提交中。 (如通信超时和日志记录级别的变化。)
理想情况下,我希望将调整后的文件合并到存储库中的较新版本。 (使调整后的本地文件与其他用户的提交更改保持同步。)
我无法想象我们在想要/需要它时是独一无二的。
是否有关于此类用例的最佳做法?
我正在考虑的一件事是将所有调整后的文件放入分支的“调整”工作副本中。
然后将我调整过的文件合并到我的“官方”工作副本中。
然后使用比较“调整”和“正式”工作副本的脚本来更新我的忽略列表。该脚本也会忽略并提醒我任何调整和其他更改的文件,这些更改可能需要提交到存储库。
这看起来有点像黑客,我无法想象没有更好的方法。
答案 0 :(得分:2)
每当您拥有存储库中的文件,但您不想更改时,您最终都会更改这些文件。您正在使用的版本控制系统并不重要。有人会不小心改变这些文件。
有几件事可以提供帮助:
build.template.properties
文件,允许人们调整构建。此文件已签入,但开发人员可能会将其复制到build.properties
并按照他们想要的方式进行调整。我使用svn:ignore
和我的预提交钩子来确保没有人检查实际的build.properties
文件。答案 1 :(得分:1)
根据您使用的语言,您不能从定义值的单个文件加载这些调整,并且具有一组提交到源代码控制的默认值,并允许每个开发人员创建自己的“调整”文件哪个被忽略了?
这样,源代码中的版本是一致且稳定的,具有合理的合理默认值,但开发人员可以在本地副本上调整其内容。
听起来不像版本控制问题,更像是“我们如何获取值来覆盖可调整设置”问题。
答案 2 :(得分:0)
旁注:如果
我需要在本地对存储库中的大约20个文件进行一些小的调整,而SVN认为它们“已更改”并包含在提交中。
是您工作流程中相当常见的要求,那么您可以考虑不使用Subversion,但是,例如,Mercurial与MQ + mqcollab扩展,或者hg commit中的-X选项
答案 3 :(得分:0)
只是不提交包含设置的文件。提交一个文件,作为设置的“待配置模板”。然后(如果你很友好的话)删除一个“readme.txt”文件,解释复制模板文件,在编辑器中打开它,并按照文件中的描述设置适当的值。
你不需要每次安装“调整”,但为什么你会首先提交它们。源代码控制不是“系统备份”,它是源代码控制。
PS。如果您确实需要配置上述20个不同的文件,请考虑改进配置控制的集中化。