我是一个Fossil(和CVS配置)新手,试图为Delphi项目创建和管理一组分布式Fossil存储库。
我的开发机器上有以下目录树:
Projects
Some Project
Delphi Components
LookupListView
Some Client
Some Project For Client
Some Other Project For Client
Source Code
Project Resources
Project Database
我正在设置Fossil版本控制以便版本和共享Projects \ Some Client \ Some Other Project For Client \ Source Code,其中包含Delphi 2010数据库项目源。
该项目使用了Projects \ Delphi Components \ LookupListView,这是一个Delphi组件。我需要将此代码包含在我的项目的版本控制系统中。理论上,我将来也需要将它包含在其他Fossil存储库中。
如果我在源代码或其他项目客户端级别创建我的Fossil存储库,我无法在该级别上添加任何代码到我的存储库。处理这个问题的正确方法是什么?我遇到的两个解决方案是
1)为LookupListView创建一个单独的存储库,并确保为引用它的项目使用存储库的每个人“知道”他们也必须获得该项目的当前版本。这似乎打败了能够通过单一结账获得完整的当前版本项目的目的。问题被放大了,因为此项目中还有其他常见的组件依赖项。
2)在Projects目录中建立我的Fossil存储库,这样我就可以从各个子文件夹中检入文件。在我看来,在添加时会涉及大量额外的路径输入,并且还会在存储库的其他用户上强加我的目录结构(Some Client \ Some Other Project For Client \ Source) - 在这种情况下,实际的客户。
任何建议表示赞赏。
答案 0 :(得分:3)
我使用Git,但我的方法可以适用于您的情况。
我的所有组件文件夹都有一个存储库。这使我能够使用少量控制台命令获取所有这些命令(如果我重新安装操作系统或转到另一台计算机等)。
此外,我的每个项目都有一个存储库。如果某个项目使用第三方控件,我会创建“组件”子文件夹并对每个组件集执行符号链接(junctions)。
这种方法有一些缺点(当你在某些项目的提交历史中“返回”时,组件也可以被修改。如果许多项目使用相同的组件,这可能会导致一些麻烦)。但我还没有问题:)