Клиент командной строки Mercurial, чтение команд, опций и аргументов из файла? - PullRequest
4 голосов
/ 23 декабря 2010

Есть ли способ попросить Mercurial прочитать большинство / все команды, опции и аргументы, которые я хочу передать из файла ответов, вместо передачи их в командной строке?

Например, вместо этого:

hg commit -m "commit message" --INCLUDE file1 --INCLUDE file2 ...

Я бы создал текстовый файл, содержащий

-m "commit message" --INCLUDE file1 --INCLUDE file2 ...

и затем попросите Mercurial прочитать его с этим (гипотетическим) синтаксисом:

hg commit @responses.txt

Причина, по которой я спрашиваю, состоит в том, что я создаю библиотеку-обертку для .NET вокруг клиента командной строки Mercurial, и этот вопрос на SO заставил меня беспокоиться, что длина командной строки может быть проблемой для меня какой-то момент: Ошибка «Результирующая командная строка для hg.exe too long» в Mercurial .

Ответы [ 2 ]

2 голосов
/ 02 января 2011

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

Используйте внутренний API Mercurial и напишите собственный скрипт-обертку.Вместо того, чтобы пытаться заставить его читать все команды и опции, вам будет намного проще придерживаться своей конкретной цели (т. Е. «Фиксации» и нужных вам опций).

(обратите внимание на предупрежденияна странице API. Если эта оболочка, которую вы создаете, будет распространена среди других людей, изучите вопрос лицензирования и составьте план обработки будущих обновлений Mercurial, которые могут сломать вашу оболочку.)

0 голосов
/ 23 декабря 2010

Вот крутой обходной путь ...

  1. Создайте пустой фиктивный файл ответов в каталоге репозитория .hg, например .hg \ response.

  2. В репозитории .hg \ hgrc добавьте строку

    %include response

  3. Перед выполнением любых операций с репозиторием запишите параметры командной строки в этот файл ответов. Используйте раздел [defaults], чтобы (я знаю, что он устарел), чтобы указать ваши параметры.

    [defaults]
    commit = -m "This is a commit message" -I file1 -I file2 ...

(Согласно поддержке Microsoft , максимальная командная строка составляет 8 191 символ в XP и более поздних версиях. Может быть полезно знать, нужно ли вам даже использовать этот прием.)

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