admin–管理

  • 需要: 仓库,工作目录。
  • 修改: 仓库。
  • 同义词: rcs

本命令是配合管理功能的 cvs 接口。这其中的一些功能被质疑是否有用,但因为历史的缘故还保留着。将来也许会去掉这些有问题的选项。此命令具备递归特性,所以使用的时候要特别小心。

在 unix 系统中,如果有一个组名为 cvsadmin,则只有该组的成员可以执行 cvs admin 命令,除非在 CVSROOT/config 里面规定 UserAdminOptions 配置选项。指定 UserAdminOptions 选项后,任何用户都能执行此命令。参考 config 了解有关 UserAdminOptions 的详细情况。

cvsadmin 组应该存在于服务器端,或者是任何非客户机/服务器的 cvs 上。为了禁止所有用户使用 cvs admin,可创建一个无成员的组。在 NT 系统上,并不存在 cvsadmin 特性,因此所有用户都可以执行 cvs admin 命令。

 

admin 选项

这里面的一些选项虽然被质疑是否有用,但由于历史原因仍然保留。其中一些甚至造成 cvs 无法使用,除非你恢复到原状!

-A oldfile
可能无法用在 cvs。追加 oldfile 的存取列表到 rcs 文件的存取列表。
-a logins
可能无法用在 cvs。追加登录名到 rcs 文件存取列表的 logins 列表,由逗号分隔。
-b[ rev ]
设置默认分支为 rev。在 cvs 中,你不应该手动修改默认分支;采用粘性标签 (参阅 Sticky tags)决定工作分支是更佳的方式。有一种情况需要使用 cvs admin -b 命令:当使用第三方分支时,有需要回复到他们的版本 (参阅 Reverting local changes)。在 ` -b' 和它的参数之间可以没有空格。


-c string
设置注释头为 string。注释头在当前的 cvsrcs 5.7 版本中不在使用。你可以不用理它。参阅 Keyword substitution.
-e[ logins ]
可能无法用在 cvs。从 RCS 文件的存取列表 logins 列表中删除登录名,由逗号分隔。如果不指定 logins,删除整个存取列表。在 ` -e' 和它的参数之间可以没有空格。
-I
交互式执行,即使标准输入并不是一个终端。该选项于 cvs 客户机/服务器方式下无效,并将在以后的 cvs 中去掉。
-i
cvs 无用。它用来创建和初始化新的 rcs 文件,并不设置版本。对于 cvs,添加文件使用 cvs add 命令 (参阅 Adding files)。
-k subst
设置默认的关键字替换为 subst。 参阅 Keyword substitution. 在 cvs updatecvs exportcvs checkout 命令中可以使用 ` -k' 选项覆盖此默认值。
-l[ rev ]
锁定修订版号为 rev。如果指定的是分支,则锁定该分支最后的修订版。如果没有 rev,则锁定默认分支的最新修订版本。在 ` -l' 和它的参数之间可以没有空格。

它与 rcslock.pl 脚本配合使用,该脚本位于 cvs 源码发行版的 contrib 目录,用来提供限制检出(一个文件只允许一个用户同时修改)。查看脚本的注释了解更多信息(并参阅该目录中 README 关于不支持特性的无责声明)。据注释所说,锁定必须设置为 strict(此为默认)。

-L
设置锁定为 strict。strict 锁定意思是说,RCS 文件的主人也不能免除锁定而提交。 cvs 使用时,必须设置 strict 锁定;参阅上面的 ` -l' 选项所述。


-m rev : msg
msg 替换日志信息中的 rev
-N name [:[ rev ]]
与 ` -n' 类似,除了可以覆盖以前设置的 name。了解如何使用魔术分支,参阅 Magic branch numbers,了解魔术分支的使用。
-n name [:[ rev ]]
将符号名 name 与分支或修订版 rev 关联。通常采用 ` cvs tag' 或 ` cvs rtag' 命令更佳。如果没有 ` :' 和 rev,则删除符号名; 否则如果符号名 name 已经存在,将会打印错误信息。如果 rev 是符号名,则扩展之前的关联。 rev 由分支号和 ` .' 组成,表示当前分支的最新修订版。 ` :' 和空的 rev 表示默认版本的最新修订版,通常指主干。例如, ` cvs admin -nname:' 将 name 关联到所有 RCS 文件的当前最新修订版; 对比 ` cvs admin -nname:$',它是将 name 关联到解开的关键字对应的工作文件修订版。


-o range
删除 range 指定的( outdates)修订版。

注意,在你明确你在做什么之前(例如查看了下面的有关 rev1:rev2 语法困惑警告),该命令是非常危险的。

如果你磁盘空间不够,该选项可以提供帮助。但用之前请三思 – 这将无法依靠备份取消这个命令! 如果你错删了修订版,即使是出错或(但愿不是) cvs bug 造成的,除了删除修订版,没有可能修复。或许先在仓库的复制版上进行实验是个好主意。

指定 range 可以采用以下的方式:

rev1 :: rev2
清除 rev1 和 rev2 之间的所有版本,那么 cvs 将只保存 rev1 和 rev2 之间的差别,而无中间状态。例如,执行 ` -o 1.3::1.5' 之后,只能得到 1.3 和 1.5 修订版,或者 1.3 和 1.5 之间的差异,但无法获得 1.4 或 1.3 和 1.4 之间的差异。另一个例子: ` -o 1.3::1.4' 和 ` -o 1.3::1.3' 没有任何效果,这是因为它们没有中间状态可以删除。
:: rev
清除含 REV 的分支从开始到 rev 之间的修订版。分支点和 rev 则保留。例如,` -o ::1.3.2.6' 删除 1.3.2.1 和 1.3.2.5 修订版和它们之间的所有修订版,但保留 1.3 和 1.3.2.6。
rev ::
清除 rev 和包含 rev 分支最后的修订版。 rev 修订版保留,但最新修订版删除。
rev
删除 rev 修订版。例如,` -o 1.3' 等于 ` -o 1.2::1.4'。
rev1 : rev2
删除 rev1rev2 之间的修订版,包括同一个分支。以后将无法获取 rev1rev2 以及之间的修订版。例如,` cvs admin -oR_1_01:R_1_02 .' 很少使用。意思是删除修订版到标签 R_1_02,并含标签。但要当心! 如果文件在 R_1_02 和 R_1_03 之间没有修改,那么它们具有相同的数字修订版号赋于标签 R_1_02 和 R_1_03。于是不仅无法获得 R_1_02; R_1_03 也不得不要从磁带上恢复! 在大多数情况下,你应该指定 rev1:: rev2
: rev
删除含 rev 的分支从开始到 rev,并包括 rev
rev :
删除从 rev 修订版,包含 rev 自己,到含 rev 分支的结尾。

含有分支或锁定的修订版将不会被删除。

如果修订版包含符号名,并且指定 `::' 语法,cvs 将给出错误信息并不删除任何修订版。如果您的确想删除符号名和修订版,首先用 cvs tag -d 删除符号名,然后执行 cvs admin -o。如果指定不含 `::' 的语法,那么 cvs 将删除修订版,但保留含符号名指向不存在的修订版。该特性是为与以前的 cvs 版本兼容,但由于没什么用处,将来可能会改成类似 `::' 方式。

对于因 cvs 不能处理 rev 为分支的符号名。参阅 Magic branch numbers, 了解详细情况。

确保你要处理的过期修订版没有被人检出。如果有人试图编辑,并尝试提交,会出现一些奇怪的事情。正因如此,该选项不适合撤消假提交; 而使用提交新修订版替代撤消假修改 (参阅 Merging two revisions)。

-q
安静地运行;不打印任何调试信息。
-s state [: rev ]
cvs 下很有用。为 rev 修订版设置状态为 state。如果 rev 是分支号,则假定是该分支的最新版本。如果 rev 省略,假定是默认分支的最新版本。 state 可以使用任何标识。常用的有 ` Exp'(实验), ` Stab'(稳定),` Rel'(发行)。新的修订版创建时默认使用 ` Exp' 标识。从 cvs log (参阅 log)的输出,以及 ` $Log$' 和 ` $State$' 关键字(参阅 Keyword substitution)中可以看到状态。注意, cvs 内部使用 dead 状态(参阅 Attic);对文件设置或取消 dead 状态应该采用诸如 cvs removecvs add 命令(参阅 Adding and removing),而不是 cvs admin -s
-t[ file ]
cvs 下很有用。将名为 file 的文件内容写到 RCS 文件的描述中,删除以前的文字。 file 路径名不能以 ` -' 开头。描述文件可以从 ` cvs log' (参阅 log) 的输出中看到。在 ` -t' 和它的参数之间可以没有空格。

如果省略 file,描述文字将从标准输入获得,以 end-of-file 或 `.' 行结束。如果是交互式,则有相关提示;参阅 `-I'。

-t- string
与 ` -tfile' 类似。将 string 写入 rcs 文件的描述文字,删除已有的文字。在 ` -t' 和它的参数之间可以没有空格。
-U
设置锁定为 non-strict。non-stric 锁定意味着文件的所有者不必锁定修订版来提交。在 cvs 下使用 strict 锁定必须设置;参阅上面的 ` -l' 选项。
-u[ rev ]
参阅上面的 ` -l' 选项中关于 cvs 中使用的说明。为 rev 修订版解锁。如果给定的是分支,为分支的最新修订版解锁。如果省略 rev,删除设置人的最新锁。通常,只有加锁的人才能解锁;如果其他人也解锁会打破锁的作用。这将发送一个 commit 通知给加锁的人(参阅 Getting Notified)。在 ` -u' 和它的参数之间可以没有空格。
-V n
在以前的 cvs 中,这个选项可以将 rcs 版本 n 写到 rcs 文件,但现在已经废止,指定将产生错误。
-x suffixes
在以前的 cvs 中,文档说明使用这种方法指定 rcs 文件名。然而, cvs 要求一直使用以 ` ,v' 结束的 rcs 文件,所以,这个选项也不再有意义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值