Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to find files in a given branch

Tags:

clearcase

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 branch, so need your help and thanks in advance.

like image 618
Haiyuan Zhang Avatar asked May 07 '10 02:05

Haiyuan Zhang


People also ask

How do I find a file in a branch?

For listing, you may use git ls-files to list all files recursively in the current index/working directory. You may refer to Git-SCM Docs / git-ls-files or type man git-ls-files if you have installed Git and have man pages available.

How do I search for a file in git?

Usage. While browsing your Git repository, start typing in the path control box to search for the file or folder you are looking for.

Where are git branch files stored?

Git stores all references under the . git/refs folder and branches are stored in the directory . git/refs/heads . Since branch is a simple text file we can just create a file with the contents of a commit hash.

How do I find my branch in ClearCase?

If you are using Windows ClearCase 'Report Builder' can be used to find all elements with a given branch name, as well as the option to find the latest version number (explicit element).


2 Answers

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
like image 107
VonC Avatar answered Dec 17 '22 07:12

VonC


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)
like image 42
Dylan Kapp Avatar answered Dec 17 '22 05:12

Dylan Kapp