Este es el comando mr que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
mr - una herramienta para administrar todos sus repositorios de control de versiones
SINOPSIS
mr [opciones] pago
mr [opciones] actualizar
mr [opciones] estado
mr [opciones] limpiar [-f]
mr [opciones] confirmar [-m "mensaje"]
mr [opciones] grabar [-m "mensaje"]
mr [opciones] recuperar
mr [opciones] empujar
mr [opciones] diff
mr [opciones] registro
mr [opciones] patrón grep
mr [opciones] ejecutar comando [param ...]
mr [opciones] bootstrap src [directorio]
mr [opciones] registrar [repositorio]
mr [opciones] sección de configuración ["ajuste = [valor]" ...]
mr [opciones] acción [params ...]
mr [opciones] [en línea | sin conexión]
mr [opciones] recordar acción [params ...]
DESCRIPCIÓN
mr es una herramienta para administrar todos sus repositorios de control de versiones. Puede pagar, actualizar o realizar
otras acciones en un conjunto de repositorios como si fueran un repositorio combinado. Eso
admite cualquier combinación de subversion, git, cvs, mercurial, bzr, darcs, fossil y
Se pueden agregar fácilmente repositorios de veracidad y soporte para otros sistemas de control de versiones.
mr CD en y opera en todos los repositorios registrados en o debajo de su trabajo
directorio. O, si se encuentra en un subdirectorio de un repositorio que no contiene ningún otro
repositorios registrados, permanecerá en ese directorio y funcionará solo en ese repositorio,
mr está configurado por archivos .mrconfig, que enumeran los repositorios. Empieza por leer el
.mrconfig archivo en su directorio de inicio, y esto a su vez puede encadenar la carga de archivos .mrconfig
de repositorios. También busca automáticamente un archivo .mrconfig en el archivo actual.
directorio, o en uno de sus directorios principales.
Estos comandos predefinidos deberían ser bastante familiares para los usuarios de cualquier control de versión.
sistema:
pago (o co)
Comprueba los repositorios que aún no se hayan extraído.
actualización
Actualiza cada repositorio desde su repositorio remoto configurado.
Si un repositorio aún no está desprotegido, primero lo verificará.
estado
Muestra un informe de estado para cada repositorio, que muestra qué cambios no confirmados son
presente en el repositorio. Para sistemas de control de versiones distribuidos, también muestra
sucursales locales sin empujar.
limpia
Imprima archivos ignorados, archivos sin seguimiento y otros cruft en el directorio de trabajo.
El parámetro opcional -f permite eliminar los archivos así como imprimirlos.
cometer (o ci)
Confirma cambios en cada repositorio. (De forma predeterminada, los cambios se envían al control remoto
repositorio también, cuando se utilizan sistemas distribuidos como git. Si no te gusta esto
predeterminado, puede cambiarlo en su .mrconfig, o usar registro en su lugar).
El parámetro opcional -m permite especificar un mensaje de confirmación.
grabar
Registra los cambios en el repositorio local, pero no los envía al repositorio remoto.
repositorio. Solo es compatible con sistemas de control de versiones distribuidos.
El parámetro opcional -m permite especificar un mensaje de confirmación.
ha podido recuperar
Obtiene del repositorio remoto de cada repositorio, pero no actualiza el trabajo
Copiar. Solo es compatible con algunos sistemas de control de versiones distribuidos.
empuje
Envía los cambios locales comprometidos al repositorio remoto. Un no-op para centralizado
sistemas de control de versiones.
diff
Muestra una diferencia de cambios no confirmados.
log Muestra el registro de confirmación.
patrón grep
Busca un patrón en cada repositorio usando el subcomando grep. Utiliza ack-grep en
VCS que no tienen los suyos propios.
ejecutar comando [param ...]
Ejecuta el comando especificado en cada repositorio.
Estos comandos también están disponibles:
bootstrap src [directorio]
Hace que mr recupere el código fuente "src" y lo use como un archivo .mrconfig para verificar el
repositorios enumerados en él, en el directorio especificado.
mr comprende varios tipos de fuentes:
URL para curl
"src" puede ser una URL entendida por rizo.
copiar a través de ssh
Para utilizar scp para descargar, el "src" puede tener la forma "ssh: // [usuario @] host: archivo".
archivo local
Puede recuperar el archivo de configuración por otros medios y pasar su camino como "src".
entrada estándar
Si la fuente "src" consiste en un solo guión "-", el archivo de configuración se lee desde el estándar
entrada.
El directorio se creará si no existe. Si no se especifica ningún directorio, el
se utilizará el directorio actual.
Como caso especial, si la fuente "src" incluye un repositorio llamado ".", Eso está marcado
en la parte superior del directorio especificado.
lista (o ls)
Enumere los repositorios sobre los que actuará el Sr.
Registro
Registre un repositorio existente en un archivo mrconfig. De forma predeterminada, el repositorio en el
el directorio actual está registrado, o puede especificar un directorio para registrar.
El archivo mrconfig que se modifica se elige con la opción -c o mirando
para el conocido más cercano en o en un padre del directorio actual.
config
Agrega, modifica, elimina o imprime un valor de un archivo mrconfig. El siguiente parámetro es
el nombre de la sección en la que se encuentra el valor. Para agregar o modificar valores, utilice uno o más
instancias de "ajuste = valor". Utilice "setting =" para eliminar una configuración. Utilice solo "configuración"
para obtener el valor de ese ajuste.
Por ejemplo, para agregar (o editar) un repositorio en src / foo:
mr config src / foo checkout = "svn co svn: //example.com/foo/trunk foo"
Para mostrar el comando que usa mr para actualizar el repositorio en src / foo:
mr config src / foo actualización
Para ver la biblioteca incorporada de funciones de shell contenidas en mr:
mr config biblioteca DEFAULT
El archivo mrconfig que se utiliza se elige con la opción -c o buscando
el más cercano conocido en o en un padre del directorio actual.
digital fuera de línea.
Avisa al señor que está en modo fuera de línea. Cualquier comando que falle en el modo fuera de línea será
recordado y reintentado cuando se le dice al Sr. que está en línea.
en línea
Avisa al señor que está de nuevo en modo online. Comandos que fallaron mientras estaba en modo fuera de línea
se volverá a ejecutar.
recordarlo
Recuerde un comando, que se ejecutará más tarde cuando mr vuelva a ingresar al modo en línea. Esto implícitamente
pone mr en modo fuera de línea. El comando puede ser cualquier comando mr regular. Esto es útil
cuando sabe que un comando fallará debido a que está fuera de línea y, por lo tanto, no quiere ejecutar
ahora mismo, pero recuerde ejecutarlo cuando vuelva a conectarse.
ayuda
Muestra esta ayuda.
Las acciones se pueden abreviar a cualquier subcadena inequívoca, por lo que "mr st" es equivalente a "mr
status ", y" mr up "equivale a" mr update "
Se pueden pasar parámetros adicionales a la mayoría de los comandos y se pasan sin cambios al
sistema de control de versiones subyacente. Esto es principalmente útil si los repositorios mr actuarán
en todos utilizan el mismo sistema de control de versiones.
OPCIONES
-d directorio
--directorio directorio
Especifica el directorio superior que mr debería funcionar. El valor predeterminado es el actual
directorio de trabajo.
-c mrconfig
--config mrconfig
Utilice el archivo mrconfig especificado. El valor predeterminado es usar ambos ~ / .mrconfig al igual que
busca un .mrconfig archivo en el directorio actual, o en uno de sus padres
directorios.
-f
--fuerza
Obligar al señor a actuar en repositorios que normalmente se omitirían debido a su
configuración.
--force-env
Forzar la ejecución de mr aunque se establezcan variables de entorno potencialmente peligrosas.
-v
--verboso
Sea prolijo.
-m
--mínimo
Minimice la producción. Si un comando falla o hay alguna salida, la salida habitual será
ser mostrado.
-q
--tranquilo
Tranquilizarse. Esto suprime la salida habitual de mr, así como cualquier salida de los comandos que
se ejecutan (incluida la salida stderr). Si un comando falla, se mostrará la salida.
-k
--inseguro
Acepte certificados SSL que no sean de confianza al arrancar.
-s
- estadísticas
Expanda la línea de estadísticas que se muestra al final para incluir información sobre exactamente
qué repositorios fallaron y se omitieron, en su caso.
-i
--interactivo
Modo interactivo. Si un repositorio no se puede procesar, se iniciará una subcapa
que puede utilizar para resolver o investigar el problema. Salga del subshell para continuar
el mr run.
-n [número]
--no-recurse [número]
Si no se especifica ningún número, simplemente opere en el repositorio del directorio actual,
no recurra a repositorios más profundos.
Si se especifica un número, recurrirá a los repositorios como máximo esa cantidad
subdirectorios de profundidad. Por ejemplo, con -n 2 recurriría a ./src/foo, pero no
./src/paquetes/bar.
-j [número]
--jobs [número]
Ejecute el número especificado de trabajos en paralelo o un número ilimitado de trabajos sin
número especificado. Esto puede acelerar enormemente operaciones como actualizaciones. No lo es
recomendado para operaciones interactivas.
Tenga en cuenta que es probable que la ejecución de más de 10 trabajos a la vez no funcione correctamente con la conexión ssh.
límites. Ejecutar entre 3 y 5 trabajos a la vez producirá una buena aceleración en las actualizaciones
sin cargar demasiado la máquina.
-t
--Confía en todos nosotros
Confíe en todos los archivos mrconfig incluso si no están listados en ~ / .mrtrust. Úselo con precaución.
-p
--sendero
Esta bandera obsoleta se ignora.
MRCONFIG ARCHIVOS
Aquí hay un ejemplo .mrconfig archivo:
[origen]
checkout = svn checkout svn: //svn.example.com/src/trunk src
cadena = verdadero
[src / linux-2.6]
checkout = git clone git: //git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git &&
cd linux-2.6 &&
git checkout -b mybranch origin / master
La .mrconfig El archivo utiliza una variante del formato de archivo INI. Las líneas que comienzan con "#" son
comentarios. Los valores se pueden continuar en la línea siguiente sangrando la línea con
espacio en blanco.
La sección "DEFAULT" permite establecer valores predeterminados para las secciones que le siguen.
La sección "ALIAS" permite agregar alias para acciones. Cada ajuste es un alias y su
valor es la acción a utilizar.
Todas las demás secciones agregan repositorios. El encabezado de la sección especifica el directorio donde
se encuentra el repositorio. Esto es relativo al directorio que contiene el archivo mrconfig,
pero también puede optar por utilizar rutas absolutas. (Tenga en cuenta que puede utilizar el entorno
variables en los nombres de las secciones; se pasarán a través del caparazón para su expansión. Para
ejemplo, "[$ HOSTNAME]" o "[$ {HOSTNAME} foo]").
Dentro de una sección, cada configuración define un comando de shell que se ejecutará para manejar una acción determinada. señor
contiene controladores predeterminados para "actualizar", "estado", "confirmar" y otras acciones estándar.
Normalmente, solo necesita especificar qué hacer para "pagar". Aquí especificas el comando
ejecutar para crear una comprobación del repositorio. El comando se ejecutará en el
directorio padre y debe crear el directorio del repositorio. Así que usa "git clone", "svn
checkout "," bzr branch "o" bzr checkout "(para una rama vinculada), etc.
Tenga en cuenta que estos comandos de shell se ejecutan en un entorno de shell "set -e", donde cualquier
los parámetros adicionales que pase están disponibles en $ @. Todos los comandos que no sean "pago" son
se ejecutan dentro del repositorio, aunque no necesariamente en la parte superior.
La variable de entorno "MR_REPO" se establece en la ruta a la parte superior del repositorio. (Para
la acción "registrar", "MR_REPO" se establece en su lugar en el nombre base del directorio que
debe crearse al verificar el repositorio).
La variable de entorno "MR_CONFIG" se establece en el archivo .mrconfig que define el repositorio.
sobre el que se actúa, o, si el repositorio aún no está en un archivo de configuración, el .mrconfig archivar eso
debe modificarse para registrar el repositorio.
La variable de entorno "MR_ACTION" se establece en el comando que se está ejecutando (actualización, pago,
etc.).
Algunas configuraciones tienen significados especiales:
omitir
Si se establece "omitir" y su comando devuelve verdadero, entonces mr omitirá actuar sobre eso
repositorio. Al comando se le pasa el nombre de la acción en $ 1.
A continuación se muestran dos ejemplos. El primero omite el repositorio a menos que mr sea ejecutado por joey. El segundo
utiliza la función hours_since (incluida en la biblioteca incorporada de mr) para omitir la actualización del
repositorio a menos que hayan pasado al menos 12 horas desde la última actualización.
[mis cosas]
pago = ...
saltar = prueba `whoami`! = joey
[linux]
pago = ...
skip = ["$ 1" = actualización] &&! horas_desde "$ 1" 12
Otra forma de utilizar la omisión es para un pago perezoso. Esto hace que mr omita operar en un repositorio
a menos que ya exista. Para habilitar el repositorio, debe verificarlo explícitamente
(usando "mr --force -d foo checkout").
[foo]
pago = ...
saltar = perezoso
solicite
La configuración de "orden" se puede utilizar para anular el orden predeterminado de los repositorios. los
el valor de pedido predeterminado es 10. Utilice valores más pequeños para procesar los repositorios
valores anteriores y mayores para que los repositorios se procesen más tarde.
Tenga en cuenta que si un repositorio se encuentra en un subdirectorio de otro repositorio, ordenar
no se recomienda procesarlo antes.
cadena
Si se establece "cadena" y su comando devuelve verdadero, entonces mr intentará cargar un .mrconfig
archivo de la raíz del repositorio.
incluir
Si se establece "incluir", su comando se ejecuta y debería generar un archivo mrconfig adicional
contenido. El contenido se incluye como si fuera parte del archivo incluido.
A diferencia de todo lo demás, "incluir" no necesita colocarse dentro de una sección.
mr envía varias bibliotecas que se pueden incluir para agregar soporte para una versión adicional
controlar cosas de tipo (unison, git-svn, git-fake-bare, git-subtree). Para incluirlos
todos, podrías usar:
incluir = gato / usr / compartir / mr / *
Consulte los archivos individuales para obtener más detalles.
borrado
Si se establece "eliminado" y su comando devuelve verdadero, entonces mr tratará el repositorio como
eliminado. En realidad, nunca eliminará el repositorio, pero advertirá si ve el
directorio del repositorio. Esto es útil cuando se comparte un archivo mrconfig entre
varias máquinas, para realizar un seguimiento y recordar eliminar los repositorios antiguos.
lib La configuración "lib" puede contener algún código de shell que se ejecutará antes de cada comando,
Esta puede ser una forma útil de definir funciones de shell para que las utilicen otros comandos.
A diferencia de la mayoría de las otras configuraciones, esto se puede especificar varias veces, en cuyo caso
fragmentos de código de shell se concatenan de forma acumulativa.
arreglos
Si se configuran "reparaciones", su comando se ejecuta cada vez que se desprotege un repositorio, o
actualizado. Esto proporciona una manera fácil de hacer cosas como arreglos de permisos u otros
ajustes al contenido del repositorio, cada vez que se cambia el repositorio.
recibas nuevas vacantes en tu correo
Si se establece "trabajos", ejecute el número especificado de trabajos en paralelo. Esto puede enormemente
acelerar operaciones como actualizaciones.
Tenga en cuenta que es probable que la ejecución de más de 10 trabajos a la vez no funcione correctamente con la conexión ssh.
límites. Ejecutar entre 3 y 5 trabajos a la vez producirá una buena aceleración en las actualizaciones
sin cargar demasiado la máquina.
acción_VCS
Cuando busca un comando para ejecutar para una acción determinada, el Sr. primero busca una configuración
con el mismo nombre que la acción. Si no se encuentra, busca una configuración llamada
"VCS_action" (sustituyendo el nombre del sistema de control de versiones y la acción).
Internamente, el Sr. tiene configuraciones para "git_update", "svn_update", etc. Para cambiar la acción
que se realiza para un sistema de control de versiones dado, puede anular estos VCS
acciones específicas. Para agregar un nuevo sistema de control de versiones, simplemente puede agregar VCS específico
acciones para ello.
pre y post_
Si se establece "pre_action", su comando se ejecuta antes de que mr realice la acción especificada.
Del mismo modo, los comandos "post_action" se ejecutan después de que mr realiza con éxito lo especificado
acción. Por ejemplo, "pre_commit" se ejecuta antes de confirmar; "post_update" se ejecuta después de
actualización.
_adjuntar
Cualquier configuración puede tener el sufijo "_append", para agregar un valor adicional a la existente
valor del ajuste. De esta forma, las acciones se pueden construir de forma acumulativa.
prueba_VCS
El nombre del sistema de control de versiones se determina en sí mismo ejecutando cada
Acción "VCS_test", hasta que uno tenga éxito.
SIN CONFIANZA MRCONFIG ARCHIVOS
Dado que los archivos mrconfig pueden contener comandos de shell arbitrarios, pueden hacer cualquier cosa. Esta
La flexibilidad es buena, pero también permite que un archivo mrconfig malicioso elimine todo su
directorio de inicio. Dicho archivo podría estar contenido dentro de un repositorio que su
~ / .mrconfig verifica. Para evitar preocupaciones sobre los comandos malignos en un archivo mrconfig, mr
predeterminado para leer todos los archivos mrconfig que no sean los principales ~ / .mrconfig en modo no confiable.
En el modo no confiable, los archivos mrconfig están limitados a ejecutar solo comandos seguros conocidos (como
"git clone") de una manera cuidadosamente comprobada.
Para configurar mr para que confíe en otros archivos mrconfig, enumerelos en ~ / .mrtrust. Un archivo mrconfig
debe aparecer por línea. Debe aparecer el nombre de ruta completo o el nombre de ruta puede
Empezar con ~/ para especificar un archivo relativo a su directorio de inicio.
DESCONECTADO LOG ARCHIVO
La ~ / .mrlog El archivo contiene comandos que mr ha recordado ejecutar más tarde, debido a que
desconectado. Puede eliminar o editar este archivo para eliminar comandos, o incluso para agregar otros
comandos para que 'mr online' se ejecute. Si el archivo está presente, el Sr. asume que está en modo fuera de línea.
AMPLIACIONES
mr puede extenderse para admitir cosas como unison y git-svn. Algunos archivos que proporcionan tales
las extensiones están disponibles en / usr / share / mr /. Consulte la documentación en los archivos para obtener más detalles.
sobre su uso.
SALIR ESTADO
mr devuelve un valor distinto de cero si un comando falló en cualquiera de los repositorios.
Utilice mr online utilizando los servicios de onworks.net