Пожалуйста, предложите лучший рабочий процесс в Mercurial - PullRequest
5 голосов
/ 20 сентября 2009

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

Вот что я делаю после того, как я настроил проект в Mercurial и уже выполнил мой первый коммит.

  1. Внесите некоторые изменения в файл и приведите его в состояние, в котором работает небольшое улучшение
  2. hg commit -m "improvement A works"
  3. Внесите некоторые изменения в тот же файл и приведите его в состояние, в котором работает следующее незначительное улучшение.
  4. hg commit -m "improvement B works"
  5. Проверьте, все ли незначительные улучшения в совокупности работают с одной незначительной функцией.
  6. hg commit -m "feature A works"

Если я обнаружил ошибку, допущенную в «улучшении А», я открою историю (с помощью визуального плагина Netbeans Mercurial), скопирую и вставлю часть кода обратно в мою текущую версию и начну заново оттуда.

Это не похоже на хорошую систему - я буду признателен за любые предложения.

Ответы [ 3 ]

10 голосов
/ 20 сентября 2009

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

  1. Создание ветви для объекта А.
  2. Завершите работу по улучшению A и зафиксируйте.
  3. Завершите работу по улучшению B и зафиксируйте.
  4. Когда функция, кажется, работает, объедините ветвь функции A с магистралью.

Если вы обнаружите ошибку в улучшении функции A, вместо того, чтобы начать сначала, вы переключитесь на ветку функции A и выполните следующее:

  1. Исправить улучшение A и зафиксировать.
  2. Объедините ветвь функции A в ствол.
7 голосов
/ 20 сентября 2009

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

Шаблон рабочего процесса будет:

  1. Создать ветку для улучшения A
  2. Завершить работу для улучшения A и проверки
  3. Тест изменений и объединение обратно в транк в случае успеха
  4. Создать ветку для улучшения B
  5. Завершить работу по улучшению B и проверить
  6. Проверка изменений и объединение обратно в транк в случае успеха

Если вы обнаружите ошибку, вы можете отказаться от ветви (или исправить ошибку в ветви до слияния обратно в транк).

4 голосов
/ 08 ноября 2010

Я не согласен с подходом ветвей. Если параллельной разработки не требуется, зачем добавлять сложность веток? Нет ничего плохого в маленьких коммитах «контрольных точек». Теги могут использоваться для указания важных коммитов, которые могут быть более понятными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...