summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-02-27 20:57:35 -0800
committerZac Medico <zmedico@gentoo.org>2012-02-27 20:57:35 -0800
commitef4fc7d5347e96e085c11d8843cceae1f433fe24 (patch)
tree2b0d4546c3244a6e0f93c744f5b684327bdc49a9
parentautounmask: Avoid unmasking live versions if possible (diff)
downloadportage-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.py10
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)