【问题标题】:Monticello: Workflow for simultaneous collaborative development / correctly numbering a version when copying to remote repositoryMonticello:同步协作开发的工作流程/在复制到远程存储库时正确编号版本
【发布时间】:2014-01-07 07:21:04
【问题描述】:
在工作的时候,我做了很多修改。每当代码处于合理的状态时,我都喜欢提交。但并非所有这些提交都很有趣。所以我将这些提交提交到本地磁盘或私人服务器。它看起来像这样:
- 我早上取包
Foo,所以它的版本是FamousSmalltalkGuy.14。
- 我在早上 (15)、午餐 (16) 和晚上 (17) 在本地提交。现在本地打包
Foo 最高可达DanielLyons.17。
- 看起来像 Famous Smalltalk Guy 将版本 15 推送到 Smalltalkhub。
- 我将
FamousSmalltalkGuy.15 与我的图像中的内容合并,生成DanielLyons.18。
现在我想将DanielLyons.18 推送到 Smalltalkhub。什么是正确的做法?
-
复制版本(单击 Monticello UI 中的复制按钮)。
这感觉不对,因为FamousSmalltalkGuy.15 和DanielLyons.18 之间会有不连续性。
-
在 Smalltalkhub 存储库中提交一个新版本,在框中手动写入 DanielLyons.15。
这感觉不对,因为它似乎混淆了我的本地形象。毕竟以前见过DanielLyons.15,这不是。
我确信这里有正确的事情要做,但我不知道它是什么。如果有人能阐明同时协作开发的正确蒙蒂塞洛工作流程,我将不胜感激。谢谢!
【问题讨论】:
标签:
version-control
smalltalk
pharo
monticello
【解决方案1】:
您应该将所有版本复制到远程存储库,否则您将丢失宝贵的历史记录。目前,由于蒙蒂塞洛的实现方式,它会产生许多与祖先的断开链接,因为人们忘记从本地存储中复制中间版本。是的,版本号很愚蠢。在分布式版本控制中不能有连续的版本号,所以我更喜欢保留提交名称,只需将所有内容复制到远程存储库
【解决方案2】:
向后移植
Monticello 有一个所谓的 backport changes 功能,可以让您应用自己的更改
通过多次提交积累到旧版本上。不过很少用。
分支
另一个过程是在本地创建一个分支,然后仅在最后与您要提交的版本进行合并。
通过将 -branchname 附加到包名称来完成蒙蒂塞洛分支:
Foo-DanielLyons.18 变为 Foo-mybranch-DanielLyons.18
如果蒙蒂塞洛拒绝合并,您可以说“采用为祖先”并指定您的新版本将您的分支和作为祖先的原始提交。
然后过程如下:
- 获取当前版本,比如
Foo-FamousSmalltalkGuy.14
- 做你的事情并像这样提交它:
- 提交您的版本
Foo-myImportantTopic-DanielLyons.15
- 提交您的版本
Foo-myImportantTopic-DanielLyons.16
- 提交您的版本
Foo-myImportantTopic-DanielLyons.17
-
领养版本
Foo-FamousSmalltalkGuy.14
- 以
Foo-DanielLyons.15 提交到远程