web-dev-qa-db-ja.com

特定のブランチでファイルを見つける方法

コードビューを実行するとき、私の会社の人々は通常、彼の作業が行われるブランチを提供するだけで、他には何も提供しないことに気づきました。したがって、指定されたブランチにバージョンがあるすべてのファイルを見つける簡単な方法があるはずです。これは、変更されたすべてのファイルを見つけるのと同じことです。

はい、特定のブランチでファイルを見つけるために期待される「簡単な方法」がわかりません。事前に助けと感謝が必要です。

14
Haiyuan Zhang

特定のブランチのすべてのファイルをすばやく一覧表示できます。

cleartool find . -type f -branch "brtype(abranch)" -print

私はそれを以下と組み合わせることをお勧めします:

  • -user複数のユーザーが同じブランチを使用する場合に、特定のユーザーに制限します。
 cleartoolfind。 -type f -branch "brtype(abranch)" -user aloginname -print 
  • -created_since filter、同じブランチで行われた作業の増分レビューである場合に、特定の日付以降に作成されたすべての要素を検索します。
 cleartoolfind。 -type f -branch "brtype(abranch)" -element "{created_since(10-Jan)}" -user aloginname -print 
24
VonC

これがトリックを実行するpythonスクリプトです。もっと複雑に見えるかもしれませんが、コピーアンドペーストです。コマンドを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)
1
Dylan Kapp