Ветвление с подвижным SCM

Таким образом, прямо сейчас я изучаю Ruby on Rails, и я работаю через книгу "Гибкая веб-разработка с направляющими". Я также решил, что хочу дать Подвижный движение, потому что я читал на распределенном SCM's, и он походит на идеальную ситуацию. Я все еще, однако, предпочитаю продвигать свой код удаленно к моему VPS Linux, просто упаковывают мой жесткий диск, решает прыгнуть в воду.

Так, мой вопрос характерен для ветвления в Подвижном. Прямо сейчас мне открыли удаленный репозиторий, и я могу продвинуть, переключает 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

После того как я выполняю оператор нажатия, я получаю это сообщение от Подвижного:

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, все кажется прекрасным, и даже веб-интерфейс показывает соответствующие ответвления.

Таким образом, мой вопрос прост: я делаю это правильный путь? Существует ли более соответствующий способ сделать это с Подвижным (т.е. "Подвижный путь")? Честно я просто хочу, чтобы репозиторий служил резервным копированием. Я - поклонник распределенной модели SCM, но мне это чувствует вид "грязных" для принуждения нажатий. Любое понимание значительно ценится!Заранее спасибо.

7
задан Scott Anderson 20 January 2010 в 06:25
поделиться

3 ответа

push -f - правильный вариант для вашего случая, и в прошлом месяце обсуждалось добавление этой команды, когда появляется предупреждение « push создает новую удаленную ветку » : см. выпуск 1513 .

Однако в выпуске 1974 г. (в этом месяце) упоминаются некоторые нежелательные эффекты (но не в вашем случае).
См. Эту переведенную статью , чтобы узнать больше о создании второй головы в удаленном репо.


В более общем плане вы можете использовать ветвь, если вы пишете свою главу параллельно, и вы хотите объединить их только в определенный (стабильный) момент времени

Но если ваш процесс написания более линейный, вы можно было использовать только одну ветку и по ходу ставить несколько тегов.
Однако, если вы вернетесь к главе 10 и добавите несколько строк, даже если вы уже разместили теги 11 и 12, это затруднит чтение истории. Так что ветки в этом случае по-прежнему являются хорошей идеей.

6
ответ дан 6 December 2019 в 21:14
поделиться

Я не знаю о вашей конкретной проблеме, но из ваших комментариев, похоже, вы используете филиалы, где вы, вероятно, хотели использовать теги.

Филиалы обычно используются, когда многие люди сотрудничают в том же проекте, и вы хотите создать разделение работы, чтобы один человек мог работать на стабильном кусочке кода, а другой делает что-то экспериментальное, что временно разбивает функциональность. В качестве альтернативы ветви используются для стабилизации для выпуска, в то время как развитие происходит в багажнике.

Теги (или этикетки) используются для в первую очередь создания маркера, обозначающей важное значение для версии кода. Как например, если вы хотите отметить завершение главы 10, вы просто пометите все текущие версии с тегом «Глава-10». Нет необходимости ветви. Вы можете отразить от помеченной версии в любой момент в будущем, если по какой-то причине вам необходимо.

4
ответ дан 6 December 2019 в 21:14
поделиться

В этом случае я чувствую, что это вполне нормально для использования -F для нажатия. Это просто создает новые филиалы, а не головы. Создание удаленных головок - это другое дело целиком.

2
ответ дан 6 December 2019 в 21:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: