https://www.cnblogs.com/yeungchie/
soscmd
创建工作区
soscmd newworkarea $serverName $projectName [$path]
- 常用这种
soscmd newworkarea SERV1 PRJ1 -here -lmian -LCACHED
在当前路径下,启用cache
,创建 SERV1服务器
PRJ1项目
main分支
的工作区
populate
populate 当前整个工作区
soscmd populate .
更新当前工作区
soscmd update
创建文件(夹)
soscmd create $fileName
checkout
soscmd co $fileName
checkin
soscmd ci $fileName
soscmd ci $fileName -aLog='type some logs' # 同时输入一些日志 便于批处理
取消 checkout
soscmd disc $fileName
soscmd disc -F $fileName # 强制取消 用于对文件有改动时
获取文件历史记录
soscmd history $fileName
工作区对象 选择/状态
选择 select
soscmd select [ -opts ] [ $fileName ]
状态 status
- 获取本地工作区的
soscmd status [ -opts ] [ $fileName ]
opts ...
- sco
被当前工作区 checkout 的对象 - scm
被当前工作区 checkout 并修改 的对象 - scnm
被当前工作区 checkout 未改动 的对象 - slk
被其他工作区或其他用户 checkout 的对象 - snt
当前工作区需要 update 的对象 - sp
当前工作区已经 populate 的对象 - sunp
当前工作区未 populate 的对象 - sne
当前工作区需要 populate 但缺失的对象 - snvp
当前工作区标记 never populate 的对象 - sunm
饭前工作区不存在 SOS 仓库中的文件 ( 仅用于 select 命令 ) - sall
所有对象 - sor
指定多个选项的判断条件为 OR - sor
指定多个选项的判断条件为 AND
对象状态
objstatus / nobjstatus
- 获取远程仓库的
这两个的主要区别在于返回数据是 单行/多行 的形式
sosadmin
获取所有 server 名字
sosadmin list
获取 server 所有 project 名字
sosadmin projects $serverName
启动一个 server
sosadmin startup $serverName
关闭一个 server
sosadmin shutdown $serverName
install
Virtuoso 集成
setup_cds_libmgr_menu
提取参数
- Get SOS objstatus parameter by attribute name with RegExp
# example
my $path = '.';
my $attr = 'WaRoot';
my $obj = `soscmd objstatus -gaAll $path`;
$obj =~ s/}\s+{/} {/g;
if($obj =~ /{$attr\s+({?\S+(\s?\S+)*}?)}/){
my $value $1;
$value =~ s/^{|}$//g;
return $value;
}
else{
return $value;
}