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

Clearcase 如何在给定的分支中查找文件,clearcase,Clearcase,我注意到,在执行代码视图时,我公司的人通常只给出完成工作的分支,而不给出其他任何东西。所以我想一定有一个简单的方法来找出给定分支中所有版本的文件,这与查找所有文件是一样的 这已经改变了 是的,我不知道在某个分支中查找文件的“简易方法”,因此需要您的帮助和提前感谢。您可以快速列出特定分支中的所有文件: cleartool find . -type f -branch "brtype(abranch)" -print 我建议将其与以下内容结合起来: -user在多个用户使用同一分支的情况下,限制

我注意到,在执行代码视图时,我公司的人通常只给出完成工作的分支,而不给出其他任何东西。所以我想一定有一个简单的方法来找出给定分支中所有版本的文件,这与查找所有文件是一样的 这已经改变了


是的,我不知道在某个分支中查找文件的“简易方法”,因此需要您的帮助和提前感谢。

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

cleartool find . -type f -branch "brtype(abranch)" -print
我建议将其与以下内容结合起来:

  • -user
    在多个用户使用同一分支的情况下,限制为特定用户

下面是一个实现这一技巧的python脚本。看起来可能要复杂得多,但这是复制粘贴。请随意将cmd与VonC交换

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)
导入子流程
导入操作系统
导入系统
从optpasse导入OptionParser
def pipeCmd(Cmd):
管道=子流程Popen(Cmd,
shell=True,
stdout=子流程.PIPE,
stderr=子流程(管道)
(stdout_数据,stderr_数据)=管道通信()
返回(管道、标准输出数据、标准输出数据)
def干管(br_名称):
cmd=“cleartool find-vis-avobs-element'brtype(“+br_name+”)-exec'cleartool description-short$CLEARCASE_PN'”
管道,数据,err=pipeCmd(cmd)
如果0==pipe.returncode:
打印数据
其他:
打印错误
#进程cmd参数
如果(1):

如果(len(sys.argv)此处还有更多信息,则-version(如中所述)中创建的过滤器与此处使用的-element之间有什么区别?结果肯定不同。@x29a只取决于自创建的过滤器应用的项目:element(意味着文件已“添加到源代码管理”或该元素的版本)(指自某个日期以来签入的所有版本)我为此创建了一个新问题:-很抱歉造成混淆。editlimit 5分钟得到了我;/如果您使用的是Windows ClearCase“Report Builder”可以用于查找具有给定分支名称的所有元素,以及查找最新版本号(显式元素)的选项。 cleartool find . -type f -branch "brtype(abranch)" -element "{created_since(10-Jan)}" -user aloginname -print
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)