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

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

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


person Haiyuan Zhang    schedule 07.05.2010    source источник
comment
дополнительная информация также здесь stackoverflow.com/questions/5800926/   -  person x29a    schedule 03.03.2014


Ответы (2)


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

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
person VonC    schedule 07.05.2010
comment
в чем разница между фильтром created_since в -версии (как указано в stackoverflow.com/questions/22300632/) и используемый здесь -элемент? результаты, безусловно, различаются. - person x29a; 15.01.2015
comment
@ x29a - это просто то, к какому элементу применяется created_since: элемент (то есть, когда файл был добавлен в систему управления версиями или версии этого элемента (то есть все версии, проверенные с определенной даты) - person VonC; 15.01.2015
comment
я создал для этого новый вопрос: http://stackoverflow.com/questions/27959952/cleartool-difference-between-element-and-version - извините за недоразумение. Editlimit в 5 минут меня достал; / - person x29a; 15.01.2015

Вот скрипт на 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)
person Dylan Kapp    schedule 23.02.2016
comment
Если вы используете Windows ClearCase, можно использовать «Построитель отчетов» для поиска всех элементов с заданным именем ветви, а также возможность найти номер последней версии (явный элемент). - person Dylan Kapp; 24.02.2016