这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 mr,例如 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 cds 进入所有注册的存储库并在您工作的位置或以下进行操作
目录。 或者,如果您所在的存储库的子目录中不包含其他
注册的存储库,它将保留在该目录中,并且仅在该存储库上工作,
mr 由 .mrconfig 文件配置,其中列出了存储库。 它首先阅读
.mrconfig 文件在您的主目录中,这可以依次链式加载 .mrconfig 文件
从存储库。 它还会自动在当前文件中查找 .mrconfig 文件
目录,或其父目录之一。
任何版本控制的用户都应该非常熟悉这些预定义的命令
系统:
结帐(或合作)
检出任何尚未检出的存储库。
更新
从其配置的远程存储库更新每个存储库。
如果存储库尚未签出,它将首先签出。
状态
显示每个存储库的状态报告,显示哪些未提交的更改
存在于存储库中。 对于分布式版本控制系统,还显示
未推送的本地分支。
清洁
打印工作目录中被忽略的文件、未跟踪的文件和其他杂物。
可选的 -f 参数允许删除文件以及打印它们。
提交(或 ci)
提交对每个存储库的更改。 (默认情况下,更改被推送到远程
存储库也是如此,当使用像 git 这样的分布式系统时。 如果你不喜欢这个
默认情况下,您可以在 .mrconfig 中更改它,或者使用 record 代替。)
可选的 -m 参数允许指定提交消息。
记录
将更改记录到本地存储库,但不将它们推送到远程
存储库。 仅支持分布式版本控制系统。
可选的 -m 参数允许指定提交消息。
取
从每个存储库的远程存储库中获取,但不更新工作
复制。 仅支持某些分布式版本控制系统。
推
将提交的本地更改推送到远程存储库。 集中式的无操作
版本控制系统。
差异
显示未提交更改的差异。
log 显示提交日志。
模式
使用 grep 子命令在每个存储库中搜索模式。 使用 ack-grep
没有自己的VCS。
运行命令 [参数 ...]
在每个存储库中运行指定的命令。
这些命令也可用:
bootstrap src [目录]
使 mr 检索源“src”并将其用作 .mrconfig 文件以检出
将其中列出的存储库放入指定的目录中。
mr 了解几种类型的来源:
卷曲的网址
“src”可能是一个被理解的 URL 卷曲.
通过 ssh 复制
使用 SCP 要下载,“src”的格式可能为“ssh://[user@]host:file”。
本地文件
您可以通过其他方式检索配置文件并通过其 径 作为“源”。
标准输入
如果源“src”包含在单个破折号“-”中,则从标准读取配置文件
输入。
如果目录不存在,将创建该目录。 如果没有指定目录,则
将使用当前目录。
作为一种特殊情况,如果源“src”包含名为“.”的存储库,则检查
out 到指定目录的顶部。
列表(或 ls)
列出 mr 将操作的存储库。
寄存器
在 mrconfig 文件中注册现有存储库。 默认情况下,存储库中的
当前目录已注册,或者您可以指定要注册的目录。
修改的 mrconfig 文件由 -c 选项选择,或通过查看
对于当前目录的父目录中或其中最近的已知目录。
配置
添加、修改、删除或打印 mrconfig 文件中的值。 下一个参数是
值所在部分的名称。要添加或修改值,请使用一个或多个
“设置=值”的实例。 使用“setting=”删除设置。 仅使用“设置”
获取该设置的值。
例如,要在 src/foo 中添加(或编辑)存储库:
mr config src/foo checkout="svn co svn://example.com/foo/trunk foo"
要显示 mr 用于更新 src/foo 中的存储库的命令:
mr config src/foo 更新
要查看 mr 中包含的内置 shell 函数库:
mr 配置默认库
使用的 mrconfig 文件由 -c 选项选择,或通过查找
当前目录的父目录中或父目录中最接近的已知目录。
这一点在线下监测数字化产品的影响方面尤为明显。
建议 mr 处于离线模式。 任何在离线模式下失败的命令都将
记住了,当先生被告知它在线时重试。
在线
建议先生它再次处于在线模式。 在离线模式下失败的命令
将重新运行。
纪念
记住一个命令,稍后在 mr 重新进入在线模式时运行。 这隐含地
将 mr 置于离线模式。 该命令可以是任何常规的 mr 命令。 这很有用
当您知道某个命令会因离线而失败,因此不想运行时
现在完全可以,但请记住在您重新联机时运行它。
帮助
显示此帮助。
动作可以缩写为任何明确的子字符串,因此“mr st”等价于“mr
status”,“mr up”等价于“mr update”
附加参数可以传递给大多数命令,并且不变地传递给
底层版本控制系统。 如果存储库先生将采取行动,这将非常有用
在所有使用相同的版本控制系统。
配置
-d 目录
--目录目录
指定最顶层目录 mr 应该可以工作。默认是当前
工作目录。
-c 配置文件
--config 配置文件
使用指定的 mrconfig 文件。 默认是同时使用 〜/.mrconfig 以及
寻找一个 .mrconfig 当前目录中的文件,或其父目录之一
目录。
-f
- 力量
强制 mr 对通常由于其原因而被跳过的存储库采取行动
组态。
--force-env
即使设置了潜在危险的环境变量,也强制执行 mr。
-v
--详细
详细点。
-m
--最小
最小化输出。 如果命令失败或有任何输出,则通常的输出将
显示。
-q
- 安静的
安静。 这会抑制 mr 的通常输出,以及来自以下命令的任何输出
运行(包括 stderr 输出)。 如果命令失败,将显示输出。
-k
--不安全
引导时接受不受信任的 SSL 证书。
-s
--统计
展开最后显示的统计信息行,以包含有关准确的信息
哪些存储库失败并被跳过(如果有)。
-i
- 交互的
交互模式。 如果存储库处理失败,将启动一个子shell
您可以使用它来解决或调查问题。 退出子shell继续
跑先生。
-n [数字]
--no-recurse [数字]
如果没有指定数字,则只对当前目录的存储库进行操作,
不要递归到更深的存储库。
如果指定了一个数字,则最多将递归到存储库中
子目录深。 例如,使用 -n 2 它会递归到 ./src/foo,但不会
./src/包/栏。
-j [数字]
--jobs [数量]
并行运行指定数量的作业,或不限数量的作业,没有
指定的数量。 这可以大大加快更新等操作。 它不是
推荐用于交互式操作。
请注意,一次运行 10 个以上的作业很可能会与 ssh 连接发生冲突
限制。 一次运行 3 到 5 个作业将产生良好的更新加速
无需过多地装载机器。
-t
--信任所有
信任所有 mrconfig 文件,即使它们未在 ~/.mrtrust. 谨慎使用。
-p
- 小路
这个过时的标志被忽略。
配置文件 FILES
下面是一个例子 .mrconfig 文件:
[源代码]
结帐 = svn 结帐 svn://svn.example.com/src/trunk src
链=真
[源/linux-2.6]
结帐 = 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
这个 .mrconfig file 使用 INI 文件格式的变体。 以“#”开头的行是
注释。 通过将行缩进,可以将值继续到下一行
空白。
“DEFAULT”部分允许为其后面的部分设置默认值。
“ALIAS”部分允许为操作添加别名。 每个设置都是一个别名,它的
value 是要使用的操作。
所有其他部分添加存储库。 节头指定目录
存储库位于。 这是相对于包含 mrconfig 文件的目录,
但您也可以选择使用绝对路径。 (注意可以使用环境
节名称中的变量; 它们将通过外壳进行扩展。 为了
例如,“[$HOSTNAME]”或“[${HOSTNAME}foo]”)。
在一个部分中,每个设置都定义了一个 shell 命令来运行以处理给定的操作。 先生
包含“更新”、“状态”、“提交”和其他标准操作的默认处理程序。
通常,您只需要指定“结帐”的操作。 在这里指定命令
运行以创建存储库的检出。 该命令将在
父目录,并且必须创建存储库的目录。 所以使用“git clone”、“svn”
checkout”、“bzr branch”或“bzr checkout”(对于绑定分支)等。
请注意,这些 shell 命令在“set -e”shell 环境中运行,其中任何
您传递的其他参数在 $@ 中可用。 除了“checkout”之外的所有命令都是
在存储库内运行,尽管不一定在它的顶部。
“MR_REPO”环境变量设置为存储库顶部的路径。 (为了
“注册”操作,“MR_REPO”改为设置为目录的基本名称
应在检出存储库时创建。)
“MR_CONFIG”环境变量设置为定义 repo 的 .mrconfig 文件
正在执行,或者,如果 repo 尚未在配置文件中,则 .mrconfig 文件
应该修改以注册回购。
“MR_ACTION”环境变量设置为正在运行的命令(更新、结帐、
等等)。
一些设置具有特殊含义:
跳过
如果设置了“skip”并且它的命令返回true,那么 mr 将跳过对此采取行动
存储库。 该命令在 $1 中传递操作名称。
这里有两个例子。 第一个跳过 repo,除非 mr 由 joey 运行。 第二
使用 hours_since 函数(包含在 Mr 的内置库中)跳过更新
除非距离上次更新至少 12 小时。
[我的东西]
结帐 = ...
跳过 = 测试 `whoami` != joey
[Linux]
结帐 = ...
跳过 = [ "$1" = 更新 ] && ! hours_since "$1" 12
使用 skip 的另一种方法是延迟结账。 这使得先生跳过对回购的操作
除非它已经存在。 要启用 repo,您必须明确签出
(使用“mr --force -d foo checkout”)。
[富]
结帐 = ...
跳过=懒惰
秩序
“order”设置可用于覆盖存储库的默认排序。 这
默认订单值为 10。使用较小的值来处理存储库
更早,更大的值使存储库在以后处理。
请注意,如果存储库位于另一个存储库的子目录中,则排序
不建议提前处理。
链
如果设置了“chain”并且它的命令返回true,那么 mr 将尝试加载一个 .mrconfig
来自存储库根目录的文件。
包括
如果设置了“include”,则运行其命令,并应输出额外的 mrconfig 文件
内容。 内容被包含在内,就好像它是包含文件的一部分一样。
与其他所有内容不同,“包含”不需要放在一个部分中。
mr 提供了几个可以包含在内的库以添加对其他版本的支持
控制类型的东西(一致,git-svn,git-fake-bare,git-subtree)。 包括他们
所有,你可以使用:
包括 = cat /usr/share/mr/*
有关详细信息,请参阅各个文件。
删除
如果设置了“deleted”并且它的命令返回true,那么 mr 将存储库视为
删除。 它实际上永远不会删除存储库,但如果它看到
存储库的目录。 这在共享一个 mrconfig 文件时很有用
多台机器,以跟踪并记住删除旧存储库。
lib “lib”设置可以包含一些将在每个命令之前运行的 shell 代码,
这可能是定义其他命令使用的 shell 函数的有用方法。
与大多数其他设置不同,这可以指定多次,在这种情况下
大量的 shell 代码被累积地连接在一起。
修正
如果设置了“fixups”,则每当检出存储库时都会运行其命令,或者
更新。 这提供了一种简单的方法来执行权限修复或其他操作
每当存储库更改时,都会对存储库内容进行调整。
工作
如果设置了“jobs”,则并行运行指定数量的作业。 这可以大大
加快更新等操作。
请注意,一次运行 10 个以上的作业很可能会与 ssh 连接发生冲突
限制。 一次运行 3 到 5 个作业将产生良好的更新加速
无需过多地装载机器。
VCS_动作
在查找针对给定操作运行的命令时,mr 首先查找设置
与动作同名。 如果没有找到,它会寻找一个名为
“VCS_action”(替代版本控制系统和操作的名称)。
在内部,mr 有“git_update”、“svn_update”等设置。要更改操作
为给定的版本控制系统执行,您可以覆盖这些 VCS
具体行动。 要添加新的版本控制系统,您只需添加 VCS 特定的
为它采取的行动。
前_和后_
如果设置了“pre_action”,则在 mr 执行指定操作之前运行其命令。
同样,“post_action”命令在 mr 成功执行指定的操作后运行
行动。 例如,在提交之前运行“pre_commit”; “post_update”在之后运行
更新。
_附加
任何设置都可以以“_append”为后缀,为现有的添加一个附加值
设置的值。 这样,动作就可以累积构造。
VCS_测试
版本控制系统的名称本身是通过运行每个定义的
“VCS_test”动作,直到成功。
未拉紧 配置文件 FILES
由于mrconfig 文件可以包含任意shell 命令,因此它们可以执行任何操作。 这个
灵活性很好,但它也允许恶意的 mrconfig 文件删除你的整个
主目录。 这样的文件可能包含在您的主要存储库中
〜/.mrconfig 退房。 为避免担心 mrconfig 文件中的恶意命令,mr
默认读取除主文件以外的所有 mrconfig 文件 〜/.mrconfig 在不受信任的模式下。
在不受信任模式下,mrconfig 文件仅限于运行已知的安全命令(例如
“git clone”)以仔细检查的方式。
要将 mr 配置为信任其他 mrconfig 文件,请将它们列在 ~/.mrtrust. 一个mrconfig文件
应该每行列出。 应该列出完整的路径名,或者路径名可以
从...开始 ~/ 指定相对于您的主目录的文件。
ONLINE 登录 文件
这个 〜/.mrlog 文件包含先生记得稍后运行的命令,因为
离线。 您可以删除或编辑此文件以删除命令,甚至添加其他
'mr online' 运行的命令。 如果文件存在,mr 假定它处于脱机模式。
EXTENSIONS
mr 可以扩展以支持诸如 unison 和 git-svn 之类的东西。 一些文件提供这样的
扩展可用 /usr/共享/先生/. 有关详细信息,请参阅文件中的文档
关于使用它们。
退出 状态
如果命令在任何存储库中失败,则 mr 返回非零值。
使用 onworks.net 服务在线使用 mr