diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-02-27 20:57:35 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-02-27 20:57:35 -0800 |
commit | ef4fc7d5347e96e085c11d8843cceae1f433fe24 (patch) | |
tree | 2b0d4546c3244a6e0f93c744f5b684327bdc49a9 | |
parent | b684a8d3a73da02423d090c58c0f1536c25b093b (diff) | |
download | portage-ef4fc7d5347e96e085c11d8843cceae1f433fe24.tar.gz portage-ef4fc7d5347e96e085c11d8843cceae1f433fe24.tar.bz2 portage-ef4fc7d5347e96e085c11d8843cceae1f433fe24.zip |
cvstree.getentries: handle "ignored" files in cvs
It's possible for files to be under version control even though they
match our ignore filter, so don't ignore them if they are listed in the
"Entries" file. Thanks to Mike Gilbert <floppym@gentoo.org> for
reporting in this blog post:
http://floppym.blogspot.com/2012/02/cvs-status-display-cvs-checkout-in-svn.html
-rw-r--r-- | pym/portage/cvstree.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/pym/portage/cvstree.py b/pym/portage/cvstree.py index 9ba22f315..3680ae41f 100644 --- a/pym/portage/cvstree.py +++ b/pym/portage/cvstree.py @@ -248,11 +248,13 @@ def getentries(mydir,recursive=0): if entries["files"][mysplit[1]]["revision"][0]=="-": entries["files"][mysplit[1]]["status"]+=["removed"] - for file in apply_cvsignore_filter(os.listdir(mydir)): + for file in os.listdir(mydir): if file=="CVS": continue if os.path.isdir(mydir+"/"+file): if file not in entries["dirs"]: + if ignore_list.match(file) is not None: + continue entries["dirs"][file]={"dirs":{},"files":{}} # It's normal for a directory to be unlisted in Entries # when checked out without -P (see bug #257660). @@ -266,6 +268,8 @@ def getentries(mydir,recursive=0): entries["dirs"][file]["status"]=["exists"] elif os.path.isfile(mydir+"/"+file): if file not in entries["files"]: + if ignore_list.match(file) is not None: + continue entries["files"][file]={"revision":"","date":"","flags":"","tags":""} if "status" in entries["files"][file]: if "exists" not in entries["files"][file]["status"]: @@ -285,7 +289,9 @@ def getentries(mydir,recursive=0): print("failed to stat",file) print(e) return - + + elif ignore_list.match(file) is not None: + pass else: print() print("File of unknown type:",mydir+"/"+file) |