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

