0

感谢之前对 SVN 的一些帮助,我已经开始在我们公司实施 SVN 方面取得一些进展。我正在使用 Tortoise SVN,只是有点不确定创建更新的正确工作程序。这是我目前遵循的程序,但有 3 个问题(以粗体显示)。

  1. 当我第一次开发网站时,我创建了一个本地工作目录 D:\Sites{mywebsite}
  2. 我发布了网站,将所有内容提交到主干并创建了一个名为 1.0 版的标签
  3. 我现在需要创建一些更新,所以我从主干创建了一个名为 {my-branch} 的分支问题 - 每当我想创建一个分支时,我是否必须将主干检出到本地工作目录,然后使用 brancg Tortoise 中的 /tag 选项?如果没有本地工作副本,似乎没有办法用乌龟做到这一点。
  4. 我已使用 switch 命令将本地工作目录从中继更改为 {my-branch}
  5. 一旦我完成了对分支的所有更改并且我对一切都感到满意,我需要合并分支和主干。问题 - 我不确定我应该在这里做什么 - 我是将主干合并到我的工作副本(现在是一个特定的分支)还是将我的分支合并回主干?
  6. 问题 - 一旦我发布了更改,我是否应该创建另一个标签版本 1.1/2.0 等?

根据阿克顿的非常好的反馈,我只是更新问题以澄清最后一点:

1) 1 月 1 日,我创建了一个名为“新上传器的实现”的分支。我将代码签出到我的工作副本并进行更改,直到 1 月 20 日(我去分支时签入)。

2)在此期间,两名团队成员创建了自己的分支,发布了更改并合并回主干。

3) 2 月 1 日,我准备发布。根据 Akton 的反馈,我将当前主干合并到我的工作副本(这是我的分支)中。我解决了任何问题,然后将所有内容提交回我的分支吗?现在这将包含我的两个同事也合并到分支中的两个代码更新。我不确定我的分支现在是否还应该包含来自其他团队成员的其他更新?

4)最后我将我的分支合并回主干 - 但这肯定应该非常简单,因为我的分支现在几乎是主干的镜像但现在也只包含我的更新?

如果我上面列出的理解是正确的,我想我明白了!

感谢你的帮助。

问候, 艾尔

4

1 回答 1

2

问题 - 每当我想创建一个分支时,我是否必须将主干检出到本地工作目录,然后使用 Tortoise 中的 brancg/tag 选项?如果没有本地工作副本,似乎没有办法用乌龟做到这一点。

不,您不需要本地副本来创建分支。您可以在 Tortoise SVN“repo 浏览器”的右键菜单中进行操作。有关更多信息,请参阅http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-repobrowser.html

问题 - 我不确定我应该在这里做什么 - 我是将主干合并到我的工作副本(现在是一个特定的分支)还是将我的分支合并回主干?

您可以将工作副本中的任何剩余更改合并回分支,然后将分支合并到主干。目标是将分支中的更改返回到主干。

[编辑:更改了以下段落] 但是,实际上,在将工作副本提交到分支之后,最好先合并主干 -> 工作副本并解决任何冲突,特别是如果从那时起对主干进行了许多更改分支已建立。一旦完成,工作副本 -> 分支 -> 主干合并应该很简单,并且对其他人造成的干扰最小。

问题 - 一旦我发布了更改,我是否应该创建另一个标签版本 1.1/2.0 等?

这取决于您的标记策略。请记住,每个提交都有一个唯一的修订号,您可以随时参考。标签允许您使用更易于理解的名称快速查找或引用修订。另请参阅SVN 标签的最佳实践?.

[编辑:添加]

3) 2 月 1 日,我准备发布。根据 Akton 的反馈,我将当前主干合并到我的工作副本(这是我的分支)中。我解决了任何问题,然后将所有内容提交回我的分支吗?现在这将包含我的两个同事也合并到分支中的两个代码更新。我不确定我的分支现在是否还应该包含来自其他团队成员的其他更新?

是的。将更改提交回分支(以便将它们备份到源代码控制)并将更改合并回主分支。目的是确保合并回主干尽可能少地扰乱团队。您可以事先在分支外测试您的应用程序,以确保所有更改都按预期工作,并且没有无意中创建的错误。

于 2012-09-09T13:08:57.310 回答