关于delphi:如何处理与版本控制相关的文件,但这些文件经常以不相关的方式改变?

How to deal with files that are relevant to version control, but that frequently change in irrelevant ways?

.dproj文件对于Delphi项目是必不可少的,因此它们必须处于版本控制之下。

这些文件由IDE控制,还包含一些经常更改但与版本控制完全无关的信息。

例如:我经常更改应用程序的启动参数(一天几次),但如果只更改了处理启动参数的部分,则不希望意外地提交项目文件。

那么如何处理这种情况呢?

一个干净的解决方案是将文件分开,但使用DelphiIDAfaik是不可能的。

可以忽略文件的特定部分吗?

我们现在正在使用Subversion,但可能很快就会迁移到Git。


在我们的例子中,开发人员很少对.bdsproj,.dpr,.res文件进行有意义的更改。因此,我们拒绝提交(Subversion中的预提交挂钩),除非提交注释中存在特殊标记:【添加项目文件】或【添加res文件】。这可以防止对这些文件进行"无耻"的更改。


对于StartParameters的特定情况:众所周知的Andreas Hausladen的DDevextentons插件允许将Start参数单独存储在dproj文件中。在他的站点上查看有关DDevextensions的更多详细信息。

编辑:如果我没记错的话,这项功能的创建仅仅是因为他在启动参数和版本控制方面有那个问题。


svn/git无法"知道"文件的哪些位是重要的,而将对您来说重要的内容提交或不提交到文件"位"中是很困难的(尤其是当您不清楚信息在其中的结构时)。最实际的解决方案是检查对文件所做的更改,并决定是否将它们提交到存储库。

您可以决定要用git提交文件的哪些部分。然而,这并不是你想要的自动化过程。


如本文所述,在git update-index 上使用--assume-unchanged选项,stackoverflow/假设不变。

你可以为那些需要它的人制作简单的别名。


我不会在版本控制中直接保存.dproj文件,而是提供一个默认文件,用户应该重命名该文件以使有缺陷的delphi正常工作。