public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/portage:repoman commit in: pym/repoman/, pym/repoman/modules/vcs/cvs/, pym/repoman/modules/vcs/
@ 2016-05-03  6:11 Brian Dolbec
  0 siblings, 0 replies; only message in thread
From: Brian Dolbec @ 2016-05-03  6:11 UTC (permalink / raw
  To: gentoo-commits

commit:     d715028a686513979e6fb2b270df5f825d30cb65
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sun May  1 03:31:04 2016 +0000
Commit:     Brian Dolbec <dolsen <AT> gentoo <DOT> org>
CommitDate: Sun May  1 03:32:07 2016 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=d715028a

repoman: handle removed packages in vcs_files_to_cps (bug 546010)

X-Gentoo-Bug: 546010
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=546010

 pym/repoman/actions.py                 | 1 +
 pym/repoman/modules/vcs/cvs/changes.py | 1 +
 pym/repoman/modules/vcs/vcs.py         | 7 +++++--
 pym/repoman/scanner.py                 | 1 +
 4 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/pym/repoman/actions.py b/pym/repoman/actions.py
index 643e24c..4144b45 100644
--- a/pym/repoman/actions.py
+++ b/pym/repoman/actions.py
@@ -370,6 +370,7 @@ class Actions(object):
 			committer_name = utilities.get_committer_name(env=self.repoman_settings)
 			for x in sorted(vcs_files_to_cps(
 				chain(myupdates, mymanifests, myremoved),
+				self.repo_settings.repodir,
 				self.scanner.repolevel, self.scanner.reposplit, self.scanner.categories)):
 				catdir, pkgdir = x.split("/")
 				checkdir = self.repo_settings.repodir + "/" + x

diff --git a/pym/repoman/modules/vcs/cvs/changes.py b/pym/repoman/modules/vcs/cvs/changes.py
index 3e2f97a..c3d880b 100644
--- a/pym/repoman/modules/vcs/cvs/changes.py
+++ b/pym/repoman/modules/vcs/cvs/changes.py
@@ -112,6 +112,7 @@ class Changes(ChangesBase):
 		if updates or removed:
 			for x in sorted(vcs_files_to_cps(
 				chain(updates, removed, manifests),
+				self.repo_settings.repodir,
 				scanner.repolevel, scanner.reposplit, scanner.categories)):
 				self.repoman_settings["O"] = os.path.join(self.repo_settings.repodir, x)
 				digestgen(mysettings=self.repoman_settings, myportdb=self.repo_settings.portdb)

diff --git a/pym/repoman/modules/vcs/vcs.py b/pym/repoman/modules/vcs/vcs.py
index c8cb55d..e9d45d4 100644
--- a/pym/repoman/modules/vcs/vcs.py
+++ b/pym/repoman/modules/vcs/vcs.py
@@ -96,7 +96,7 @@ def FindVCS(cwd=None):
 	return outvcs
 
 
-def vcs_files_to_cps(vcs_file_iter, repolevel, reposplit, categories):
+def vcs_files_to_cps(vcs_file_iter, repodir, repolevel, reposplit, categories):
 	"""
 	Iterate over the given modified file paths returned from the vcs,
 	and return a frozenset containing category/pn strings for each
@@ -127,7 +127,10 @@ def vcs_files_to_cps(vcs_file_iter, repolevel, reposplit, categories):
 			if len(f_split) > 3 and f_split[1] in categories:
 				modified_cps.append("/".join(f_split[1:3]))
 
-	return frozenset(modified_cps)
+	# Exclude packages that have been removed, since calling
+	# code assumes that the packages exist.
+	return frozenset(x for x in frozenset(modified_cps)
+		if os.path.exists(os.path.join(repodir, x)))
 
 
 def vcs_new_changed(relative_path, mychanged, mynew):

diff --git a/pym/repoman/scanner.py b/pym/repoman/scanner.py
index e383c8d..fd07209 100644
--- a/pym/repoman/scanner.py
+++ b/pym/repoman/scanner.py
@@ -177,6 +177,7 @@ class Scanner(object):
 		if self.options.if_modified == "y":
 			self.effective_scanlist = sorted(vcs_files_to_cps(
 				chain(self.changed.changed, self.changed.new, self.changed.removed),
+				self.repo_settings.repodir,
 				self.repolevel, self.reposplit, self.categories))
 
 		# Create our kwargs dict here to initialize the plugins with


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2016-05-03  6:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-03  6:11 [gentoo-commits] proj/portage:repoman commit in: pym/repoman/, pym/repoman/modules/vcs/cvs/, pym/repoman/modules/vcs/ Brian Dolbec

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox