[ SOS ] 版本控制工具 笔记
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
branch
查看当前 branch
soscmd query rso
查看所有 branch
soscmd query $Server $project branches
切换 branch
soscmd update -l$branchName
soscmd update -l$branchName -rso
创建文件(夹)
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
- 获取远程仓库的
这两个的主要区别在于返回数据是 单行/多行 的形式
信息检查 audit
-
-from<date+time>
从某个时间- 检查 2022 年 1 月 1 日之后的
-from'2022/01/01'
- 检查过去 7 天的
-from-7
- 检查 2022 年 1 月 1 日之后的
-
-to<date+time>
到某个时间 -
-cmd<command_name>
检查做了什么操作,常用的如下:- create
- ci
- co
- discardco
- delete
- rename
- move
- ...
-
-out<file_name>
指定检查结果文件 -
-txt | -htm | -csv | -f"<format>"
指定输出文件的格式,其中 <format> 有效的占位符如下:- %date
- %user
- %cmd
- %obj
- %rev
- %summary
-
-user
指定检查用户的操作(白名单)
sosadmin
获取所有 server 名字
sosadmin list
获取 server 所有 project 名字
sosadmin projects $serverName
启动一个 server
sosadmin startup $serverName
关闭一个 server
sosadmin shutdown $serverName
install
.bashrc
export CLIOLMD_LICENSE_FILE <LICENSEINFO>
export CLIOSOFT_DIR "/opt/eda/cliosoft/SOS"
export PATH $CLIOSOFT_DIR/bin:$PATH
export GDM_USE_SHLIB_ENVVAR 1
export LD_LIBRARY_PATH $CLIOSOFT_DIR/lib:$CLIOSOFT_DIR/lib/64bit:$LD_LIBRARY_PATH
Virtuoso 集成
setup_cds_libmgr_menu
.cdsinit
loadi(strcat(getShellEnvVar("CLIOSOFT_DIR") "/scripts/cds_sosviadfII.il"))
cdsLibMgr.il
loadi(strcat(getShellEnvVar("CLIOSOFT_DIR") "/scripts/cdsLibMgr.il"))
提取参数
- 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;
}