how to find files in a given branch

后端 未结 2 603
南旧
南旧 2020-12-01 18:02

I noticed that when doing code view, people here in my company usually just give the branch in which his work is done, and nothing else. So I guess there must be a easy way

相关标签:
2条回答
  • 2020-12-01 18:43

    Here is a python script that does the trick. It may look a lot more complicated but it's copy paste and go. Feel free to swap out the cmd with VonC's.

    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)
    
    0 讨论(0)
  • 2020-12-01 19:04

    You can quickly list all files from a particular branch:

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

    I would recommend combining that with:

    • -user to limit to a particular user, in case several users use the same branch.
        cleartool find . -type f -branch "brtype(abranch)" -user aloginname -print
    
    • -created_since filter, to find all elements created since a certain date, in case their is incremental review for a work done on the same branch.
        cleartool find . -type f -branch "brtype(abranch)" -element "{created_since(10-Jan)}" -user aloginname -print
    
    0 讨论(0)
提交回复
热议问题