1

我是一名 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 存储库中。

如果我在 Source Code 或 Some Other Project For Client 级别创建我的 Fossil 存储库,我无法将高于该级别的任何代码添加到我的存储库。处理这个问题的正确方法是什么?我想到的两个解决方案是

1) 为 LookupListView 创建一个单独的存储库,并确保为引用它的项目使用存储库的每个人都“知道”他们还必须获得该项目的当前版本。这似乎违背了通过单次结帐即可获得完整的当前项目版本的目的。这个问题被放大了,因为这个项目中还有其他常见的组件依赖。

2) 在 Projects 目录中建立我的 Fossil 存储库,这样我就可以从各个子文件夹中签入文件。在我看来,这在添加时涉及大量额外的路径输入,并且还将我的目录结构(一些客户端\一些其他项目用于客户端\源)强加给存储库的其他用户——在这种情况下,实际的客户。

任何建议表示赞赏。

4

1 回答 1

3

我使用 Git,但我的方法可以应用于您的情况。

我的所有组件文件夹都有一个存储库。这使我能够只用几个控制台命令来获得所有这些命令(以防我重新安装我的操作系统或转到另一台计算机等)。

此外,我的每个项目都有一个存储库。如果某个项目使用第 3 方控件,我将创建“组件”子文件夹并为每个组件集执行符号链接(连接)。

这种方法有一些缺点(当您“返回”某个项目的提交历史时,组件也可以修改。如果许多项目使用相同的组件,这可能会导致一些麻烦)。但我还没有问题:)

于 2010-04-30T05:37:47.773 回答