Это команда mr, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
mr - инструмент для управления всеми вашими репозиториями для контроля версий
СИНТАКСИС
mr [варианты] оформить заказ
mr [параметры] обновить
mr [параметры] статус
mr [параметры] очистить [-f]
mr [параметры] фиксация [-m "сообщение"]
mr [параметры] запись [-m "сообщение"]
mr [параметры] получить
mr [параметры] нажать
mr [параметры] разница
mr [параметры] журнал
mr [параметры] шаблон grep
mr [параметры] запустить команду [параметр ...]
mr [параметры] bootstrap src [каталог]
mr [опции] зарегистрировать [репозиторий]
mr [параметры] раздел конфигурации ["setting = [значение]" ...]
mr [параметры] действие [параметры ...]
mr [варианты] [онлайн | офлайн]
mr [параметры] запомнить действие [параметры ...]
ОПИСАНИЕ
mr это инструмент для управления всеми вашими репозиториями для контроля версий. Он может проверять, обновлять или выполнять
другие действия с набором репозиториев, как если бы они были одним объединенным репозиторием. Это
поддерживает любую комбинацию Subversion, git, cvs, mercurial, bzr, darcs, fossil и
могут быть легко добавлены репозитории достоверности и поддержка других систем контроля версий.
mr компакт-дисков и работает со всеми зарегистрированными репозиториями на уровне вашей рабочей
каталог. Или, если вы находитесь в подкаталоге репозитория, который не содержит других
зарегистрированные репозитории, он останется в этом каталоге и будет работать только с этим репозиторием,
mr настраивается с помощью файлов .mrconfig, в которых перечислены репозитории. Он начинается с чтения
.mrconfig в вашем домашнем каталоге, и он, в свою очередь, может загружать файлы .mrconfig по цепочке
из репозиториев. Он также автоматически ищет файл .mrconfig в текущем
каталог или в одном из его родительских каталогов.
Эти предопределенные команды должны быть хорошо знакомы пользователям любого управления версиями.
система:
касса (или совместно)
Проверяет все репозитории, которые еще не были проверены.
обновление
Обновляет каждый репозиторий из настроенного удаленного репозитория.
Если репозиторий еще не зарегистрирован, он сначала проверяет его.
статус
Отображает отчет о состоянии для каждого репозитория, показывая, какие незафиксированные изменения
присутствует в репозитории. Для распределенных систем контроля версий также показывает
неотталкиваемые местные отделения.
чистым
Печатать проигнорированные файлы, неотслеживаемые файлы и прочую ерунду в рабочем каталоге.
Необязательный параметр -f позволяет удалять файлы, а также печатать их.
совершить (или ci)
Фиксирует изменения в каждом репозитории. (По умолчанию изменения отправляются на удаленный
репозиторий также при использовании распределенных систем, таких как git. Если тебе это не нравится
по умолчанию, вы можете изменить его в своем .mrconfig или использовать вместо него запись.)
Необязательный параметр -m позволяет указать сообщение фиксации.
запись
Записывает изменения в локальный репозиторий, но не отправляет их на удаленный
репозиторий. Поддерживается только для распределенных систем контроля версий.
Необязательный параметр -m позволяет указать сообщение фиксации.
получать
Выбирает из удаленного репозитория каждого репозитория, но не обновляет рабочие
копировать. Поддерживается только для некоторых распределенных систем контроля версий.
протолкнуть.
Отправляет зафиксированные локальные изменения в удаленный репозиторий. Запрет для централизованного
системы контроля версий.
Разница
Показать разницу незафиксированных изменений.
log Показать журнал фиксации.
шаблон grep
Ищет шаблон в каждом репозитории с помощью подкоманды grep. Использует ack-grep на
VCS, у которых нет своей.
выполнить команду [параметр ...]
Запускает указанную команду в каждом репозитории.
Также доступны эти команды:
bootstrap src [каталог]
Заставляет mr получить исходный "src" и использовать его как файл .mrconfig для проверки
перечисленные в нем репозитории в указанный каталог.
mr понимает несколько типов источников:
URL для curl
"src" может быть URL-адресом, понятным виться.
копировать через ssh
Использовать УПП для загрузки "src" может иметь форму "ssh: // [user @] host: file".
локальный файл
Вы можете получить файл конфигурации другими способами и передать его путь как "src".
стандартный ввод
Если исходный "src" состоит из одного дефиса "-", конфигурационный файл читается из стандартного
вход.
Каталог будет создан, если он не существует. Если каталог не указан,
будет использоваться текущий каталог.
В особом случае, если источник «src» включает репозиторий с именем «.», Это проверяется.
в начало указанного каталога.
список (или ls)
Составьте список репозиториев, с которыми будет работать мистер.
зарегистрироваться
Зарегистрируйте существующий репозиторий в файле mrconfig. По умолчанию репозиторий в
текущий каталог зарегистрирован, или вы можете указать каталог для регистрации.
Изменяемый файл mrconfig выбирается либо с помощью опции -c, либо путем поиска
для ближайшего известного в или в родительском элементе текущего каталога.
конфиг
Добавляет, изменяет, удаляет или печатает значение из файла mrconfig. Следующий параметр -
имя раздела, в котором находится значение. Чтобы добавить или изменить значения, используйте один или несколько
экземпляры "setting = value". Используйте "setting =", чтобы удалить настройку. Используйте просто "настройку"
чтобы получить значение этого параметра.
Например, чтобы добавить (или отредактировать) репозиторий в src / foo:
mr config src / foo checkout = "svn co svn: //example.com/foo/trunk foo"
Чтобы показать команду, которую mr использует для обновления репозитория в src / foo:
mr config src / foo обновление
Чтобы увидеть встроенную библиотеку функций оболочки, содержащуюся в mr:
mr config ПО УМОЛЧАНИЮ lib
Используемый файл mrconfig выбирается либо с помощью опции -c, либо путем поиска
ближайший из известных в родительском каталоге текущего каталога.
оффлайн
Сообщает мистеру, что он находится в автономном режиме. Любые команды, которые не работают в автономном режиме, будут
вспомнил и повторил попытку, когда мистеру сказали, что он онлайн.
онлайн
Советует мистеру, что он снова в онлайн-режиме. Команды, которые не удалось выполнить в автономном режиме
будет повторно запущен.
помнить
Запомните команду, которая будет запущена позже, когда мистер снова войдет в онлайн-режим. Это неявно
переводит мистера в автономный режим. Команда может быть любой обычной командой mr. Это полезно
когда вы знаете, что команда потерпит неудачу из-за того, что находится в автономном режиме, и поэтому не хотите запускать
это прямо сейчас вообще, но просто не забудьте запустить его, когда вы вернетесь в онлайн.
помощь
Отображает эту справку.
Действия могут быть сокращены до любой однозначной подстроки, поэтому «mr st» эквивалентно «mr
status ", а" mr up "эквивалентно" mr update "
Дополнительные параметры могут быть переданы большинству команд и передаются без изменений в
базовая система контроля версий. Это в основном полезно, если репозитории mr будут действовать
на всех используется одна и та же система контроля версий.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
-d каталог
--directory каталог
Задает самый верхний каталог, который mr должен работать. По умолчанию используется текущий
рабочий каталог.
-c мрконфиг
--config мрконфигурация
Используйте указанный файл mrconfig. По умолчанию используются оба ~ / .mrconfig так же как и сигнал
искать .mrconfig файл в текущем каталоге или в одном из его родительских
каталоги.
-f
--сила
Заставить mr воздействовать на репозитории, которые обычно пропускаются из-за их
конфигурации.
--force-env
Заставить mr выполнить, даже если установлены потенциально опасные переменные среды.
-v
--подробный
Будьте многословны.
-m
- минимальный
Сведите к минимуму объем вывода. Если команда не выполняется или есть какой-либо вывод, то обычный вывод будет
быть показано.
-q
--тихий
Будь спокоен. Это подавляет обычный вывод mr, а также любой вывод команд, которые
выполняются (включая вывод stderr). Если команда не удалась, вывод будет показан.
-k
--ненадежный
При загрузке принимайте ненадежные сертификаты SSL.
-s
--статистика
Разверните строку статистики, отображаемую в конце, чтобы включить информацию о точном
какие репозитории вышли из строя и были пропущены, если таковые имеются.
-i
- интерактивный
Интерактивный режим. Если репозиторий не удалось обработать, будет запущена подоболочка
который вы можете использовать для решения или исследования проблемы. Выйдите из подоболочки, чтобы продолжить
Мистер Беги.
-n [число]
--no-recurse [число]
Если номер не указан, просто работайте с репозиторием для текущего каталога,
не возвращайтесь в более глубокие репозитории.
Если число указано, будет рекурсивно в репозитории не более этого количества
подкаталоги глубоко. Например, с -n 2 он рекурсивно перейдет в ./src/foo, но не
./src/пакеты/бар.
-j [число]
--jobs [число]
Запустите указанное количество заданий параллельно или неограниченное количество заданий без
номер указан. Это может значительно ускорить такие операции, как обновления. Нет
рекомендуется для интерактивных операций.
Обратите внимание, что одновременное выполнение более 10 заданий может нарушить соединение ssh.
пределы. Выполнение от 3 до 5 заданий одновременно даст хорошее ускорение обновлений.
не загружая машину слишком сильно.
-t
- доверять всем
Доверяйте всем файлам mrconfig, даже если они не указаны в ~ / .mrtrust. Используйте с осторожностью.
-p
--дорожка
Этот устаревший флаг игнорируется.
МРКОНФИГ FILES
Вот пример .mrconfig файл:
[SRC]
checkout = svn checkout svn: //svn.example.com/src/trunk src
цепь = правда
[SRC / Linux-2.6]
checkout = git clone git: //git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git &&
компакт-диск linux-2.6 &&
git checkout -b mybranch origin / master
Команда .mrconfig file использует вариант формата файла INI. Строки, начинающиеся с "#":
Комментарии. Значения можно продолжить до следующей строки, сделав отступ строки с помощью
пробел.
Раздел «ПО УМОЛЧАНИЮ» позволяет установить значения по умолчанию для разделов, следующих за ним.
Раздел «АЛИАС» позволяет добавлять псевдонимы для действий. Каждый параметр является псевдонимом, и его
значение - это действие, которое нужно использовать.
Все остальные разделы добавляют репозитории. В заголовке раздела указывается каталог, в котором
репозиторий находится. Это относительно каталога, содержащего файл mrconfig,
но вы также можете использовать абсолютные пути. (Обратите внимание, что вы можете использовать среду
переменные в названиях разделов; они будут пропущены через оболочку для расширения. За
например, "[$ HOSTNAME]" или "[$ {HOSTNAME} foo]").
Внутри раздела каждый параметр определяет команду оболочки, запускаемую для обработки заданного действия. Мистер
содержит обработчики по умолчанию для «обновления», «статуса», «фиксации» и других стандартных действий.
Обычно вам нужно только указать, что делать для «оформления заказа». Здесь вы указываете команду
для запуска, чтобы создать кассу репозитория. Команда будет запущена в
родительский каталог и должен создать каталог репозитория. Так что используйте "git clone", "svn
checkout "," bzr branch "или" bzr checkout "(для связанной ветви) и т. д.
Обратите внимание, что эти команды оболочки запускаются в среде оболочки "set -e", где любой
дополнительные параметры, которые вы передаете, доступны в $ @. Все команды, кроме "checkout", являются
работать внутри репозитория, хотя и не обязательно в его верхней части.
Переменная среды «MR_REPO» установлена на путь к началу репозитория. (За
действие "зарегистрировать", "MR_REPO" вместо этого устанавливается на базовое имя каталога, который
должен быть создан при извлечении репозитория.)
Переменная среды "MR_CONFIG" установлена в файл .mrconfig, который определяет репо.
выполняются действия, или, если репо еще не находится в файле конфигурации, .mrconfig файл, который
необходимо изменить, чтобы зарегистрировать репо.
Переменная среды "MR_ACTION" установлена на выполняемую команду (обновление, проверка,
и т.д.).
Некоторые настройки имеют особое значение:
пропускать
Если "пропустить" установлен и его команда возвращает истину, то mr не буду действовать на этом
репозиторий. Команде передается имя действия в $ 1.
Вот два примера. Первый пропускает репо, если мистер не управляется Джоуи. Секунда
использует функцию hours_since (входит в встроенную библиотеку mr), чтобы пропустить обновление
репо, если с момента последнего обновления не прошло как минимум 12 часов.
[мои вещи]
касса = ...
skip = test `whoami`! = joey
[Linux]
касса = ...
skip = ["$ 1" = обновить] &&! hours_since "$ 1" 12
Другой способ использования пропуска - это отложенная оплата. Это заставляет мистера Пропуска работать с репо.
если он еще не существует. Чтобы включить репо, вы должны явно проверить его
(используя "mr --force -d foo checkout").
[фу]
касса = ...
skip = ленивый
заказ
Параметр «порядок» может использоваться для переопределения порядка расположения репозиториев по умолчанию. В
значение порядка по умолчанию - 10. Используйте меньшие значения, чтобы репозитории обрабатывались.
раньше и большие значения, чтобы репозитории обрабатывались позже.
Обратите внимание, что если репозиторий находится в подкаталоге другого репозитория, заказ
обрабатывать его раньше не рекомендуется.
цепь
Если "цепочка" установлена и ее команда возвращает истину, то mr попытаюсь загрузить .mrconfig
файл из корня репозитория.
включают
Если установлено "include", его команда запускается и должна выводить дополнительный файл mrconfig.
содержание. Контент включается, как если бы он был частью включающего файла.
В отличие от всего остального, "include" не нужно помещать в раздел.
mr поставляется несколько библиотек, которые могут быть включены для добавления поддержки дополнительной версии
элементы типа управления (unison, git-svn, git-fake-bare, git-subtree). Включить их
все, вы можете использовать:
включить = кошка / usr / share / mr / *
Подробности смотрите в отдельных файлах.
удаленный
Если установлено «удалено» и его команда возвращает истину, то mr будет рассматривать репозиторий как
удалено. Он никогда не удалит репозиторий, но предупредит, если увидит
каталог репозитория. Это полезно, когда один файл mrconfig используется совместно
несколько машин, чтобы отслеживать и не забывать удалять старые репозитории.
lib Параметр "lib" может содержать код оболочки, который будет запускаться перед каждой командой,
это может быть полезным способом определения функций оболочки для использования другими командами.
В отличие от большинства других настроек, это можно указать несколько раз, и в этом случае
куски шелл-кода накапливаются вместе.
исправления
Если установлено "fixups", его команда запускается всякий раз, когда репозиторий извлекается, или
обновлено. Это обеспечивает простой способ делать такие вещи, как исправление разрешений и т. Д.
подстраивает содержимое репозитория при каждом изменении репозитория.
работе
Если задано задание, запускать указанное количество заданий параллельно. Это может сильно
ускорить такие операции, как обновления.
Обратите внимание, что одновременное выполнение более 10 заданий может нарушить соединение ssh.
пределы. Выполнение от 3 до 5 заданий одновременно даст хорошее ускорение обновлений.
не загружая машину слишком сильно.
VCS_action
При поиске команды для выполнения определенного действия г-н сначала ищет параметр
с тем же названием, что и действие. Если он не найден, он ищет параметр с именем
«VCS_action» (подставляем в название системы контроля версий и действие).
Внутри mr есть настройки для «git_update», «svn_update» и т. Д. Чтобы изменить действие
который выполняется для данной системы контроля версий, вы можете переопределить эти VCS
конкретные действия. Чтобы добавить новую систему контроля версий, вы можете просто добавить специфичную для VCS
действия для этого.
pre_ и post_
Если установлено «pre_action», его команда выполняется до того, как mr выполнит указанное действие.
Точно так же команды post_action запускаются после того, как mr успешно выполнит указанный
действие. Например, "pre_commit" запускается перед фиксацией; post_update запускается после
обновление.
_append
Любой параметр может быть дополнен суффиксом "_append", чтобы добавить дополнительное значение к существующему
значение настройки. Таким образом действия могут быть построены накопительно.
VCS_тест
Само название системы контроля версий определяется запуском каждого заданного
Действие "VCS_test", пока одно из них не завершится успешно.
Ненадежный МРКОНФИГ FILES
Поскольку файлы mrconfig могут содержать произвольные команды оболочки, они могут делать что угодно. Этот
гибкость - это хорошо, но она также позволяет вредоносному файлу mrconfig удалить весь ваш
домашний каталог. Такой файл может содержаться в репозитории, который ваш основной
~ / .mrconfig проверяет. Чтобы не беспокоиться о злых командах в файле mrconfig, mr
по умолчанию читает все файлы mrconfig, кроме основного ~ / .mrconfig в ненадежном режиме.
В ненадежном режиме файлы mrconfig могут запускать только известные безопасные команды (например,
"git clone") тщательно проверенным способом.
Чтобы настроить MR на доверие другим файлам mrconfig, перечислите их в ~ / .mrtrust. Один файл mrconfig
должны быть указаны в каждой строке. Должен быть указан либо полный путь, либо путь может
начинать с ~/ чтобы указать файл относительно вашего домашнего каталога.
НЕ В СЕТИ ВХОД ФАЙЛОВ
Команда ~ / .mrlog файл содержит команды, которые мистер запомнил для выполнения позже, так как
не в сети. Вы можете удалить или отредактировать этот файл, чтобы удалить команды или даже добавить другие
команды для запуска «мистера онлайн». Если файл присутствует, мистер предполагает, что он находится в автономном режиме.
РАСШИРЕНИЯ
mr можно расширить для поддержки таких вещей, как unison и git-svn. Некоторые файлы, предоставляющие такие
расширения доступны в / usr / share / mr /. Подробную информацию см. В документации к файлам.
об их использовании.
ВЫХОД статус
mr возвращает ненулевое значение, если команда не удалась в любом из репозиториев.
Использование mr онлайн с помощью сервисов onworks.net