2009-12-08 3 views
73

В последнее время я занимался hg/mercurial, а именно в сочетании с Fogcreek's Kiln, и я пытаюсь выяснить, какие должны быть расширения. Его немного сложно просеивать через свой список расширений, потому что мне не интересно тестировать какие-либо багги или непрактичные расширения, даже если их описание звучит потрясающе.Каковы лучшие и обязательные hg/mercurial расширения?

Итак, какие расширения hg вы используете?

См Using Extensions

+0

Возможно, НЕ «deps» - мое первоначальное тестирование делает его слишком багги/новым для использования –

+0

К списку Я также добавил бы [расширение задачи] (https://bitbucket.org/alu/hgtasks/wiki/Home) для управления «задачами кодирования» и [приглашением расширения] (http://mercurial.selenic.com/wiki/PromptExtension) для отображения информации о репозитории в командной строке. Запрос может использовать расширение задачи. Оба они не поставляются с hg. – Paolo

ответ

97

Мой собственный список хит:

простые из них вы должны иметь:

  1. color: раскрасить выход из команд, как diff и status, что делает его легче оценить.
  2. pager: просматривать длинный вывод страницы за раз.
  3. fetch: тянуть, обновлять и сливаться с другого репо за один шаг.
  4. graphlog: отображать графики изменений в вашей оболочке, невероятно полезные для просмотра ветвей в истории журнала.
  5. hgk: просматривать хранилище с графическим интерфейсом (см также TortoiseHg и Murky)

Если вы включите pager, вы должны настроить его, чтобы не мешать с некоторыми командами:

[pager] 
pager = LESS='FSRX' less 
ignore = version, help, update, serve, record 

Промежуточное Расширения Я настоятельно рекомендую (и часто использую):

  1. record: позволяет интерактивно выберете блоки файлов для фиксации - идеально подходит, когда вы находитесь в середине одного набора изменений, и вы в конечном итоге исправляете что-то, что должно иметь свою собственную фиксацию.
  2. extdiff: настроить внешний инструмент сравнения (например, Meld)
  3. share: есть несколько клонов использовать ту же историю Repo

Продвинутая расширения я не был бы без:

  1. mq : управлять стопкой патчей. Очень мощный, позволяет расслоение патчей на вершине дерева.
  2. notify: отправлять уведомления по электронной почте при изменении репо.
  3. rebase: повторно установите локальные изменения поверх новой родительской версии.
  4. largefiles: работать с большими бинарными файлами вне ртутного магазина

Все вышеперечисленное в комплекте с Mercurial, и являются стабильными и хорошо проверенным. Я очень рекомендую их всех.

Непрофильные расширения стоимостью исследования:

  1. shelve: выборочно Отложите изменения (в зернистости скряга) и восстановить их.
  2. acl: выборочно разрешить доступ к различным частям дерева репозитория

Замененных расширений и мигрировал в ядро ​​(информация от @ durin42):

  • forest был были заменена поддержкой subrepo, введенной в v1.3
  • bookmarks находится в ядре и всегда включен
  • transplant заменен graft, ядро ​​команды
  • histedit находится в ядре, в v2.3, но по умолчанию отключена
  • inotify не рекомендуется, так как есть по-видимому, ошибка из-за состояния гонки
+0

Любые другие комментарии к Subrepo vs. Forest? Я не уверен, что любой из них действительно полезен/полезен, что может означать, что я просто «делаю это неправильно». Я особенно заинтересован в надежном улучшении цвета «extern» SVN –

+0

не работает в Windows (http://mercurial.selenic.com/bts/issue1579) – Jerome

+0

@JJBigThoughts: Я недавно начал экспериментировать с поддержкой subrepo, с целью использования его для очень крупного проекта. По мнению авторов Mercurial, поддержка субпоре все еще несколько экспериментальна. В настоящее время он работает так же, как svn: externals, но только несколько команд знают о subrepos. Основы, похоже, хорошо работают, AFAICT. Основное различие заключается в том, что версия каждого подрепортажа фактически закреплена, так как родитель хранит ссылку на ее номер версии, а также местоположение (что не обязательно плохо). – gavinb

10

graphlog и mq особенно вкусны.

  1. Convert: конвертировать и из других систем
  2. Mq (Mercurial Очереди): иметь дело с изменениями как стек патчей
  3. Forest: позволяет совершить и обновлять много вложенных Mercurial репозитории сразу
  4. Доля: чтобы сэкономить время и дисковое пространство при работе с подобными хранилищами
  5. Hgk: дает графическое представление истории
  6. Graphlog: Я всегда типа «рт.ст. GLog» не 'рт.ст. войти. Ассийский вид искусства истории
  7. Трансплантат: полезно, когда вы хотите объединить несколько наборов изменений из другой ветви. Новее hg rebase может иметь некоторое перекрытие.
  8. Rebase: другой способ иметь дело с изменениями в виде набора изменений в верхней части ветки. git пользователям нравится переустанавливать. Может заменить mq для многих случаев использования.
  9. Стеллаж: место для смены изменений рабочей копии, если вам нужно какое-то время работать над чем-то другим.
  10. Закладки: Назовите новейшую фиксацию на определенной ветке. Подобный git филиалов.
+0

graphlog теперь встроен и всегда включен с '-g' для команды журнала (и входящей исходящей IIRC). –

+0

Ry4an: «сейчас» означает в подсказке? Не в 1.4.1 AFAICT. –

+1

Флаг '-g 'для журнала - это включить различия в стиле git, который полностью отличается от' graphlog'. – jamessan

7

Если у вас «Работа с медленным хостом, таким как Bitbucket, крайне важна, progress.В противном случае hg push выглядит он висел: \

1

Мой список:

  1. graphlog. Я использую его гораздо больше, чем hg log. (желаем, он может ограничивать филиалы)

  2. очистка. удалите все файлы не в Mercurial. Я использую это вместо или как чистую версию make clean.

Менее используемые, но красиво:

  • детей (позволяет сказать "Hg дети -r XXX")
  • parentrevspec: позволяет говорить такие вещи, как «Foo ~ 2 = Foo^1^1 = foo ^^ = первый родитель первого родителя foo "

Я продолжаю пытаться использовать инструменты редактирования истории, но продолжаю сталкиваться с ограничениями. I хочу их на работу.

  • коллапс
  • histedit
  • Я считаю перебазироваться в истории редактирования TOL, а

Кстати, будьте осторожны: Hgk и принести в "нелюбимый": https://www.mercurial-scm.org/wiki/UnlovedFeatures. Но тогда SubRepos, не нелюбимый, но особенность последней инстанции, и я использую subrepos.

9

еще не упоминается: mercurial_keyring

https://www.mercurial-scm.org/wiki/KeyringExtension

«Keyring расширения пользуется услугами библиотеки брелока для безопасного хранения паролей аутентификации (HTTP/HTTPS и SMTP) с использованием системы конкретной базы паролей (Gnome Keyring, KDE KWallet , OSXKeyChain, выделенные решения для Win32 и командной строки). "

Я использую ssh для доступа к моим репозиториям на GitHub и Bitbucket, а моя ключевая фраза хранится в брелках. Это расширение позволяет Mercurial получать его, когда это необходимо.

Также требуется для меня: HG-мерзавец

http://hg-git.github.com/

Mercurial плагин позволяет вам тянуть и толкать GIT сделок РЕПО с использованием ртутного столба в качестве клиента. Используйте его все время.

Смежные вопросы