【问题标题】:Basic tutorial on branches (specific instructions for Mercurial - Windows)分支基础教程(Mercurial - Windows 的具体说明)
【发布时间】:2012-01-22 08:14:56
【问题描述】:

我对这个版本控制业务非常陌生,并且正在慢慢学习我的方式。我已经学会了如何创建一个存储库并提交对它的更改。现在的故事(我认为版本控制是完美的,虽然我不确定最佳实践)是这样的:

我有软件 A。它是通用的。

我需要修改 B 公司代码库中的 2 个文件。这将使其成为软件 B。

这是我唯一需要做的改变;在那之后,我只想继续在 A 上工作,就好像软件 B 从未存在过一样。

这样做的最佳方法是什么?只是导出软件 A,修改它并将其发送给客户端?在存储库中工作,提交,然后“退出”?我试过用 close 的分支和分支来蒙混过关,但要么我太笨,无法让它工作,要么它坏了(我不断收到“HEAD ALREADY CLOSED”之类的东西)。

任何指向有关这方面的教程的指针都会有所帮助 - 我真的强调,尽管这可能很烦人,但我想帮助你从 Win7 上的乌龟 GUI 中做到这一点,而不是命令行。

【问题讨论】:

  • 我有点困惑...您的标题提到了 Mercurial,但问题是关于 SVN,它是哪一个?
  • 抱歉,已修复。我使用 SVN 作为版本控制系统的同义词。哎哟。
  • 使用命令行,你会更有生产力。 hg branch SoftwareB hg commit -m "Changes to client B" hg up default
  • 必须阅读关于不同分支策略的 Steve Losh 文章 - 命名分支只是 3 种方法中的一种(最常提及)

标签: version-control mercurial branch


【解决方案1】:

好的。您可以并且已经真正使用 Mercurial 分支,每个客户至少有一个额外的分支

  • 不要关闭客户分支机构
  • 使用与众不同的名称

我需要修改公司 B 代码库中的 2 个文件。这将使其成为软件 B。

  • 编辑文件,保存更改。

  • 开始提交过程,即在提交窗格中单击“分支:默认”文本(实际上就像按钮一样)并在此表单中选择第二个选项“打开新命名分支”,选择分支名称,按确定。这有效地更改了此(仍未完成)提交的分支

  • 输入提交信息,按下提交按钮(见Shot2右上角),确认创建新分支
  • 提交后工作台窗口将向您显示另一个提交,修订 1(在我的示例中)来自不同的分支 Cust1(“分支”列内容和变更集“描述”中的绿色标签),修订版 0 仍处于默认状态,我们处于活动修订版 1

  • 当需要返回主线时 - 单击需要(默认分支中的最新?)更改集列表中的更改集和 conext-menu 中的“更新” - 我们更改点,我们的 WC将 repo 镜像到 之前的一些状态(通过文件内容验证检查)

  • 修复基本代码,提交时不触及选项

  • 如果我们更改了客户的版本 - 更新到其分支中的最新 cset

编辑和提交

【讨论】:

  • 在另一个长篇故事中合并分支(请不要我)
  • 这很棒,截图也很完美。感谢您的努力!
【解决方案2】:

我认为最好的方法是为您的更改创建一个命名分支。如果您需要为 B 客户端做一些后期更改,它会更加灵活。以下步骤应该可以做到这一点:

  1. 在您的存储库上创建一个新分支。如果需要,这个 SO 问题应该会有所帮助:How to branch with TortoiseHG
  2. 做你需要做的改变
  3. 在新命名的分支中提交它们
  4. 切换回默认分支
  5. 忘记之前创建的分支(如果需要,您也可以关闭它)

以下链接可以帮助您:

  1. http://blog.caraulean.com/2011/03/09/working-with-named-branches-using-tortoisehg-2-0-illustrated-workflow/
  2. TortoiseHg and multiple branches in one repo

【讨论】:

  • “切换回”是指只进行一般更改,然后再次将分支更改为默认值并单击“提交”?没有理由“关闭分支”,对吧?
  • 您必须在提交更改后将分支更改为默认值。看看提供的第一个链接,它通过屏幕截图显示了所有内容。而且没有真正的理由关闭分支,这只是一个“审美”的事情
猜你喜欢
  • 1970-01-01
  • 2014-10-11
  • 2014-03-20
  • 1970-01-01
  • 2017-02-05
  • 2017-08-21
  • 1970-01-01
  • 2012-09-11
  • 1970-01-01
相关资源
最近更新 更多