一个存储库/多个项目没有混淆?

时间:2010-03-19 07:04:48

标签: mercurial repository organization

在阅读了Joel关于Mercurial的最后一篇文章后,我正在尝试将XP作为一个单用户的单机源控制系统。

但是,我想检查的一件事是:创建一个我所保留的所有小项目的存储库会更容易。 C:\ VB.Net \,但结果是我对其中的不同项目所做的更改(C:\ VB.Net \ ProjectA \,C:\ VB.Net \ ProjectB \等)将混入一个更改日志。

但是如果我为所有项目使用单个存储库,当我做差异或浏览更改历史记录时,我是否能够过滤数据以便我只能看到与给定项目相关的更改?否则,在每个项目目录中创建存储库是唯一的解决方案吗?

谢谢。

4 个答案:

答案 0 :(得分:5)

我会为每个项目保留一个存储库。开销很小(每个源代码目录只有一个hg init,或者在资源管理器中右键单击一个),你不会感到困惑。毕竟,为什么改变一个程序会影响一个完全不相关的程序的版本历史?

当然,您可以在资源库资源管理器中查看每个文件的历史记录,但我认为它违背了版本控制的概念,将不相关的内容混合到一个存储库中。

答案 1 :(得分:4)

DVCS的正确粒度(即可以克隆所有历史记录的回购)是项目。

如果你有几个项目具有不同的开发生命周期(即一个项目的变化并不总是影响另一个),它们应该在他们自己的回购中。

答案 2 :(得分:0)

如果有人使用bitbucket,它们只允许一个私有存储库,因此如果您希望它们是私有的,您可以将所有项目放在那里。我想听听有关这种情况的评论。

答案 3 :(得分:0)

如果你选择了一个存储库,并且只有浅层项目:

cd C:\VB.Net\ProjectA\
hg log *.*

否则,可能必须指定特定的文件扩展名以避免过多的递归:

cd C:\VB.Net\ProjectA\
hg log **/*.cpp

虽然可能有点慢......如果项目真的是分开的话,标签/分支可能会让人感到困惑。

注意:我很难想到" Hello world!"值得拥有自己的存储库只是因为它可能是独立的#34;。