0

我首先要说这可能是一个愚蠢的问题,如果我盯着答案但看不到,请道歉。

过去我主要使用 VCS 作为一种在出现问题时允许我恢复代码的方法。我一直有一个单一的发展阶段。但是,在发布和启动下一个版本时,我遇到了通常的麻烦——处理错误。所以这次我决定使用分支(forking 或其他最好的名字)。我是一个孤独的开发人员,所以我是唯一一个使用存储库的人。我的场景很简单。我想在发布时创建一个分支,以便我有一行用于发布的代码和一行用于测试版。然后我可以愉快地在测试版上工作。现在出现了一个错误,我需要回到发布的最后一次提交。

我的问题是在 IDE 中取回该代码以进行处理的最佳方法是什么。

我在 Mercurial 中读过,一种简单的方法是克隆包括工作目录的存储库。这会给我两份代码库副本,我想我可以选择将哪一份加载到 IDE 中。然后我会使用 Push 或 pull 将错误修复从发布副本中获取到 beta 副本(我认为)。

我认为必须有另一种方法,但是没有克隆。我该怎么做?我可以猜测恢复到发布代码的最后一次提交。然后我假设将解决方案加载到 IDE 中会给我这个。我不确定代码完成后我会去哪里。

作为记录,我查看了许多不同的 VCS - 我过去使用过 SVN,但想使用 DVCS。我查看了 Git、Bazaar、Mercurial 和 Veracity(过去使用过 Code-Coop)。您可能认为另一种工具更适合我的需求。在尝试了其他方法之后,我发现我可以理解 Mercurial 的工作方式以及带有 WorkBench 和 HgSccPackage 的 GUI 工具(例如 TortoiseHg)(http://visualstudiogallery.msdn.microsoft.com/9bc074fa-9e1f-4ce2-a75d-b90e65f7475a)吸引力

这里有很多很好的文档和链接Introduction to Mercurial ,我已经阅读了不同的分支方法,包括使用书签等,但它们似乎主要针对多成员团队 - 这当然是有道理的

提前谢谢了

4

2 回答 2

1

我认为必须有另一种方法,但是没有克隆

是的。您可以在单个 repo 中使用(命名)分支(我更喜欢VS 中的HgSccPackage),更新到修订分支头,更改,提交,合并

顺便说一句,带有书签/克隆/分支的分支对于任何规模的团队都以相同(好)的方式工作 - 这是一个品味问题

于 2012-11-07T07:39:50.160 回答
1

你混合了一些概念,我猜你有 SVN 背景?

只是为了回答您的问题,要“取回 IDE 中的代码”,您需要“更新”到以前的版本。但这是考虑到您已经克隆了存储库。你的问题是关于如何克隆..?正如您所问的,没有先克隆就没有其他方法。克隆是在本地拥有 HG 存储库的第一步。克隆后,您可以提交和推送更改或拉取和更新。

为了进一步扩展答案并考虑到您将使用 Mercurial,您应该执行以下操作:

  • 阅读:http ://hginit.com/ - 伟大的 HG(教程),由 Joel Spolsky 亲自编写!HG 及其概念简介。你需要很好地理解这一点,因为现在你正在做很多猜测、假设和思考:) HG/Git 与 SVN 不同,并且在乞求时,这些概念可能难以理解和习惯。

  • 对于您的项目和您的问题,有一个名为“dev”或“trunk”或“version X”等的分支,您将在其中提交所有新更改。

  • 有一个名为“live”等的分支,它将代表当前的“live”版本。这样,当您需要及时恢复到实时版本并对其进行快速修复时,您将“更新”到该“实时”分支的尖端,丢弃所有本地更改(在您提交到主干之后! 当然)。

  • 将版本上线时,您将需要(假设所有更改都已提交!):更新到实时分支,然后将版本 X 合并到本地(本地为实时)。这会将您的 versionX 分支包含在 live 中 - 这是您此时需要的。然后,要么更新回版本 X 分支,要么创建一个新分支 - 版本 X+1。这将处理版本并保持分支分开。

  • 因为您使用的是 VS - 安装http://visualhg.codeplex.com/。HG 源代码控制集成到 VS。

于 2012-11-07T06:48:50.500 回答