Статьи

Mercurial Guide


Версия 1.41, 29.03.2013 

Краткое и простое руководство / руководство по Mercurial — для работы с плагином для Eclipse

Mercurial — это распределенная система контроля версий. Каждый пользователь имеет ревизии в своем локальном хранилище. Существует также один общий репозиторий, обычно размещаемый в Интернете. Mercurial удобен для командной работы, а также для работы в одиночку, когда вы можете легко вернуться к старой версии проекта.

Важное замечание: Прежде чем начать работу с Mercurial, вам следует сначала прочитать все руководство, особенно правила работы в конце. Также рекомендуется сохранить резервную копию файлов вручную (хотя и не обязательно).

Есть много способов использовать Mercurial. В этой статье мы объясним, как использовать Mercurial в проекте Java с плагином для Eclipse.

Установка Mercurial и Eclipse Plug-In

Windows

Загрузите Mercurial с
http://mercurial.selenic.com/downloads/ , установите и убедитесь, что выбран второй вариант. Добавьте путь установки к поисковому пути.

Нажмите «
Готово », и все готово. Откройте «
Cmd » и введите:

hg --version

Теперь все готово. Mercurial устанавливается на Windows. (Теперь вы убедились , что вы можете использовать его из командной строки в Windows)

Ubuntu (Linux)

Sudo APT-получить установку ртутный —version рт.ст.

Eclipse Plug-In в Eclipse , перейдите к
Help / Установка нового программного обеспечения и установите со следующего сайта обновления:
http://cbes.javaforge.com/update.

Это может занять некоторое время. Кроме того , если есть проблема в
Intallation , вы можете снять второй вариант и повторите попытку.

Если при установке возникла проблема, загрузите com.vectrace.MercurialEclipse_xxx.jar с
http://javaforge.com/dir/76467,закройте Eclipse, поместите в папку, в которую вы установили Eclipse, в разделе плагинов, например, Eclipse \ plugins, и снова запустите Eclipse. Это будет установлено.

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

Для пользователя, который изначально создал проект

  • Создайте новый проект Java в Eclipse, щелкните правой кнопкой мыши по нему: Team / Share Project … Это приведет к появлению звезды рядом с проектом

    и подтверждению.

  • Создайте репозиторий в Интернете, например, на одном из следующих сайтов:
    http://www.selenic.com/mercurial/wiki/index.cgi/MercurialHosting
    (код Google, Codeplex и т. Д.) , Обратите внимание на адрес клона, который имеют сайты дать вам)

Теперь посмотрим пример использования репозитория.

Создайте класс и напишите что-нибудь, например, «try1» в качестве комментария. Теперь щелкните правой кнопкой мыши на Project / Team / Commit.

Откроется окно, напишите ваше сообщение о коммите (важно! Так что при переходе на другую ревизию изменения будут быстро сброшены), проверьте все файлы и подтвердите. Теперь ревизия сохраняется в локальном хранилище на вашем компьютере.

Опять же, щелкните правой кнопкой мыши по проекту, выберите Team / Push и введите адрес проекта клона из интернет-хранилища, указав свое имя пользователя и пароль, и подтвердите.

Теперь ревизии с вашего компьютера загружаются в общий репозиторий в Интернете.

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

Щелкните правой кнопкой мыши по проекту и выберите Team / Pull.

Проверьте обновление (проверено по умолчанию), это рекомендуется. Теперь ревизия из интернет-репозитория загружается в ваш локальный репозиторий, и, если нет конфликтов (например, работа с одним файлом в одно и то же время), все необходимые файлы будут обновлены. Если хочешь — делай коммит.

Для пользователей, работающих над существующим проектом

Более удобный вариант, но вызывает иерархию проекта (на левой стороне ) , чтобы выглядеть немного different.Using Файл / Импорт / Mercurial репозиторий / Clone с помощью Mercurial .

Введите адрес проекта клона и нажмите «Подтвердить».

В меню «Команда» имеется множество параметров, таких как параметры веток и слияния, которые могут быть проблематичными (см. Ниже), но необходимыми.

Важные рабочие правила

Без соблюдения этих правил работа с Mercurial может быть очень неприятной и вызывать проблемы, главным образом при попытке слияния . На самом деле, вариант слияния может быть проблематичным даже при соблюдении этих правил!

Вы не создать ситуацию , когда более чем один пользователь , работающий на том же файле в то же время (Что случилось с этим файлом на слияния и какой файл будет выбран?)

Краткие объяснения действий:

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

Нажмите
Загрузить все ревизии из вашего локального хранилища в Интернет.

Прицепные
Заметим, что это значение только для спуска, без проверки опции слияния / обновления, не слияния впоследствии
Скачать все изменения , которые другие пользователи загрузили в локальный репозиторий с сервера (общий репозиторий). Если выбран вариант слияния, он объединяет вашу ревизию с последними изменениями.
Если проверено обновление (рекомендуется), изменения из хранилища будут происходить на вашем компьютере. Вы должны обновить перед началом работы.

Переключитесь на
Убедитесь, чтобы совершить сначала!

Sведьмдля другой ревизии. Это очень мощный вариант, который можно использовать очень часто. Когда вы находитесь на определенной ревизии и хотите увидеть более старую ревизию — простопереключитесьна нужную ревизию, и вы ее увидите. Тем не менее, убедитесь, что в следующий раз вы делаетекоммит(последнюю) ревизию.

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

Каждый раз, когда вы работаете, прежде чем начать что-то менять, если у вас нет последней ревизии, — потяните, а затем объедините с последней ревизией.

Когда вы внесли свои изменения, сделайте коммит и нажмите. Рекомендуется делать это время от времени.

Когда вы нажимаете или вытягиваете, вы, вероятно, можете проверить обе опции: «прервать по истечении времени ожидания».

Отката
с отката можно отменить изменения , которые были совершены ранее. Это означает, что когда вы хотите переключиться на более старую ревизию, чтобы старая ревизия стала новой ревизией, самой новой ревизией. Это может быть полезно, если вы хотите отменить изменения некоторых из последних ревизий (сохраняя их в хранилище).
Для этого: team -> undo -> backout и выберите следующую ревизию, одну ревизию после ревизии, на которую вы хотите переключиться. Таким образом, родительский вариант выбранной вами ревизии станет новым (без создания новой нежелательной головы, как это может произойти, если вы совершите коммит из более старой ревизии). Вы также можете оставить слияние опция отмечена, а затем объединить некоторые изменения.


разветвление

Вступление

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

Использует, например:

— Если вы хотите попробовать изменить некоторые классы, но не уверены, что это сработает, вы можете попробовать,

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

— Разработчик программного обеспечения в команде разработчиков может работать в своем филиале, а когда он заканчивает, руководитель группы может проверить свою работу, прежде чем она будет объединена с основным источником.

— * Вы создали систему для чего-то. Сейчас есть спрос на аналогичный, но с небольшими изменениями. Поэтому вместо создания еще одной копии всего источника — создайте для него ветку.

  * Это иногда не нужно, зависит от конструкции системы.

Создание веток

Есть несколько способов; Я буду обсуждать ветвление с именованными ветвями.

Я буду обсуждать случай, когда есть основной источник и ветви под ним, без их подветвлений. Но это не должно сильно отличаться.

Если он используется в том же хранилище, он добавляет новую голову. Таким образом, пространство, которое занимает источник, не удваивается (поправьте меня, если я здесь не прав)

Чтобы создать ветку в Eclipse: щелкните правой кнопкой мыши проект: team -> Add Branch.

Работа с филиалом

Вы можете регулярно вносить изменения по мере необходимости (щелкните правой кнопкой мыши по проекту: team -> commit).

Объединение изменений из ветки в основной источник (ветка хорошая)

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

щелкните правой кнопкой мыши проект: команда -> объединить — ветви — выберите вновь созданную ветку (обратите внимание, что файлы, которые были изменены в ветке, также будут изменены в основной ветке !!!).

Закрыть / Удалить ветку

Вы можете закрыть ветку по некоторым причинам, например:

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

Для этого:
Когда вы находитесь в последней ревизии ветки, которую вы хотите закрыть: team -> commit -> check «Close named branch».

Это сохранит ветку с ее ревизиями в истории репозитория, но вы не увидите эту ветку на вкладке активных веток.

Теги

Вы можете пометить ревизии для определенной версии проекта, номера патча / обновления и т. Д. ‘
Team -> Tags …

Больше

игнорировать

Если вы хотите игнорировать файл, чтобы он не был загружен в репозиторий при ‘фиксации’:

щелкните правой кнопкой мыши по файлу -> команда -> игнорировать.

Это хорошо, например, для хранения локального файла конфигурации, настроенного по-разному для каждого компьютера / среды.

Если вы получаете сообщение «пересекает ветви», при попытке нажать
«принудительное нажатие» будет работать, но это НЕ рекомендуется! Поэтому он предложил вам сначала объединиться с головой — но обратите внимание на каждый отдельный файл — обратите внимание, что в итоге вы получите фактически нужные файлы с их содержимым.

Веб-интерфейс для проекта

Щелкните правой кнопкой мыши на проекте -> team -> serve.
Затем перейдите по адресу http: // localhost: 8000 / (порт по умолчанию) / http: // localhost: PORTNUMBER / в своем веб-браузере.
Annotate
Эта команда может быть полезна для просмотра конкретных строк, которые каждый пользователь написал в файле. Эту команду можно использовать из плагина Eclipse, но там не все так просто. Таким образом, в командной строке Windows / консоли Linux введите папку проекта, а затем:
hg annotate -u -n FILENAME
или
hg annotate -u FILENAME

Hooks
Mercurial может запускать script / s каждый раз, когда происходит определенное определенное событие Mercurial.
Скрипт для запуска определяется в файле .hg / hgrcв папке проекта. Обратите внимание, что этот файл и Mercurial Hooks не контролируются ревизиями и не распространяются. Таким образом, он определяется только для каждого репозитория отдельно или только для одного (или более) репозитория.
Дополнительная информация:
http://mercurial.selenic.com/wiki/Hook
http://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html
Обратите внимание, что некоторые сайты онлайн-хранилищ предлагают опцию запросить вызов API для каждого PUSH , так что вы можете рассмотреть его вместо хуков, зависит от ваших потребностей.

Архив

Это как экспорт.
Он может создать снимок проекта с определенной ревизией (обычно самой последней).
Для этого введите папку проекта через командную строку / терминал / консоль и введите команду:
hg archive ARCHIVENAME
Или, чтобы указать ревизию:
hg archive -r REVISIONNUMBER ARCHIVENAM
Также можно создать ZIP-архив или архив файлов другого типа. ,

Это также может быть руководство по управлению версиями / распределенной версией для начинающих / начинающих:

Руководство по контролю версий