当涉及行李箱 /分支和标签时,我最终会感到困惑。以下是我的查询:

我们有一个开发人员从事一个项目。开发人员通常会分组分组,他们在同一项目的各种模块上工作。

当前,我们有一个简单的SVN系统(没有任何中继 /分支或标签),每个人都在同一本地服务器上工作并提交文件。但是问题始于,几个开发人员在未来的模块上工作(不应该立即上线)。在这种情况下,他们无法提交数据,因为如果这样做,他们的开发代码将被上传到实时服务器上,最终将弄乱所有内容。

因此,现在我正在寻找某种解决方案,这些开发人员可以单独工作,但可以按照相同的代码进行工作。这样的事情:

开发人员A在新模块上工作A开发人员B正在研究新模块B开发人员C正在处理模块C的错误修复(已在实时使用,但需要修复很少的错误)

因此,开发人员A将在这台计算机上具有自己的副本,并将致力于开发人员A的存储库。 (或分支)

相同的逻辑也适用于开发人员B,但开发人员C将处理一个通用稳定副本,该副本将在标签中的某个地方,一旦完成,它将被标记并将其推向中继线,以在Live Server上上传。

一旦开发人员A完成工作,他将把所有文件推向后备箱进行实时上传。 (这也应该在中继中合并一些常见文件)。相同的逻辑也适用于开发人员B。

我不确定SVN是否适合此解决方案。我什至不知道是否有更简单的方法来实施我想要的东西。

欢迎任何建议。

谢谢TTR

有帮助吗?

解决方案

我的观点首先是,如果您的所有开发人员都在从事项目的各个部分工作,那么您可以取消分支机构。这可能需要一个小组织(例如正确的日志评论和版本控制),但这可能比分支和合并要少得多。

好的,但是如果您确实想要树枝,它们很容易。有几种方法,但基本上都涉及最终代码最终的“主”版本。这可以是后备箱,或者有些人更喜欢在行李箱上进行更改,然后将代码合并以发布分支。 “树干是主人”是最容易理解的概念。

在SVN中,制作分支很容易 - 它是一个便宜的副本,因此您唯一的问题是用这些内容填充目录(我建议一旦完成分支,就会删除一个分支)。 SVN也为您提供了此类工作的特殊分支机构 - 重新整合分支. 。它很特别,因为SVN跟踪它发生了什么,它设计的是,您可以从行李箱中创建一个分支,对其进行工作,偶尔通过对中继线进行的更改对其进行更新,然后将您的所有作品重新整合到该分支上最终爆炸。然后,您可以重新开始。听起来这可能是您想要的 - 尽管通常,每个开发人员都不会有分支机构,每个工作包都会有一个分支。

人均分支机构的麻烦在于,随着分支机构的寿命越来越长,它们所做的变化将越来越难以合并。如果开发人员不定期将另一个开发人员的工作合并到他们的分支机构中(因为他们不会做)尤其如此。

由于SVN制作便宜的副本,我可能建议为每个开发人员分支整个行李箱。我发现更容易记住,而不是分支单个目录,您始终能够更改共享或普通文件,而不必担心如果承诺会破坏其他分支。 (即,如果您分支/中继/模块,然后发现您需要更改/中继/includ/common_file,那么当您分支一个子集合时,公共文件将不在分支中。因此,只需在根上分支,如' t花费您任何额外的费用)

其他提示

在您的问题中,您刚刚表达了整个行李箱/标签/分支模型背后的基本原因 - 这是为了确切地管理这种情况,这对于不久后开发商店来说是正常情况。

要计划的一件事是您从无处不在的模型迁移到行李箱模型。

您说您没有任何树干,标签,分支等。所以我认为您的模型看起来像这样:

/
 filea.html
 fileb.html
 dira/
  filex

一个警告 - 不要试图将根目录分支在自身下.

例如:

svn cp / /branchA

这将导致一个看起来像:

/
 filea.html
 fileb.html
 dira/
  filex
 branchA/
  ...
 branchB/
  ...

取消根本分支的一部分,而子分支很快变得非常棘手。

保持清洁 - 首先将所有代码移至中继线。这是一种结构性跳跃,需要每个人(以及所有部署系统)删除其工作区并从干净中获取所有内容:

svn cp / /trunk

现在 您可以建立分支机构:

svn cp /trunk /branches/branchA

给您一个类似的结构:

/
 trunk/
  filea.html
  fileb.html
  dira/
   filex
 branches/
  branchA/
   ...

一旦建立了分支,开发人员就可以检查它们并对其进行工作。您的部署系统可以指向中继/而不是根文件夹并部署该文件夹。

任何在错误修复上工作的开发人员都可以检查中继线。当他们提交时,部署系统将像现在一样部署其更改。

当Brancha完成后,Devs可以像GBJBAANB所建议的那样将更改合并为中继线。

快速抬头,祝你好运。

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