From d59466926e57f1226fe654deb109812a1cd19389 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 27 Aug 2007 17:54:13 +0000 Subject: [PATCH] Bug #190406 - Filter the myheaders list so that it doesn't include binary blobs added to cvs with the -kb option. svn path=/main/trunk/; revision=7705 --- bin/repoman | 7 ++++++- pym/portage/cvstree.py | 19 ++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/bin/repoman b/bin/repoman index ba2f163d1..fb6f23eb4 100755 --- a/bin/repoman +++ b/bin/repoman @@ -1619,11 +1619,14 @@ else: print sys.exit(1) - if isCvs: + if True: mycvstree=portage.cvstree.getentries("./",recursive=1) mychanged=portage.cvstree.findchanged(mycvstree,recursive=1,basedir="./") mynew=portage.cvstree.findnew(mycvstree,recursive=1,basedir="./") myremoved=portage.cvstree.findremoved(mycvstree,recursive=1,basedir="./") + bin_blob_pattern = re.compile("^-kb$") + bin_blobs = set(portage.cvstree.findoption(mycvstree, + bin_blob_pattern, recursive=1, basedir="./")) if not (mychanged or mynew or myremoved): print green("RepoMan sez:"), "\"Doing nothing is not always good for QA.\"" print @@ -1641,6 +1644,8 @@ else: headerstring="'\$(Header|Id)" headerstring+=".*\$'" for myfile in myupdates: + if myfile in bin_blobs: + continue myout=getstatusoutput("egrep -q "+headerstring+" "+myfile) if myout[0]==0: myheaders.append(myfile) diff --git a/pym/portage/cvstree.py b/pym/portage/cvstree.py index ca94d3512..f74ecd4ac 100644 --- a/pym/portage/cvstree.py +++ b/pym/portage/cvstree.py @@ -72,7 +72,24 @@ def findnew(entries,recursive=0,basedir=""): for mydir in entries["dirs"]: mylist+=findnew(entries["dirs"][mydir],recursive,basedir+mydir) return mylist - + +def findoption(entries, pattern, recursive=0, basedir=""): + """(entries, pattern, recursive=0, basedir="") + Iterate over paths of cvs entries for which the pattern.search() method + finds a match. Returns a list of paths, optionally prepended with a + basedir.""" + if not basedir.endswith("/"): + basedir += "/" + for myfile, mydata in entries["files"].iteritems(): + if "cvs" in mydata["status"]: + if pattern.search(mydata["flags"]): + yield basedir+myfile + if recursive: + for mydir, mydata in entries["dirs"].iteritems(): + for x in findoption(mydata, pattern, + recursive, basedir+mydir): + yield x + def findchanged(entries,recursive=0,basedir=""): """(entries,recursive=0,basedir="") Recurses the entries tree to find all elements that exist in the cvs tree -- 2.26.2