Version control 如何查找在clearcase分支下修改的文件
我修改并签入了分支下的一堆文件。现在我需要得到我修改过的文件列表。是否有脚本可以执行此操作?应该可以帮助您找到给定分支上至少有一个版本的任何元素(文件) 以下内容将查找分支上的所有文件 有关更多示例,请参阅或“”Version control 如何查找在clearcase分支下修改的文件,version-control,clearcase,Version Control,Clearcase,我修改并签入了分支下的一堆文件。现在我需要得到我修改过的文件列表。是否有脚本可以执行此操作?应该可以帮助您找到给定分支上至少有一个版本的任何元素(文件) 以下内容将查找分支上的所有文件 有关更多示例,请参阅或“” 报告补充说: 它给了我一个带有@和其他字符的残缺文件名。有没有可能通过正常路径到达 诚然,这样的命令会给您一些类似的信息(例如): 要仅获取路径,有两种解决方案: 1/查找具有右分支的元素(而不是版本): cleartool find . -type f -ele "brtype(m
报告补充说:
它给了我一个带有@和其他字符的残缺文件名。有没有可能通过正常路径到达 诚然,这样的命令会给您一些类似的信息(例如): 要仅获取路径,有两种解决方案: 1/查找具有右分支的元素(而不是版本):
cleartool find . -type f -ele "brtype(mybranch)" -print
(注意用-ele
替换-branch
)这将使:
.\.checkstyle@@
.\.classpath@@
.\.classycle@@
.\.fbprefs@@
.\.pmd@@
但你仍然有“丑陋”的一面
2/将find与exec指令结合使用,exec指令描述找到的元素:
多行格式,便于阅读:
cleartool find . -type f -ele "brtype(mybranch)" \
-exec "cleartool descr -fmt \"%En\n\" \"%CLEARCASE_PN%\""
请注意,所有“内部”双引号都需要转义
%En
将为您提供找到的元素的名称
.\.checkstyle
.\.classpath
.\.classycle
.\.fbprefs
.\.pmd
.\.project
.\.settings\dico.txt
上述命令将给出所有修改的文件,特别是
branch(myBranch)
但是,如果要查找特定用户在特定日期修改的文件,则需要以下命令:
cleartool find . -version "{created_since(28-APRIL-2011.23:00:00) \
&& (!created_since(29-APRIl-2011.23:00:00)) \
&& brtype(BR_test) \
&& created_by(p723029)}" \
-exec "cleartool describe -fmt \nName\t\t:\040%En\nResponsible\t:\040%u\nDate\t\t:\040%d\nComment\t\t:\040%c\n %CLEARCASE_XPN%" \
-print >> D:\test.xls
(为了复制/粘贴的目的,在一个巨大的行中:)
使用以下脚本
#!/bin/sh
display()
{
echo "usage: $0 branchname -v vobs"
echo " branchname: optional, if absent uses the current view-name"
echo " -v vobs: optional, if absent uses default vob list"
}
if [ $# -gt 1 ]; then
if [ $1 == -v ]; then
branch=`basename $CLEARCASE_ROOT`
VOB_LIST=${@:2:($# - 1)}
elif [ $2 == -v ]; then
branch=$1
VOB_LIST=${@:3:($# - 2)}
else
display
exit 1
fi
else
VOB_LIST="/vobs/abc /vobs/def /vobs/ghi /vobs/jkl /vobs/mno"
if [ $# -eq 1 ]; then
if [ $1 == -h ]; then
display
exit 0
else
branch=$1
fi
else
branch=`basename $CLEARCASE_ROOT`
fi
fi
echo "Searching for files of branch <$branch> in following vobs:"
echo "$VOB_LIST"
echo "================================================================"
cleartool find $VOB_LIST -all -version "version(.../$branch/LATEST)" -print
#/垃圾箱/垃圾箱
显示()
{
echo“用法:$0 branchname-v VOB”
echo“branchname:可选,如果不存在,则使用当前视图名称”
echo“-v vob:可选,如果不存在,则使用默认vob列表”
}
如果[$#-gt 1];然后
如果[$1==-v];然后
branch=`basename$CLEARCASE\u ROOT`
VOB#U列表=${@:2:($#-1)}
elif[$2==-v];然后
分行=1美元
VOB#U列表=${@:3:($#-2)}
其他的
显示
出口1
fi
其他的
VOB_LIST=“/vobs/abc/vobs/def/vobs/ghi/vobs/jkl/vobs/mno”
如果[$#-eq 1];然后
如果[$1==-h];然后
显示
出口0
其他的
分行=1美元
fi
其他的
branch=`basename$CLEARCASE\u ROOT`
fi
fi
echo“在以下VOB中搜索分支的文件:”
回显“$VOB_列表”
回声“===============================================================================================================================================================================================================================================================================================================================================================
cleartool查找$VOB_列表-全部-版本“版本(…/$branch/LATEST)”-打印
将其保存在名为ctlsbr的文件中,并使用vob中的该文件查找修改后的文件列表
谢谢,
Amitfind命令是最好的源代码。为了解决OPs关于使用@返回“残废”名称以及之后的所有分支和版本信息的问题,可以添加“-nxn”选项以不提供此信息。这比将元素搜索与exec指令结合起来格式化输出要容易得多
cleartool find . -type f -branch "brtype(mybranch)" -nxn -print
试试这个命令
cleartool find -avo -nxname -element '{brtype(branch_name)}' -print
它给了我一个带有@和其他字符的残缺文件名。可以使用普通路径获取吗?谢谢您的回答,但是我如何才能在指定文件夹下找到修改过的文件而不是vob。e、 g我需要找到修改过的文件\vob_name\sub1\sub2。我该怎么做?@sarat:只需替换“
ct find”中的“
”-按要查看的完整路径键入…
。有趣(+1)。我已尝试改进您答案的呈现方式,使您的命令的不同部分更加可见。这是本页上唯一对我有效的内容
cleartool find . -version "{created_since(28-APRIL-2011.23:00:00) && (!created_since(29-APRIl-2011.23:00:00)) && brtype(BR_test) && created_by(p723029)}" -exec "cleartool describe -fmt \nName\t\t:\040%En\nResponsible\t:\040%u\nDate\t\t:\040%d\nComment\t\t:\040%c\n %CLEARCASE_XPN%" -print >> D:\test.xls
#!/bin/sh
display()
{
echo "usage: $0 branchname -v vobs"
echo " branchname: optional, if absent uses the current view-name"
echo " -v vobs: optional, if absent uses default vob list"
}
if [ $# -gt 1 ]; then
if [ $1 == -v ]; then
branch=`basename $CLEARCASE_ROOT`
VOB_LIST=${@:2:($# - 1)}
elif [ $2 == -v ]; then
branch=$1
VOB_LIST=${@:3:($# - 2)}
else
display
exit 1
fi
else
VOB_LIST="/vobs/abc /vobs/def /vobs/ghi /vobs/jkl /vobs/mno"
if [ $# -eq 1 ]; then
if [ $1 == -h ]; then
display
exit 0
else
branch=$1
fi
else
branch=`basename $CLEARCASE_ROOT`
fi
fi
echo "Searching for files of branch <$branch> in following vobs:"
echo "$VOB_LIST"
echo "================================================================"
cleartool find $VOB_LIST -all -version "version(.../$branch/LATEST)" -print
cleartool find . -type f -branch "brtype(mybranch)" -nxn -print
cleartool find -avo -nxname -element '{brtype(branch_name)}' -print