Каковы наилучшие и должны иметь hg/mercurial расширения?

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

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

См. Использование расширений

Ответ 1

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

Простые, которые вы должны иметь:

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

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

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

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

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

Расширенные расширения я бы не стал:

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

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

Неосновные расширения, заслуживающие изучения:

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

Замененные расширения и перенесены в ядро ​​(info from @durin42):

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

Ответ 2

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

  • Конвертировать: конвертировать в другие системы и из них
  • Mq (Mercurial Queues): обрабатывать изменения как стек патчей
  • Лес: позволяет фиксировать и обновлять многие вложенные репозитории Mercurial сразу
  • Поделиться: для экономии времени и места на диске при работе с аналогичными репозиториями
  • Hgk: дает графическое представление истории
  • График: я всегда печатаю "hg glog", а не "hg log". Аскинский художественный взгляд на историю.
  • Трансплантат: полезно, когда вы хотите объединить несколько наборов изменений из другой ветки. Более новый hg rebase может иметь некоторое перекрытие.
  • Rebase: другой способ справиться с изменениями как набор изменений в верхней части ветки. git пользователям нравится переустанавливать. Может заменить mq для многих случаев использования.
  • Shelve: место для изменения рабочей копии, если вам нужно какое-то время работать над чем-то другим.
  • Закладки. Назовите новейшую фиксацию на определенной ветке. Подобно ветвям git.

Ответ 3

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

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

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

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

Также требуется для меня: hg- git

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

Плагин Mercurial позволяет вам тянуть и нажимать git repos с помощью hg в качестве клиента. Используйте его все время.

Ответ 4

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

Ответ 5

Мой список:

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

  • продувка

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

Менее полезно, но приятно:

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

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

  • коллапс
  • histedit
  • Я также рассматриваю возможность изменения истории редактирования tol, а также

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