7

在工作的时候,我做了很多修改。每当代码处于合理的状态时,我都喜欢提交。但并非所有这些提交都很有趣。所以我将这些提交提交到本地磁盘或私人服务器。它看起来像这样:

  • 我早上取包Foo,所以它的版本是FamousSmalltalkGuy.14.
  • 我在早上 (15)、午餐 (16) 和晚上 (17) 在本地提交。现在Foo本地包最多DanielLyons.17
  • 看起来 Famous Smalltalk Guy 将第 15 版推送到 Smalltalkhub。
  • FamousSmalltalkGuy.15我与我的图像中的内容合并,产生DanielLyons.18.

现在我想推DanielLyons.18到 Smalltalkhub。什么是正确的做法?

  1. 复制版本(单击蒙蒂塞洛 UI 中的复制按钮)。

    FamousSmalltalkGuy.15这感觉不对,因为和会有不连续性DanielLyons.18

  2. 在 Smalltalkhub 存储库中提交一个新版本,DanielLyons.15在框中手动写入。

    这感觉不对,因为它似乎混淆了我的本地形象。毕竟,它以前见过DanielLyons.15,这不是。

我确信这里有正确的事情要做,但我不知道它是什么。如果有人能阐明同时协作开发的正确蒙蒂塞洛工作流程,我将不胜感激。谢谢!

4

2 回答 2

5

您应该将所有版本复制到远程存储库,否则您将丢失宝贵的历史记录。目前,由于蒙蒂塞洛的实现方式,它会产生许多与祖先的断开链接,因为人们忘记从本地存储中复制中间版本。是的,版本号很愚蠢。在分布式版本控制中不能有连续的版本号,所以我更喜欢保留提交名称,只需将所有内容复制到远程存储库

于 2014-01-07T08:06:12.623 回答
3

反向移植

Monticello 有一个所谓的向后移植更改功能,它可以让您将在多个提交工厂中积累的更改应用到旧版本上。很少用,呵呵。

分支

另一个过程是在本地创建一个分支,并且仅在最后与您要提交的版本进行合并。

一个蒙蒂塞洛分支是通过附加-branchname到包名来完成的: Foo-DanielLyons.18变成Foo-mybranch-DanielLyons.18

如果蒙蒂塞洛拒绝合并,您可以说“采用为祖先”并指定您的新版本将您的分支原始提交作为祖先。

然后过程如下:

  1. 获取当前版本,比如说Foo-FamousSmalltalkGuy.14
  2. 做你的事情并像这样提交它:
    1. 提交你的版本Foo-myImportantTopic-DanielLyons.15
    2. 提交你的版本Foo-myImportantTopic-DanielLyons.16
    3. 提交你的版本Foo-myImportantTopic-DanielLyons.17
  3. 采用为祖先的版本Foo-FamousSmalltalkGuy.14
  4. 提交到远程作为Foo-DanielLyons.15
于 2014-01-07T14:46:08.207 回答