我正准备成立一个SVN仓库,并想知道如果任何人有一个回购结构一个很好的例子。我目前想:

  

发展结果   ..应用结果   ....应用1结果   ......干线结果   ......分支结果   ......标签结果   ..数据库结果   ..第三方

虽然这种结构很可能保持我们需要的一切,我想使它多一点颗粒状。任何想法?

有帮助吗?

解决方案

我们开始了类似的模式,但发现这是一个有点麻烦。主要的问题是,如果你想在发布分支你的代码,你必须要做出分支为每个组件。

相反,我们已经考虑像下面这样的方案:

  trunk
    app1
    app2
    lib1
    lib2
  branches
    rc-2.0
      app1, app2, lib1, lib2...
    some-devs-branch
      app1, lib2
  tags
    release-1.0
      app1, app2, lib1, lib2...

我喜欢具有单独回购完全对第三方的东西。除非你计划实现完整的厂商分支策略红豆书,这将很好地工作。

其他提示

我们已经strugling与这一点。

我们已经发现,直到某些共享库是多个应用程序的一部分,你会希望有相同版本的一切它并不需要很长时间。因此,我们决定把我们在一个单一的repostitory做的一切。我们已经超过2年,现在以这种方式工作,并发现它非常好地工作着。

所有配置都赞成的和反对的,但具有1个整体库,你可以(几乎)确保您有所有文件一起在正确的版本。如果你有多个中继的工作有与虚拟文件夹或链接(我忘了项),使其与对方联系,但是又回到了你在哪里点是非常困难的技巧。

只要记住每个配置具有亲的和反对的,但对于一个没有大公司,我建议把一切都在一个单一的回购有一个父文件夹。

我目前的做法是打破上逻辑应用程序边界的系统中的所有下一个存储库。

例如,假设也有一个测试套件和服务数据库

/project1/application1/
                      trunk/
                            Src
                            Test
                            Database
                      tags/
                      branches/
         application2/
                      trunk/
                            Src
                            Test
                      tags/
                      branches/                       

这让我们有一个项目assoicated多个应用程序,但手柄释放控制每个“逻辑”的应用边界。考虑以下情况:/你的版本控制需求的,并设置为那些分支/标签/主干结构的位置。

我不喜欢在整个库的根单树干/分支机构/标签的文件夹,因为我不希望有的整个躯干检出,也不想惹部分分支检出作为结果。 (您可能不同意你的里程可能会有所不同等等等等)

SVN提供标签采取“快照在时间”源树的在特定的时间(可使用的版本中,等等)。

但是,如果你打算让你的仓库“更颗粒状”,也许你应该考虑设置多个存储库。

当然,“主干”文件夹内,你应该建立任何正常的目录你会层次,如果你没有使用源代码控制。

我们总是为每一个独立的“溶液”的单独SVN库。该存储库然后只具有简单的树干,树枝和标签结构。

任何依赖性框架(其中我们控制源代码)然后有自己的独立的库中。我们通常然后使用它们只是包括二进制文件(在特定的版本)到任何项目。

拥有的一切的单一回购意味着你有一个很好的一个巨大的资源库非常快结束了的机会。这意味着事情可能会变得缓慢,有点难以跟踪为好。显然,这取决于你的具体的使用情况,但我个人会选择为每个项目信息库和使用的svn:需要的地方的外部。

其实,我会选择超过SVN如果可能的话一个分布式VCS,但每一个他自己......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top