Monticello:在复制到远程存储库时同步协作开发/正确编号版本的工作流程

时间:2014-01-07 07:21:04

标签: version-control smalltalk pharo monticello

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

  • 我早上收到了包Foo,所以它的版本是FamousSmalltalkGuy.14
  • 我在当地早上(15),午餐(16)和晚上(17)承诺。现在,本地Foo包最多为DanielLyons.17
  • 看起来像Famous Smalltalk Guy将15版推送到Smalltalkhub。
  • 我将FamousSmalltalkGuy.15与我在图片中的内容合并,生成DanielLyons.18

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

  1. 复制版本(单击Monticello UI中的“复制”按钮)。

    这感觉不对,因为FamousSmalltalkGuy.15DanielLyons.18会出现不连续性。

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

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

  3. 我确信这里有正确的做法,但我不知道它是什么。如果有人能够对正确的蒙蒂塞洛工作流程进行同步协作开发,我将非常感激。谢谢!

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

反向移植

Monticello有一个所谓的后端更改功能,可让您应用更改 在几个提交工厂累积到旧版本。很少使用,等等。

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

通过将-branchname附加到包名称来完成Monticello分支: Foo-DanielLyons.18变为Foo-mybranch-DanielLyons.18

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

然后过程如下:

  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
  5. 的身份提交远程控制权