[ 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
  • -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;
}

Get attribute form SOS objstatus using RegExp

posted @ 2021-09-13 23:30  YEUNGCHIE  阅读(7127)  评论(1编辑  收藏  举报