Итак, прямо сейчас я изучаю Ruby on Rails и работаю над книгой «Гибкая веб-разработка с Rails». Я также решил, что хочу попробовать 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, все кажется хорошо, и даже веб-интерфейс показывает соответствующие ветки.
Подводя итог, мой вопрос прост: правильно ли я делаю это? Есть ли более подходящий способ сделать это с помощью Mercurial (т. Е. «Mercurial way»)? Честно говоря, я просто хочу, чтобы репозиторий служил резервной копией. Я фанат распределенной модели SCM, но мне кажется, что форсировать ее «грязно». Любое понимание очень ценится! Заранее спасибо.