SVN的正确程序

时间:2012-09-09 12:33:52

标签: svn version-control tortoisesvn

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

  1. 当我第一次开发网站时,我创建了一个本地工作目录D:\ Sites {mywebsite}
  2. 我发布了网站,将所有内容提交到主干并创建了一个名为Version 1.0
  3. 的标签
  4. 我现在需要创建一些更新,所以我从主干创建了一个名为{my-branch} 问题的分支 - 每当我想创建一个分支时,我必须将主干检查到本地工作目录然后在Tortoise中使用brancg / tag选项?似乎没有一种方法可以在没有本地工作副本的情况下使用乌龟。
  5. 我使用switch命令将本地工作目录从trunk更改为{my-branch}
  6. 一旦我完成对分支的所有更改并且我满意的evrything正在工作,我需要合并分支和主干。 问题 - 我不确定我应该在这里做什么 - 我将主干合并到我的工作副本(现在是一个特定的分支)还是我将我的分支合并回主干?
  7. 问题 - 一旦我发布了更改,我应该创建另一个标签版本1.1 / 2.0等吗?
  8. 根据Akton非常好的反馈,我只是更新问题以澄清最后一点:

    1)1月1日,我创建了一个名为“新上传者的实施”的分支。我查看我的工作副本的代码并进行更改,直到1月20日(我去的时候登记到分支机构)。

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

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

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

    如果我上面列出的理解是正确的,我想我有它!

    感谢您的帮助。

    此致 人

1 个答案:

答案 0 :(得分:2)

  

问题 - 每当我想创建分支时,我必须结帐   中继到本地工作目录然后使用brancg / tag   乌龟的选择?似乎没有办法做到这一点   乌龟没有当地的工作副本。

不,您不需要本地副本来创建分支。你可以在Tortoise SVN" repo browser"从右键菜单中。有关详细信息,请参阅http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-repobrowser.html

  

问题 - 我不确定我应该在这做什么 - 我合并后备箱   进入我的工作副本(现在是一个特定的分支)或者我正在合并   我的分支回到后备箱?

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

[编辑:更改以下段落] 但是,在实践中,工作副本提交到分支后,最好合并主干 - >首先处理工作副本并解决任何冲突,特别是如果自分支创建以来对主干进行了许多更改。完成后,工作副本 - >分支 - > trunk merge应该很简单,对其他人的干扰最小。

  

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

取决于您的标记策略。请记住,每个提交都有一个您可以随时引用的唯一修订号。标签允许您使用更易于理解的名称快速查找或引用修订。另见Best practice for SVN tags?

[编辑:已添加]

  

3)2月1日我准备好释放。关于阿克顿的反馈,我合并了   当前主干进入我的工作副本(这是我的分支)。我解决了   问题,然后我是否将所有内容都提交回我的分支?这将   现在包含我的两位同事也合并的两个代码更新   进入分行。我不确定我的分支现在是否也应该   包含其他团队成员的其他更新?

是。将更改提交回分支(因此将它们备份到源代码管理)并将更改合并回main。目的是确保合并回主干尽可能少地破坏团队。您可以事先在分支机构上测试您的应用程序,以确保所有更改都按预期工作,并且不会无意中创建错误。