aboutsummaryrefslogtreecommitdiff
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 /pym/portage/cvstree.py
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
Diffstat (limited to 'pym/portage/cvstree.py')
-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)