Как найти файлы в данной ветке

Я заметил, что при просмотре кода люди здесь, в моей компании, обычно просто дают филиал, в котором его работа выполнена, и ничего больше. Поэтому я предполагаю, что должен быть простой способ узнать все файлы с версией в данной ветке, что является одним и тем же, чтобы найти все файлы который был изменен.

Да, я не знаю ожидаемого "легкого способа" найти файлы в определенной ветке, поэтому вам нужна ваша помощь и спасибо заранее.

Ответ 1

Вы можете быстро перечислить все файлы из определенной ветки:

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

Ответ 2

Вот питон script, который делает трюк. Это может выглядеть намного сложнее, но копировать и вставлять. Не стесняйтесь менять 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)