Tortoise SVN 适合复杂设置的最佳开发/合并/发布模型

发布于 2024-12-14 18:40:49 字数 404 浏览 1 评论 0原文

我们的开发团队在现有项目中工作,并部署在完全独立的环境中。我们所做的工作并非永远不会被合并到他们的工作中,但我们必须与他们保持一致。他们使用传统的主干-分支(但不是真正的标签)设置。为生产版本创建一个分支,然后在发布时在其上继续开发。

我们团队的做法是,我们将他们的发布分支复制到我们自己的主干(最初),主干本身包含主干/分支/标签。在开发过程中,我们处于主干状态,并标记生产版本。当我们从他们的最新版本更新时,通常不可能从该分支直接合并到我们的主干。从他们的分支开始,合并到我们的工作中,并最终将其重命名为主干,这似乎更干净、更轻松。

突然间,我感觉自己像一个颠覆虚拟文本生成器……

考虑到我们无法改变其他团队的工作流程,我们是否有更好的流程?如果我在解释中也遗漏了一些内容,请告诉我。

谢谢。

Our dev team works inside existing projects, and deploys on completely separate environments. The work we do is not never expected to be merged back into theirs, but we are required to stay in line with them. They use the traditional trunk-branch (but not really tags) setup. A branch is created for a production release, and then development continues on it as they release.

The way our team does it, we copy their release branches to our own trunk (initially), which itself contains trunk/branches/tags. During development we are on trunk, and tagging for production releases. When we update from their latest release, its often impossible to do a straight merge from that branch to our trunk. It seems much cleaner and trouble-free to start with their branch, merge in our work, and eventually rename it to trunk.

All of a sudden I feel like a subversion dummy text generator...

Given the constraint that we can't change the other team's workflow, is there a better flow for us? Let me know if I'm missing something in the explanation too.

thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你与昨日 2024-12-21 18:40:50

两个主要原则:

  • 供应商分支
  • 经常合并

由于不了解规则 2,您会得到预期的“合并地狱”

对于更合理的工作流程(阅读 Net 中的供应商分支,它有很多信息),您可以

  • 不仅仅是将上游分支复制到您的主干,而是在您的存储库中创建供应商分支(分支),将其与 svn:externals 链接到源分支(不修复 URL 中的源修订版,链接到可移动HEAD)
  • 将分支复制到(空)主干
  • 监控提交到上游存储库(SVNMonitor、CommitMonitor),并在每次提交到上游分支合并您的供应商分支与您的trunk(svn 1.6-1.7 会比旧版本更好)

完成上游分支并开始新分支后,您可以在旧分支中编辑外部定义(用于下一个分支 URL)或完全删除分支并开始新分支(不需要从主干中删除所有内容,只需从新分支内容合并)

Two main principles:

  • Vendor branches
  • Merge often

Due to ignorance of rule 2 you get "Merge hell" as expected

For more reasonable workflow (read about Vendor branches in Net, it has a lot of information) you can

  • Not just copy upstream branch to your trunk, but create vendor-branch (branch) in your repo, link it with svn:externals to source branch (without fixing source-revision in URL, link to moveable HEAD)
  • Copy branch to (empty) trunk
  • Monitor commits into upstream repo (SVNMonitor, CommitMonitor) and on every commit to upstream branch merge your vendor-branch with your trunk (svn 1.6-1.7 will be better than older versions)

After finishing upstream brach and starting new you can or edit externals definition in old branch (for next branch URL) or delete branch completely and start new (deleting all from your trunk not needed, only merge from new branch content)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文