开发者

how to find files in a given branch

开发者 https://www.devze.com 2022-12-29 05:28 出处:网络
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 to find out all the files t

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 to find out all the files that has a version in the given branch which is the same thing to find all the files that has been changed.

Yes, I don't know the expected "easy way" to find files in certain bran开发者_如何学JAVAch, so need your help and thanks in advance.


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


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

精彩评论

暂无评论...
验证码 换一张
取 消