Sourcetree,Mercurial和创建调试分支

时间:2014-03-25 17:19:41

标签: mercurial branching-and-merging atlassian-sourcetree

我一直试图找到Sourcetree的实际文档而没有太多运气,所以我想我在这里问。在版本控制方面,我是一个相对较新的人,我目前的项目是我的第一个努力。我在Windows 7上使用Sourcetree作为Mercurial的前端,我在C:\ inetpub的本地计算机上获得了我的开发代码,每当我执行Commit时,我都会将Sourcetree切换到克隆的存储库在我备份的网络驱动器上执行拉动我刚刚提交的更改,以便我已经备份了开发历史记录。

我试图解决的问题是使用Sourcetree设置Debug分支,这样我就可以修复生产服务器上运行的代码版本的错误,同时进行开发。显然是一个共同的需求,但我无法理解它。我希望有两个代码位置,所以我可以在开发分支的中间编辑暂停,对Debug进行更改,然后他们回到我在开发中的更改并在将更改合并到Debug之前完成它们。如果这不是它的工作方式,那可能是我困惑的一部分。关于我可以找到清晰度的任何建议?指向现有教程等的指针就可以了,我只是没有幸运地搜索谷歌,而且我还没能找到任何实际的Sourcetree文档。

注意:根据我已经看到的有关Sourcetree和Mercurial的其他问题的回复,我将提前说明我对讨论外部存储库托管毫无兴趣,除非有人可以解释为什么它将帮助解决这个问题。

1 个答案:

答案 0 :(得分:1)

这里有两件事:

  1. 您无需更改存储库以进行提取,也可以从本地存储库进行推送;
  2. 从一个分支切换到另一个分支不需要2个代码位置。对于较大的项目,它可能有所帮助,但我建议你在这之前对Mercurial感到满意。
  3. 因此,对于数字1,每个本地存储库都有一个默认源或远程存储库。它由用户定义,或者是克隆它的源库。无论您是推还是拉,它都会默认为相同的来源。您也可以推/拉到多个来源,但目前情况并非如此。在正常工作流程中,只需在每次提交时发出 hg push ,您的更改将传播到其他仓库。

    对于数字2,正如您所知,Mercurial仓库可以有多个分支。提交变更集时,它会在当前分支上自动完成。在SourceTree中,单击“分支”按钮,然后输入新的分支名称。您将要做的下一个提交将是您的新分支的头(和开始)。之后,您可以在两个分支之间来回更新,您的代码也会相应更改。这意味着您可以随时更新到任何分支的头部,进行一些更改,提交,然后跳转到另一个分支,依此类推。所以不,你不需要多个存储库。

    通常,正确的做法是拥有默认分支(默认名称很少更改!),您拥有当前的开发源。对于您正在修复/实现的每个问题或功能,请从默认分支创建一个新分支以放置新代码。对该分支进行审核和测试后,将其合并为默认值并关闭前者。

    对于您当前的开发,如果您需要一个额外稳定且安全的主干,您可以创建生产分支,这将是将在您的服务器上运行的稳定代码。一旦您对默认分支测试感到满意,您就可以在生产中将其合并,以包括您到那时的更改。

    作为惯例,请确保您的服务器始终运行生产分支中的代码,以获得更稳定的代码。至少,这是我从你最初的问题中理解的。