Це команда 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=[value]" ...]
mr [параметри] дія [параметри ...]
mr [параметри] [онлайн|офлайн]
mr [параметри] запам'ятати дію [параметри ...]
ОПИС
mr це інструмент для керування всіма вашими репозиторіями контролю версій. Він може перевірити, оновити або виконати
інші дії над набором репозиторіїв, як якщо б вони були одним комбінованим сховищем. Це
підтримує будь-яку комбінацію subversion, git, cvs, mercurial, bzr, darcs, fossil та
можна легко додати репозиторії правдивості та підтримку інших систем контролю версій.
mr компакт-дисків у всіх зареєстрованих репозиторіях або нижче ваших робочих
каталог. Або, якщо ви перебуваєте в підкаталозі сховища, яке не містить іншого
зареєстровані репозиторії, він залишиться в цьому каталозі й працюватиме лише в цьому сховищі,
mr налаштовується файлами .mrconfig, які містять перелік сховищ. Вона починається з читання
.mrconfig у вашому домашньому каталозі, і це, у свою чергу, може завантажувати файли .mrconfig
зі сховищ. Він також автоматично шукає файл .mrconfig у поточному
каталогу або в одному з батьківських каталогів.
Ці попередньо визначені команди повинні бути досить знайомі користувачам будь-якого контролю версій
Система:
розрахунок (або спільно)
Перевіряє всі сховища, які ще не вийшли.
оновлення
Оновлює кожен репозиторій із налаштованого віддаленого сховища.
Якщо репозиторій ще не вилучено, він спочатку перевірить його.
статус
Відображає звіт про стан кожного сховища, який показує, які зміни є незафіксованими
присутні в репозиторії. Для розподілених систем контролю версій також показує
нерозгорнуті місцеві філії.
очистити
Роздрукуйте ігноровані файли, файли, що не відстежуються, та іншу непотрібність у робочому каталозі.
Додатковий параметр -f дозволяє видаляти файли, а також друкувати їх.
commit (або ci)
Фіксує зміни до кожного сховища. (За замовчуванням зміни передаються на пульт дистанційного керування
репозиторій також при використанні розподілених систем, таких як git. Якщо вам це не подобається
за замовчуванням, ви можете змінити його у своєму .mrconfig або замість цього використовувати запис.)
Додатковий параметр -m дозволяє вказати повідомлення про фіксацію.
запис
Записує зміни в локальне сховище, але не передає їх на віддалений
сховище. Підтримується лише для розподілених систем контролю версій.
Додатковий параметр -m дозволяє вказати повідомлення про фіксацію.
отримувати
Вибирає з віддаленого сховища кожного сховища, але не оновлює робочий
копія. Підтримується лише для деяких розподілених систем контролю версій.
штовхати
Пересилає внесені локальні зміни до віддаленого сховища. Без операції для централізованих
системи контролю версій.
різниця
Показати відмінність незафіксованих змін.
log Показати журнал фіксації.
шаблон grep
Шукає шаблон у кожному сховищі за допомогою підкоманди grep. Використовує ack-grep on
VCS, які не мають власних.
запустити команду [параметр ...]
Виконує вказану команду в кожному сховищі.
Ці команди також доступні:
bootstrap src [каталог]
Примушує mr отримати вихідний "src" і використовувати його як файл .mrconfig для отримання
сховища, перераховані в ньому, у вказаний каталог.
mr розуміє кілька типів джерел:
URL для curl
"src" може бути URL-адресою, яку розуміє витися.
копіювати через ssh
використовувати СКП для завантаження "src" може мати форму "ssh://[user@]host:file".
локальний файл
Ви можете отримати файл конфігурації іншим способом і передати його шлях як "src".
стандартний вхід
Якщо джерело «src» складається з одного тире «-», конфігураційний файл читається зі стандартного
Вхід
Каталог буде створено, якщо він не існує. Якщо каталог не вказано, файл
буде використовуватися поточний каталог.
Як окремий випадок, якщо джерело "src" включає сховище з ім'ям ".", це перевіряється
у верхній частині вказаного каталогу.
список (або ls)
Перелічіть репозиторії, на які буде діяти mr.
реєструвати
Зареєструйте існуючий репозиторій у файлі 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, або за допомогою пошуку
найближчий відомий у або в батьківському поточному каталозі.
offline
Повідомляє Mr, що він перебуває в автономному режимі. Будь-які команди, які не працюють в автономному режимі, будуть
запам’ятав і повторив спробу, коли містеру сказали, що він онлайн.
онлайн
Містер радить, що він знову в онлайн-режимі. Команди, які не були виконані в автономному режимі
буде повторно запущено.
запам'ятати
Запам’ятайте команду, яку потрібно запустити пізніше, коли mr знову перейде в режим онлайн. Це неявно
переводить mr у автономний режим. Команда може бути будь-якою звичайною командою mr. Це корисно
коли ви знаєте, що команда вийде з ладу через автономний режим, і тому не хочете виконуватися
це взагалі зараз, але просто не забудьте запустити його, коли повернетеся в Інтернет.
допомога
Відображає цю довідку.
Дії можна скорочувати до будь-якого однозначного підрядка, тому "mr st" еквівалентно "mr
статус", а "mr up" еквівалентно "mr update"
Додаткові параметри можуть передаватися до більшості команд і передаються без змін до
базова система контролю версій. Це в основному корисно, якщо будуть діяти репозиторії mr
для всіх використовуйте ту саму систему контролю версій.
ВАРІАНТИ
-d каталог
--каталог каталога
Вказує найвищий каталог mr має працювати. За замовчуванням є поточний
робочий каталог.
-c mrconfig
--config mrconfig
Використовуйте вказаний файл mrconfig. За замовчуванням використовуються обидва ~/.mrconfig а також
шукати .mrconfig файл у поточному каталозі або в одному з його батьківських файлів
каталоги.
-f
--сила
Змусити mr діяти щодо сховищ, які зазвичай пропускаються через їх
configuration.
--force-env
Змусити mr виконувати, навіть якщо встановлено потенційно небезпечні змінні середовища.
-v
-багатослівний
Будьте багатослівними.
-m
--мінімальний
Мінімізуйте вихід. Якщо команда не вдається або є вихід, то буде звичайний вихід
буде показано.
-q
--спокійно
Тихо. Це пригнічує звичайний вихід mr, а також будь-який вихід команд, які
запускаються (включаючи вихід stderr). Якщо команда не виконується, буде показано результат.
-k
--небезпечно
Приймати ненадійні сертифікати SSL під час завантаження.
-s
--статистика
Розгорніть рядок статистичних даних, який відображається в кінці, щоб включити інформацію про точну інформацію
які репозиторії вийшли з ладу та були пропущені, якщо такі є.
-i
--інтерактивні
Інтерактивний режим. Якщо сховище не вдається обробити, буде запущена підоболонка
які можна використовувати для вирішення або дослідження проблеми. Вийдіть з підоболочки, щоб продовжити
пан біг.
-n [число]
--no-recurse [число]
Якщо номер не вказано, просто працюйте зі сховищем для поточного каталогу,
не повертайтеся до глибших сховищ.
Якщо вказано число, буде повторюватися в сховищах щонайбільше стільки
глибокі підкаталоги. Наприклад, за допомогою -n 2 він буде повертатися до ./src/foo, але ні
./src/packages/bar.
-j [число]
--вакансія [кількість]
Паралельно запускайте вказану кількість завдань або необмежену кількість завдань з номером
вказаний номер. Це може значно прискорити такі операції, як оновлення. Це не
рекомендовано для інтерактивних операцій.
Зауважте, що виконання більше 10 завдань одночасно може призвести до порушення з’єднання ssh
межі. Одночасне виконання від 3 до 5 завдань дозволить прискорити оновлення
не навантажуючи машину занадто сильно.
-t
--довіряти всім
Довіряйте всім файлам mrconfig, навіть якщо їх немає в списку ~/.mrtrust. Використовуйте з обережністю.
-p
--шлях
Цей застарілий прапор ігнорується.
MRCONFIG ФАЙЛИ
Ось приклад .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 файл використовує варіант формату файлу INI. Рядки, які починаються з "#".
коментарі. Значення можна продовжити до наступного рядка, зробивши відступ у рядку
пробіл.
Розділ "ЗА УМОВЧАННЯМ" дозволяє встановити значення за замовчуванням для розділів, які йдуть після нього.
Розділ «Псевдонім» дозволяє додавати псевдоніми для дій. Кожне налаштування є псевдонімом, і його
значення — це дія для використання.
Усі інші розділи додають репозиторії. Заголовок розділу вказує каталог, у якому знаходиться
розташоване сховище. Це стосується каталогу, який містить файл mrconfig,
але ви також можете вибрати використання абсолютних шляхів. (Зверніть увагу, що ви можете використовувати середовище
змінні в назвах розділів; вони будуть пропущені через оболонку для розширення. Для
наприклад, "[$HOSTNAME]" або "[${HOSTNAME}foo]").
Усередині розділу кожен параметр визначає команду оболонки, яка виконується для виконання певної дії. Містер
містить обробники за замовчуванням для "оновлення", "статус", "фіксація" та інших стандартних дій.
Зазвичай вам потрібно лише вказати, що робити для «оформлення». Тут ви вказуєте команду
запустити, щоб створити перевірку сховища. Команда буде запущена в
батьківський каталог і має створити каталог сховища. Тому використовуйте "git clone", "svn
checkout», «bzr branch» або «bzr checkout» (для зв’язаної гілки) тощо.
Зауважте, що ці команди оболонки виконуються в середовищі оболонки "set -e", де вони є
додаткові параметри, які ви передаєте, доступні в $@. Усі команди, крім "оформлення".
запускати всередині сховища, хоча не обов’язково у верхній частині його.
Змінна середовища "MR_REPO" встановлюється на шлях до вершини сховища. (Для
дію "реєстр", "MR_REPO" замість цього встановлюється на базову назву каталогу, який
слід створити під час перевірки сховища.)
Змінна середовища "MR_CONFIG" встановлюється на файл .mrconfig, який визначає репозиторію
або, якщо репо ще не міститься у файлі конфігурації, то .mrconfig файл це
слід змінити, щоб зареєструвати репо.
Змінна середовища "MR_ACTION" встановлюється на команду, що виконується (оновлення, оформлення,
і т.д.).
Деякі налаштування мають особливе значення:
пропускати
Якщо "skip" встановлено і його команда повертає true, то mr буде пропускати дію на цьому
сховище. Команді передається назва дії в $1.
Ось два приклади. Перший пропускає репо, якщо mr не керує Джоуї. Другий
використовує функцію hours_since (входить у вбудовану бібліотеку mr's), щоб пропустити оновлення
repo, якщо з останнього оновлення не минуло щонайменше 12 годин.
[мої речі]
розрахунок = ...
skip = тест `whoami` != joey
[лінукс]
розрахунок = ...
skip = [ "$1" = оновлення ] && ! годин_з "$1" 12
Інший спосіб використовувати skip - це для лінивої перевірки. Це змушує mr skip працювати над репо
якщо воно вже не існує. Щоб увімкнути репо, ви повинні явно перевірити його
(за допомогою "mr --force -d foo checkout").
[фу]
розрахунок = ...
пропускати = лінивий
порядок
Налаштування «порядок» можна використовувати для заміни впорядкування сховищ за замовчуванням. The
значення порядку за замовчуванням — 10. Використовуйте менші значення, щоб сховища оброблялися
раніше, а більші значення, щоб сховища оброблялися пізніше.
Зауважте, що якщо репозиторій розташований у підкаталозі іншого сховища, упорядкування
обробляти його раніше не рекомендується.
ланцюг
Якщо "ланцюжок" встановлено і його команда повертає значення "true", то mr спробує завантажити a .mrconfig
файл із кореня сховища.
включати
Якщо встановлено "include", його команда виконується, і вона має вивести додатковий файл mrconfig
зміст. Вміст включається так, ніби він є частиною включаючого файлу.
На відміну від усього іншого, «включати» не потрібно розміщувати в розділі.
mr постачає кілька бібліотек, які можна включити, щоб додати підтримку додаткової версії
речі типу контролю (unison, git-svn, git-fake-bare, git-subtree). Щоб їх включити
все, ви можете використовувати:
включати = cat /usr/share/mr/*
Подробиці дивіться в окремих файлах.
видалено
Якщо встановлено значення "deleted", а його команда повертає true, тоді mr буде розглядати репозиторій як
видалено. Він ніколи насправді не видалить сховище, але попередить, якщо побачить
каталог репозиторію. Це корисно, коли один файл mrconfig є загальним
кількох машин, щоб відстежувати та пам’ятати про видалення старих сховищ.
lib Параметр "lib" може містити деякий код оболонки, який буде запускатися перед кожною командою,
це може бути корисним способом визначення функцій оболонки для використання іншими командами.
На відміну від більшості інших налаштувань, це можна вказати кілька разів, у цьому випадку
фрагменти коду оболонки накопичуються разом.
ремонти
Якщо встановлено «виправлення», його команда запускається щоразу, коли сховище витягується, або
оновлено. Це забезпечує простий спосіб робити такі речі, як виправлення дозволів тощо
налаштовує вміст сховища, коли сховище змінюється.
роботи
Якщо встановлено «завдання», запустіть задану кількість завдань паралельно. Це може дуже
прискорити такі операції, як оновлення.
Зауважте, що виконання більше 10 завдань одночасно може призвести до порушення з’єднання ssh
межі. Одночасне виконання від 3 до 5 завдань дозволить прискорити оновлення
не навантажуючи машину занадто сильно.
VCS_action
Шукаючи команду для виконання певної дії, mr спочатку шукає параметр
з такою ж назвою, що й дія. Якщо це не знайдено, він шукає налаштування з ім’ям
"VCS_action" (підміна в назві системи контролю версій і дії).
Всередині mr має налаштування для "git_update", "svn_update" тощо. Щоб змінити дію
що виконується для даної системи контролю версій, ви можете замінити ці VCS
конкретні дії. Щоб додати нову систему контролю версій, ви можете просто додати спеціальну VCS
дії для цього.
до_ та після_
Якщо встановлено "pre_action", його команда виконується до того, як mr виконає вказану дію.
Аналогічно, команди "post_action" запускаються після того, як mr успішно виконає вказане
дії. Наприклад, «pre_commit» запускається перед фіксацією; "post_update" запускається після
оновлення.
_додати
До будь-якого параметра можна додати суфікс "_append", щоб додати додаткове значення до наявного
значення налаштування. Таким чином, дії можна побудувати накопичувально.
VCS_test
Ім'я системи контролю версій сама визначається запуском кожної визначеної
Дія "VCS_test", поки одна не буде успішною.
НЕДОВІРИ MRCONFIG ФАЙЛИ
Оскільки файли mrconfig можуть містити довільні команди оболонки, вони можуть робити що завгодно. Це
гнучкість хороша, але вона також дозволяє шкідливому файлу mrconfig видалити все
домашній каталог. Такий файл може міститись у сховищі, що ваш main
~/.mrconfig перевіряє. Щоб уникнути занепокоєння щодо злих команд у файлі mrconfig, mr
за замовчуванням читає всі файли mrconfig, крім основного ~/.mrconfig у ненадійному режимі.
У ненадійному режимі файли mrconfig обмежуються виконанням лише відомих безпечних команд (наприклад
"git clone") ретельно перевіреним чином.
Щоб налаштувати mr на довіру іншим файлам mrconfig, укажіть їх у списку ~/.mrtrust. Один файл mrconfig
повинні бути перераховані в кожному рядку. Повинно бути вказано або повне ім’я шляху, або ім’я шляху
починати з ~/ щоб вказати файл відносно вашого домашнього каталогу.
OFFLINE ВХІД Фото
Команда ~/.mrlog файл містить команди, які mr згадав запустити пізніше, тому що
офлайн. Ви можете видалити або відредагувати цей файл, щоб видалити команди або навіть додати інші
команди для запуску 'mr online'. Якщо файл присутній, пан припускає, що він знаходиться в автономному режимі.
Розширення
mr можна розширити для підтримки таких речей, як unison і git-svn. Деякі файли надають таке
розширення доступні в /usr/share/mr/. Подробиці дивіться в документації у файлах
про їх використання.
EXIT СТАТУС
mr повертає відмінний від нуля, якщо команда не вдалася в будь-якому зі сховищ.
Використовуйте mr онлайн за допомогою служб onworks.net