关于ZAKER 融媒体解决方案 合作 加入

在商品检验之间移动不完整的代码

CocoaChina 11-14

我在台式计算机上签出了代码库并对其进行了一些处理 . 现在我要离开了 , 想要在笔记本电脑上进行这些更改 .

一种解决方案是简单地提交不完整的代码 , 然后将其拉到我的笔记本电脑上 . 但这然后意味着我在回购库中有未编译的代码 , 我想避免这种情况 .

最好的方法是什么?生成并应用补丁?使用 hg 服务可移动不完整的更改?

最佳答案

这是执行此操作的三种方法 . 我将讨论每种方法的优缺点:

选项 1:使用 hg diff 获取显示未提交更改的 diff 文件 , 然后在接收端使用 hg import – nocommit 在不创建新更改集的情况下应用这些更改

> 优点:简单 , 不创建变更集

缺点:实际上并没有像 DVCS 那样使用汞 . 可能无法捕获新添加的文件

选项 2:在发送端进行提交 , 推到接收端 ( 或从接收端拉出 , 或将 hg 捆绑放在闪存驱动器上 ) , 绕过工作服务器 , 在接收端进行更新 , 然后在双方 hg 回滚到消除变更集 ( 但保留变更 .

> 优点:使用推拉功能可以轻松改变各种变化

> 缺点:哈克 . 依赖于回滚 , 该回滚仅适用于 1 级深度 . 不小心拉了两次 , 就不能撤消第一个 .

选项 3:在发送方提交 . 推送到仅您可以访问的开发者仓库 , 然后拉入接收端 . 在事情建立之前 , 不要推动公司回购 , 但是当您推动时 , 推动所有插页式变更集

> 优点:DVCS 的确切含义 . 您的工作顺序已记录并保存

> 缺点:需要设置您自己的克隆

FWIW, 我建议使用选项 3. 每个开发人员的存储库正是 DVCS 的内容 . 如果您的公司不能轻松地在家里和外面访问的服务器上进行设置 , 请向他们指出 , 在记录使开发人员具有完整的修复 / 功能并鼓励开发人员的过程方面 , 其巨大价值频繁地推送到不需要编译的存储库对于日常备份是有好处的 .

最后 , 在完成功能或修复之后 , 您可以随时折叠所有中间变更集 . 我不喜欢这样做 ( 我是向您展示您的工作类型的家伙 ) , 但是方法如下:Can I squash commits in Mercurial?

以上内容由"CocoaChina"上传发布 查看原文

觉得文章不错,微信扫描分享好友

扫码分享