ClearCase 标签文件的父文件夹
ClearCase label parent folders of a file
对于给定的文件路径,如何标记所有父文件夹直到 VOB 级别?
例如文件路径:\VOB1\dir1\subdir1\moredir1\file1.xml
我想用 LABEL1 标记以下元素:
\VOB1\dir1\subdir1\moredir1\file1.xml
\VOB1\dir1\subdir1\moredir1
\VOB1\dir1\subdir1
\VOB1\dir1
使用mklabel命令,简单易行:
cleartool mklabel LABEL1 \VOB1\dir1\subdir1\moredir1\file1.xml \VOB1\dir1\subdir1\moredir1 \VOB1\dir1\subdir1 \VOB1\dir1
但是,我希望智能地计算路径。
mklabel -rec 的参数不适合此用途,因为顶级父文件夹可能包含许多其他 files/dirs。
有什么想法吗?
因为没有获取父文件夹列表的本机方法(除非 cleartool lsfolder -ancestor
有效),您只需 'cd ..' 直到 mklabel 失败(这意味着您在 vob 之外)
cleartool mklabel LABEL1 . || exit
cd ..
在bash中:
while true; do cleartool mklabel LABEL1 . || exit; cd ..; done
@echo off
setlocal EnableDelayedExpansion
set "filePath=\VOB1\dir1\subdir1\moredir1\file1.xml"
set "wantedParent=VOB1"
set "thisPath="
set "labelPaths="
set "labelThisPath="
if "%filePath:~0,1%" equ "\" set "filePath=%filePath:~1%"
for %%a in ("%filePath:\=" "%") do (
set "thisPath=!thisPath!\%%~a"
if defined labelThisPath (
set "labelPaths=!thisPath! !labelPaths!"
) else if "%%~a" equ "%wantedParent%" (
set "labelThisPath=true"
)
)
ECHO cleartool mklabel %labelPaths%
输出:
cleartool mklabel \VOB1\dir1\subdir1\moredir1\file1.xml \VOB1\dir1\subdir1\moredir1 \VOB1\dir1\subdir1 \VOB1\dir1
对于给定的文件路径,如何标记所有父文件夹直到 VOB 级别?
例如文件路径:\VOB1\dir1\subdir1\moredir1\file1.xml
我想用 LABEL1 标记以下元素:
\VOB1\dir1\subdir1\moredir1\file1.xml
\VOB1\dir1\subdir1\moredir1
\VOB1\dir1\subdir1
\VOB1\dir1
使用mklabel命令,简单易行:
cleartool mklabel LABEL1 \VOB1\dir1\subdir1\moredir1\file1.xml \VOB1\dir1\subdir1\moredir1 \VOB1\dir1\subdir1 \VOB1\dir1
但是,我希望智能地计算路径。
mklabel -rec 的参数不适合此用途,因为顶级父文件夹可能包含许多其他 files/dirs。
有什么想法吗?
因为没有获取父文件夹列表的本机方法(除非 cleartool lsfolder -ancestor
有效),您只需 'cd ..' 直到 mklabel 失败(这意味着您在 vob 之外)
cleartool mklabel LABEL1 . || exit
cd ..
在bash中:
while true; do cleartool mklabel LABEL1 . || exit; cd ..; done
@echo off
setlocal EnableDelayedExpansion
set "filePath=\VOB1\dir1\subdir1\moredir1\file1.xml"
set "wantedParent=VOB1"
set "thisPath="
set "labelPaths="
set "labelThisPath="
if "%filePath:~0,1%" equ "\" set "filePath=%filePath:~1%"
for %%a in ("%filePath:\=" "%") do (
set "thisPath=!thisPath!\%%~a"
if defined labelThisPath (
set "labelPaths=!thisPath! !labelPaths!"
) else if "%%~a" equ "%wantedParent%" (
set "labelThisPath=true"
)
)
ECHO cleartool mklabel %labelPaths%
输出:
cleartool mklabel \VOB1\dir1\subdir1\moredir1\file1.xml \VOB1\dir1\subdir1\moredir1 \VOB1\dir1\subdir1 \VOB1\dir1