如何在给定分支中查找文件

时间:2010-05-07 02:24:17

标签: clearcase

我注意到在进行代码查看时,我公司的人员通常会给他的工作完成的分支,而不是其他任何东西。所以我想必须有一个简单的方法来找出在给定分支中具有版本的所有文件,这对于查找所有文件是相同的 已经改变了。

是的,我不知道在某个分支中找到文件的预期“简单方法”,所以需要您的帮助并提前致谢。

2 个答案:

答案 0 :(得分:23)

您可以快速列出特定分支的所有文件:

cleartool find . -type f -branch "brtype(abranch)" -print

我建议将其与:

结合使用
  • -user限制特定用户,以防多个用户使用相同的分支。
    cleartool find . -type f -branch "brtype(abranch)" -user aloginname -print
  • -created_since过滤,查找自特定日期以来创建的所有元素,以防它们是对同一分支上完成的工作进行增量审核。
    cleartool find . -type f -branch "brtype(abranch)" -element "{created_since(10-Jan)}" -user aloginname -print

答案 1 :(得分:1)

这是一个可以解决问题的python脚本。它可能看起来要复杂得多,但它可以复制粘贴然后去。随意用VonC替换cmd。

import subprocess
import os
import sys
from   optparse import OptionParser

def pipeCmd(Cmd):
    pipe = subprocess.Popen(Cmd,
        shell = True,
        stdout = subprocess.PIPE,
        stderr = subprocess.PIPE )
    (stdout_data,stderr_data) = pipe.communicate()
    return (pipe,stdout_data,stderr_data)

def main(br_name):                         
        cmd = "cleartool find -vis -avobs -element 'brtype(" + br_name + ")' -exec 'cleartool describe -short $CLEARCASE_PN'"
        pipe,data,err = pipeCmd(cmd)
        if 0 == pipe.returncode:
            print data
        else:
            print err                           

# Process cmd arguments
if (1):
    if (len(sys.argv) <= 1):
        print "Finds all branches in your view."
        print "\nExamples:\n"\
            "allBranches.py -b $BRANCH_NAME \n"\
            "allBranches.py --branch=$BRANCH_NAME\n"

    parser = OptionParser()
    branchName = "Example: 'rs__BRANCH_NAME_int'"
        parser.add_option("-b", "--branch", dest="BRANCH_NAME", help=branchName, metavar="BRANCH_NAME")       
    (options, args) = parser.parse_args()

if (options.BRANCH_NAME):
        print "\nFinding " + options.BRANCH_NAME + " elements...\n" 
        main(options.BRANCH_NAME)

sys.exit(0)