mercurial: меньше дублирования в файле hgrc - PullRequest
4 голосов
/ 21 мая 2010

Я использую Hg для некоторых проектов на своем хостинге кода Google. Для каждого проекта я установил в разделе [auth] .hgrc имя пользователя / пароль, которые нужно нажимать, не спрашивая пароль Но это много дублирования, как:

[auth]
proj1.prefix = ... 111
proj1.username = google code username
proj1.password = google code password

proj2.prefix = ... 222
proj2.username = google code username
proj2.password = google code password

Можно ли это как-то делать с меньшим количеством дубликатов? Может быть, установить переменную в hgrc и ссылаться на нее из всех строк имени пользователя / пароля?

Заранее спасибо за помощь

Ответы [ 4 ]

4 голосов
/ 04 июня 2010

из auth раздел в hgrc:

формат: <name>.<argument> = <value>, где <name> используется для группировки аргументов в записи аутентификации.

<name>.prefix: используется аутентификационная запись с самым длинным совпадающим префиксом

Следовательно, достаточно одной записи для code.google.com. Также представляет интерес %include file, поэтому вы можете хранить обычные вещи в отдельных файлах и включать их в любую hgrc.

2 голосов
/ 21 мая 2010

hgrc файлы не поддерживают переменные в качестве значения для свойств.

Вы можете иметь несколько .rc файлов для ваших конфигурационных файлов Mercurial thoug

*.rc файлы из одного каталога читаются в алфавитном порядке, более поздние имеют приоритет над более ранними

Это означает, что вы можете иметь:

  • один основной файл hgrc
  • один шаблон файл для аутентификации проекта
  • один скрипт, способный генерировать несколько proj.rc файлов, по одному на проект.

Еще есть дублирование, но оно, по крайней мере, сгенерировано для вас.

1 голос
/ 06 января 2013

Просто

[ui]
username = Ivan Pupkin <ivan.pupkin@gmail.com>
verbose = True

[auth]
googlecode.prefix = https://code.google.com/
googlecode.username = username
googlecode.password = password

Я проверяю это на hg 2.3.2:)

0 голосов
/ 07 июня 2011

Различные проекты Google Code от одного и того же пользователя имеют разный префикс, поэтому вы не можете использовать атрибут префикса в разделе auth hgrc.

Но вы можете сделать это по-другому. Напишите ~ / .hgrc так:

[auth]
gc.username = google code username
gc.password = google code password

А затем для каждого проекта создайте PROJECTDIR / hgrc / .hgrc, который выглядит следующим образом:

[paths]
default = https://PROJECTNAME.googlecode.com/hg/

[auth]
gc.username = https://PROJECTNAME.googlecode.com/hg/

Важно, чтобы имя записи (в данном случае gc) было одинаковым между .hgrc и проектом hgrc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...