Ртутная работа в командах - PullRequest
4 голосов
/ 02 июля 2011

Мы новички в Mercurial, прошли тестирование и т. Д., И теперь используем его по-настоящему.

Проблема в том, как мы используем ее в наших командах.

Мы провели некоторое исследование, и эта ссылка выглядит как та же проблема, но решение выглядит несколько сложным для использования на практике.http://blogs.oracle.com/tor/entry/mercurial_tip_checking_in_regularly.

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

Один член командыВнесение больших изменений в «Файл A», это занимает некоторое время, он отрабатывает, вносит изменения локально.

В середине работы над файлом A его просят решить проблему.и исправить проблему в файле B. Это поможет другому разработчику.Как он может это сделать?Он не хочет, чтобы его незавершенные изменения для файла A поступали в гейткипер, но ему нужно было отправить свои изменения в файл B.

Ответы [ 3 ]

6 голосов
/ 02 июля 2011

Пусть разработчик создаст новый локальный каталог с именем File_B_Fix или аналогичный, а затем клонирует общий репозиторий в него.Исправьте файл B, а затем отправьте изменения обратно в общий репозиторий.

1 голос
/ 06 июля 2011

Мне нравится использовать именованные ветви.В настоящее время мы создаем именованную ветвь для каждой новой функции.Затем, если вам нужно исправить ошибку, вы можете перейти к стабильному или по умолчанию (как хотите, чтобы вызвать его) с помощью команды update.Вы также можете использовать клонов.Вот некоторые мысли о различиях: Mercurial: Именованные ветки против нескольких хранилищ и Руководство по ветвлению в Mercurial .

0 голосов
/ 25 сентября 2011

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

В вашем случае этот член команды сделал бы:

hg qinit -c
hg qnew changes-to-fileA  # creates a new patch with the outstanding changes
hg qnew changes-to-fileB  # creates a new empty patch

# work on file B

hg qrefresh               # updates the patch with changes to file B

Прочтите учебник MQ о том, как зафиксировать эти изменения в репо.

Альтернативой этому может быть расширение shelve , которое позволит вам временно отложить все незавершенные изменения, поработать с файлом B, а затем восстановить изменения. Но использование MQ дает вам много дополнительных преимуществ.

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