Как мне "переключиться" с Mercurial



Как мне сделать что svn switch делает, в Mercurial?



то есть изменить мой рабочий каталог, чтобы переключиться на другую ветку в репозитории?

622   5  

5 ответов:

hg update -r<REV>

на обновление команда переключится на указанную ревизию.

команда switch делает две вещи в Subversion:

  1. обновите рабочую копию, чтобы отразить новый URL-адрес в репозитории. Это поведение похоже на 'svn update', и это путь к переместите рабочую копию в ветвь или тег в том же репозитории.

  2. перепишите метаданные URL рабочей копии, чтобы отразить только синтаксические изменения. Это используется при изменении корневого URL репозитория (например, схемы или имя меняется), но ваша рабочая копия по-прежнему отражает то же каталог в том же репозитории.

The hg update foo команда наиболее точно соответствует первой, если вы переключаетесь, скажем,/trunk до /branches/foo в Subversion.

если вы хотите сделать последнее, то просто изменить .hg/hgrc. Вы найдете [paths] раздел, который выглядит так:

[paths]
default = http://example.net/something

и вы можете изменить этот push/pull URL по умолчанию на что-то другое, как вы считаете нужным. Вы можете также добавьте другие записи в этот раздел, если вам часто нужно нажимать/тянуть из других мест. Если вы хотите вытащить из одного места, но нажать на другое, а затем добавить default-push запись.

если вы хотите переключить ветви, сделайте следующее:

сначала проверьте, какие разделы доступны, типа hg branches. Это будет список всех доступных ветках.

Далее определите, над какой веткой вы сейчас работаете, введите hg branch. Это скажет вам, что такое ваша текущая ветвь.

наконец, чтобы переключить ветку (и удалить все локальные изменения), тип hg update -C name-of-branch. Это переключит вас на указанное вами имя филиала.

проверить путем ввода hg branch снова.

для переключения на удаленную ветку 'tip':

hg pull -u <remote_branch>

для местного филиала (уже актуально) просто:

hg update -r <local_branch>

альтернативный ответ, в случае, если под " ветвью "вы подразумеваете" другой клон РЕПО, который живет в некотором произвольном месте в сети": вы не можете.

другими словами, учитывая РЕПО на hg.a.com, и клон этого РЕПО hg.b.com, нет такой команды, как

hg switch hg.b.com .

(используя язык svn там, предполагая, что ваш текущий каталог является корнем клона hg.a.com).

тем не менее, вы можете клонировать hg.a.com, локально клонировать этот клон (который должен быть относительно недорого), а потом вытащить из hg.b.com чтобы забрать любые дополнительные изменения, которые могут там жить.

Comments

    Ничего не найдено.