Базовое руководство по веткам (специальные инструкции для Mercurial - Windows) - PullRequest
2 голосов
/ 17 декабря 2011

Я очень новичок в этом бизнесе по управлению версиями и медленно изучаю свой путь.Я научился создавать репозиторий и вносить в него изменения.Сейчас история (для которой я считаю, что контроль версий идеален, хотя я не уверен, что это лучший метод) заключается в следующем:

У меня есть программное обеспечение A. Это общее.

Мне нужноизменить 2 файла в кодовой базе для компании B. Это сделает это программным обеспечением B.

Это единственное изменение, которое мне нужно сделать;после этого я просто хочу продолжить работу над A, как если бы программное обеспечение B. никогда не существовало.

Каков наилучший способ сделать это?Просто экспортируете Software A, модифицируете его и отправляете клиенту?Работаете в репозитории, делаете коммиты, а потом «отступаете»?Я пытался обмануть близкую ветвь и ветку, но либо я слишком туп, чтобы заставить его работать, либо он сломан (я продолжаю получать «ГОЛОВУ УЖЕ ЗАКРЫТО» или что-то в этом роде).

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

Ответы [ 2 ]

6 голосов
/ 17 декабря 2011

OK. Вы можете и иметь действительно использовать ветки Mercurial, по крайней мере, одну дополнительную ветку на клиента

  • Не закрывать филиалы клиентов
  • Используйте отличительные имена

Мне нужно изменить 2 файла в кодовой базе для Компании B. Это сделает это Программным обеспечением B.

  • Редактировать файлы, сохранять изменения.

Shot 1 - before branching

  • Запустите процедуру фиксации, т. Е. В области фиксации нажмите на текст «Branch: default» (который действительно работает как кнопка) и в этой форме выберите второй вариант «Открыть новую именованную ветку», выберите имя ветви, нажмите OK. Это эффективно изменяет ветку для этого (все еще незавершенного) коммита

NewBranch in progress

  • Введите сообщение фиксации, нажмите кнопку фиксации (см. Справа вверху на снимке 2), подтвердите создание новой ветви
  • После того как окно рабочей среды для коммитов покажет вам еще один коммит, а ревизия 1 ( в моем примере ) относится к другой ветке Cust1 (содержимое столбца «Ветвь» и зеленая метка в наборе изменений «Описание»), ревизия 0 по-прежнему по умолчанию, и мы находимся в active revision 1

We branched code

  • Когда требуется возврат к основной строке - RCНажмите на нужную (последнюю в ветви по умолчанию?) Ревизию в списке изменений и «Обновить» из conext-меню - мы изменим точку, в которой наше зеркало WC репо, до некоторого предыдущего состояния (проверено проверкой содержимого файла)

Updated to older CSet

  • Исправить базовый код, зафиксировать, не трогая опции

Two active branches

  • Если мы изменим версию клиента - обновите его до последней версии cset

Update to branch

редактировать и фиксировать

Commit to branch

0 голосов
/ 17 декабря 2011

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

  1. Создайте новую ветку в вашем хранилище.Этот вопрос SO должен помочь в случае необходимости: Как выполнить ветвление с помощью TortoiseHG
  2. Внести необходимые изменения
  3. Зафиксировать их в новой именованной ветви
  4. Вернитесь к ветке по умолчанию
  5. Забудьте о ветке, которую вы создали ранее (Вы также можете закрыть ее, если необходимо)

Вам могут помочь следующие ссылки:

  1. http://blog.caraulean.com/2011/03/09/working-with-named-branches-using-tortoisehg-2-0-illustrated-workflow/
  2. TortoiseHg и несколько филиалов в одном репо
...