Sco*_*son 7 version-control mercurial branch
所以现在我正在学习Ruby on Rails,我正在阅读"使用Rails进行敏捷Web开发"一书.我还决定要给Mercurial一个机会,因为我已经阅读了分布式SCM,这似乎是一个理想的情况.但是,我仍然喜欢将我的代码远程推送到我的Linux VPS,只是因为我的硬盘驱动器决定进行潜水.
所以,我的问题特别针对Mercurial中的分支.现在我已经设置了一个远程存储库,我可以轻松地通过SSH推送更改(我甚至设置了一个Nginx FastCGI站点,让我也可以推送).然而,我想要做的是为每个章节创建分支,因为我可以通过这本书来处理我的进度.所以这就是我正在做的事情:
$ hg branch chapter-10 (do chapter 10 stuff) $ hg commit -m "Chapter 10 complete" $ hg update default $ hg merge chapter-10 $ hg commit -m "Merging chapter 10 into default" $ hg push
一旦我执行了push语句,我从Mercurial得到这条消息:
pushing to ssh://myserver/hg/depot searching for changes abort: push creates new remote branch 'chapter-10'! (did you forget to merge? use push -f to force)
所以在这一点上我尝试再做hg merge一次,它告诉我没有什么可以合并,这显然是正确的,因为我刚刚合并它.当我用-f强制推送时,一切看起来都很好,甚至Web界面也显示了合适的分支.
总而言之,我的问题很简单:我这样做是正确的吗?有没有更合适的方法来使用Mercurial(即"Mercurial方式")?老实说,我只是希望存储库充当备份.我是分布式SCM模型的粉丝,但对我来说,强迫推动感觉有点"脏".非常感谢任何见解!提前致谢.
这push -f是你的案例的正确选择,上个月有一个讨论,当这个" push creates new remote branch"警告弹出时添加该命令:见问题1513.
然而,问题1974(本月)提到了一些不良影响(虽然不是你的情况).
请参阅此翻译文章,了解有关在远程仓库上创建第二个头的更多信息.
更一般的观点是,如果您并行编写章节,则可以使用分支,并且只想在某个(稳定)时间点合并它们
但是如果你的写作过程更加线性,那么你只能使用一个分支,并在此过程中添加一些标记.
但是,如果你回到第10章并添加一些行,即使你已经放置了标签11和12,这将使历史记录更难阅读.因此,在这种情况下,分支仍然是一个好主意.