我应该配置 SVN 在 Delphi 项目中忽略什么?
提交到存储库时我应该告诉 Tortoise SVN 忽略哪些文件?
我特别对实用信息感兴趣,例如是否包含诸如 *.dproj.2007
等似乎出现但可能不需要的文件。
What files should I tell Tortoise SVN to ignore when committing to a repository?
In particular I am interested in practical information such as whether to include such files as *.dproj.2007
etc that seem to appear but may not be needed.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(3)
使用Delphi2005,我们团队很早就采用了这个:
*.bdsproj *.scc *.suo *.user .~ *.local *.identcache *.dsk obj bintesting __history *.o *。 lo *.la *.al .libs *.so .so.[0-9] *.a *.pyc *.pyo *.rej ~ ## .#* .*.swp .DS_Store
不确定它们是否全部需要,或者其中一些是什么。我没有想出它,只是遵循我们的内部维基......
沿着这些思路,您应该查看服务器端预提交挂钩。我们有一个预提交触发器,不允许检查 .bdsproj、.dpr 和 .res 文件,除非注释中包含特定标签:[添加项目文件] [添加 Res 文件]。如果您尝试提交没有这些标签的 .bdsproj、.res 或 .dpr,则提交将无法通过审核并被拒绝,并且将向整个开发团队发送一封令人尴尬的电子邮件。这是因为这些文件很少有任何合法的更改。如果您需要将一个单元添加到项目中,那么可以执行此操作并在签入中包含标签,这样就可以了。该标签显示“我知道我在做什么,并且我有充分的理由更改此文件”。否则,您会收到各种垃圾信息 - 转速数、路径更改、包来来去去等。
我们还在预提交中设置了一些 grep 过滤器,寻找要添加的某些内容。就像 DevExpress 中不需要的“皮肤”单元一样,因为某些开发人员安装了所有皮肤,并且 IDE 决定添加它们。或者 MadExcept,因为有人在调试某些内容后将其打开(出于各种原因,我们不允许在这个特定项目的生产中使用 MadExcept)。诸如此类的事情。
更新:因为我们的环境不典型,所以我从上面的列表中删除了 *.res。
Emba 官方答案在这里:
https://docwiki.embarcadero.com/RADStudio/Sydney /en/File_Extensions_of_Files_Generate_by_RAD_Studio
时间在撰写本文时,我认为此类型列表不完整(例如:没有提及 Android .obb 文件),但 wiki 格式允许建议,并且页面似乎确实已更新。
您还可以看看这个:
https://delphi.fandom.com/wiki/Delphi_File_Extensions
尽管它似乎不太完整,并且更新不频繁(例如:根本没有提到与 android 相关的文件。)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我在 D2007 中使用这些,它们似乎在 XE 和 XE2 中仍然可以正常工作:
我不包含
ModelSupport
因为我不使用 IDE 的建模内容,所以如果它是错误创建的。我也不对__history
文件夹中的任何内容进行版本控制,因为这只是签入之间的临时版本控制;一旦签入 SVN,就不再需要了。(我不同意 Chris 关于 *.res 的观点,顺便说一句,特别是在 XE2 方面。现在可以使用
Project|Resources and Images
创建资源文件,并且这些文件可以直接创建由于资源\图像实际上可能来自当前文件夹之外的其他位置,并且图像文件可能会意外地未签入,因此我现在保留.res
文件。还保留项目文件;它包含所有路径和编译器选项如果发生需要更改的情况,只需删除项目文件并让 IDE 根据需要重新创建它即可。)I use these in D2007, which seem to still work fine in XE and XE2:
I don't include
ModelSupport
because I don't use the IDE's modeling stuff, so there's no point in versioning it if it's created by mistake. I also don't version anything in the__history
folder, as that's just temporary versioning between checkins; once the checkin to SVN is made, it's not necessary any longer.(I disagree with Chris about
*.res
, BTW, especially when it comes to XE2. Resource files can be created now usingProject|Resources and Images
, and those go directly into a resource file. Since the resource\image may be actually coming from somewhere else not in the current folder, and the image file might accidentally not be checked in, I keep the.res
file now. I also keep the project file; it has all the paths and compiler options set. If something happens where that needs to change, it's easy to just remove the project file and let the IDE recreate it as needed.)