как найти файлы в данной ветке - PullRequest
13 голосов
/ 07 мая 2010

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

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

Ответы [ 2 ]

23 голосов
/ 07 мая 2010

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

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
1 голос
/ 24 февраля 2016

Вот скрипт 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)
...