2010-04-28 64 views
1

通用组件,我尝试了一个Delphi项目创建和管理一组分布式化石库的化石(和CVS配置)的新手。管理与化石CVS

我有我的开发机上的以下目录树:

Projects 
    Some Project 
    Delphi Components 
     LookupListView 
    Some Client 
     Some Project For Client 
     Some Other Project For Client 
      Source Code 
       Project Resources 
       Project Database 

我为了建立化石版本控制,版本和共享项目\某些客户端\其他一些项目的客户\源代码,包含Delphi 2010数据库项目的源代码。

该项目利用项目\德尔福组件\ LookupListView的这是一个Delphi组件。我需要将此代码包含在我的项目的版本控制系统中。理论上,我将来也需要将其包含在其他化石库中。

如果我创建的源代码或其他一些项目的客户级别我的化石库,我不能添加在该水平之上,以我的仓库的任何代码。处理这个问题的正确方法是什么?发生在我身上的两种解决方案是:

1)为LookupListView创建一个单独的存储库,并确保每个使用引用该引用项目的存储库的人“知道”他们还必须将该项目的当前版本作为好。这似乎无法通过单一结账获得完整的当前版本的项目。这个问题被放大了,因为在这个项目中还有其他常见的组件依赖关系。

2)建立在项目目录我的化石库,这样我就可以从不同的子文件夹签入文件。在我看来,在添加时会涉及到很多额外的路径输入,并且还会对存储库的其他用户强制实施我的目录结构(某些客户端\某些其他项目对于客户端\源) - 在这种情况下,实际的客户。

任何建议表示赞赏。

回答

3

我用Git的,但我的方法可以在您的情况适用。

我有我的所有组件文件夹的一个存储库。这使我能够通过几个控制台命令获得所有这些命令(例如,当我重新安装操作系统或转到另一台计算机等时)。

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

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

+0

交汇处在这里工作得很好。我使用http://technet.microsoft.com/en-us/sysinternals/bb896768中的程序从我用来设置每个项目环境的批处理文件创建它们。 – skamradt 2011-06-07 17:29:39