Каковы наилучшие и должны иметь 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.