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

commit:     f8198d98b7d195b0b42fecf648022fd5bcd4e4a8
Author:     Brian Dolbec <dolsen <AT> gentoo <DOT> org>
AuthorDate: Sun Feb  7 18:32:59 2016 +0000
Commit:     Brian Dolbec <dolsen <AT> gentoo <DOT> org>
CommitDate: Sun Feb  7 18:32:59 2016 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=f8198d98

repoman: Migrate thick_manifest to the vcs Changes classes

 pym/repoman/actions.py                 | 53 ++--------------------------------
 pym/repoman/modules/vcs/changes.py     |  5 ++++
 pym/repoman/modules/vcs/cvs/changes.py | 19 ++++++++++++
 pym/repoman/modules/vcs/svn/changes.py | 42 +++++++++++++++++++++++++++
 4 files changed, 68 insertions(+), 51 deletions(-)

diff --git a/pym/repoman/actions.py b/pym/repoman/actions.py
index 15a0d04..20116db 100644
--- a/pym/repoman/actions.py
+++ b/pym/repoman/actions.py
@@ -131,7 +131,8 @@ class Actions(object):
 			print()
 		elif not self.repo_settings.repo_config.thin_manifest:
 			logging.debug("perform: Calling thick_manifest()")
-			self.thick_manifest(myupdates, myheaders, no_expansion, expansion)
+			self.vcs_settings.changes.thick_manifest(myupdates, myheaders,
+				no_expansion, expansion)
 
 		logging.info("myupdates: %s", myupdates)
 		logging.info("myheaders: %s", myheaders)
@@ -570,56 +571,6 @@ class Actions(object):
 				pass
 
 
-	def thick_manifest(self, myupdates, myheaders, no_expansion, expansion):
-		if self.vcs_settings.vcs == 'cvs':
-			headerstring = "'\$(Header|Id).*\$'"
-		elif self.vcs_settings.vcs == "svn":
-			svn_keywords = dict((k.lower(), k) for k in [
-				"Rev",
-				"Revision",
-				"LastChangedRevision",
-				"Date",
-				"LastChangedDate",
-				"Author",
-				"LastChangedBy",
-				"URL",
-				"HeadURL",
-				"Id",
-				"Header",
-			])
-
-		for myfile in myupdates:
-
-			# for CVS, no_expansion contains files that are excluded from expansion
-			if self.vcs_settings.vcs == "cvs":
-				if myfile in no_expansion:
-					continue
-
-			# for SVN, expansion contains files that are included in expansion
-			elif self.vcs_settings.vcs == "svn":
-				if myfile not in expansion:
-					continue
-
-				# Subversion keywords are case-insensitive
-				# in svn:keywords properties,
-				# but case-sensitive in contents of files.
-				enabled_keywords = []
-				for k in expansion[myfile]:
-					keyword = svn_keywords.get(k.lower())
-					if keyword is not None:
-						enabled_keywords.append(keyword)
-
-				headerstring = "'\$(%s).*\$'" % "|".join(enabled_keywords)
-
-			myout = repoman_getstatusoutput(
-				"egrep -q %s %s" % (headerstring, portage._shell_quote(myfile)))
-			if myout[0] == 0:
-				myheaders.append(myfile)
-
-		print("%s have headers that will change." % green(str(len(myheaders))))
-		print(
-			"* Files with headers will"
-			" cause the manifests to be changed and committed separately.")
 
 
 	def clear_attic(self, myheaders):

diff --git a/pym/repoman/modules/vcs/changes.py b/pym/repoman/modules/vcs/changes.py
index 76ad591..77d7dc1 100644
--- a/pym/repoman/modules/vcs/changes.py
+++ b/pym/repoman/modules/vcs/changes.py
@@ -69,3 +69,8 @@ class ChangesBase(object):
 	def expansion(self):
 		'''Override this function as needed'''
 		return {}
+
+	def thick_manifest(self, myupdates, myheaders, no_expansion, expansion):
+		'''Create a thick manifest'''
+		pass
+

diff --git a/pym/repoman/modules/vcs/cvs/changes.py b/pym/repoman/modules/vcs/cvs/changes.py
index 3ef91cc..6accd4a 100644
--- a/pym/repoman/modules/vcs/cvs/changes.py
+++ b/pym/repoman/modules/vcs/cvs/changes.py
@@ -41,3 +41,22 @@ class Changes(ChangesBase):
 			return self._unadded
 		self._unadded = portage.cvstree.findunadded(self._tree, recursive=1, basedir="./")
 		return self._unadded
+	def thick_manifest(self, myupdates, myheaders, no_expansion, expansion):
+		headerstring = "'\$(Header|Id).*\$'"
+
+		for myfile in myupdates:
+
+			# for CVS, no_expansion contains files that are excluded from expansion
+			if myfile in no_expansion:
+				continue
+
+			myout = repoman_getstatusoutput(
+				"egrep -q %s %s" % (headerstring, portage._shell_quote(myfile)))
+			if myout[0] == 0:
+				myheaders.append(myfile)
+
+		print("%s have headers that will change." % green(str(len(myheaders))))
+		print(
+			"* Files with headers will"
+			" cause the manifests to be changed and committed separately.")
+

diff --git a/pym/repoman/modules/vcs/svn/changes.py b/pym/repoman/modules/vcs/svn/changes.py
index 9a0efbf..6b25a21 100644
--- a/pym/repoman/modules/vcs/svn/changes.py
+++ b/pym/repoman/modules/vcs/svn/changes.py
@@ -64,3 +64,45 @@ class Changes(ChangesBase):
 			if elem.startswith("?") or elem.startswith("I")]
 		del svnstatus
 		return self._unadded
+
+	def thick_manifest(self, myupdates, myheaders, no_expansion, expansion):
+		svn_keywords = dict((k.lower(), k) for k in [
+			"Rev",
+			"Revision",
+			"LastChangedRevision",
+			"Date",
+			"LastChangedDate",
+			"Author",
+			"LastChangedBy",
+			"URL",
+			"HeadURL",
+			"Id",
+			"Header",
+		])
+
+		for myfile in myupdates:
+			# for SVN, expansion contains files that are included in expansion
+			if myfile not in expansion:
+				continue
+
+			# Subversion keywords are case-insensitive
+			# in svn:keywords properties,
+			# but case-sensitive in contents of files.
+			enabled_keywords = []
+			for k in expansion[myfile]:
+				keyword = svn_keywords.get(k.lower())
+				if keyword is not None:
+					enabled_keywords.append(keyword)
+
+			headerstring = "'\$(%s).*\$'" % "|".join(enabled_keywords)
+
+			myout = repoman_getstatusoutput(
+				"egrep -q %s %s" % (headerstring, portage._shell_quote(myfile)))
+			if myout[0] == 0:
+				myheaders.append(myfile)
+
+		print("%s have headers that will change." % green(str(len(myheaders))))
+		print(
+			"* Files with headers will"
+			" cause the manifests to be changed and committed separately.")
+


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

only message in thread, other threads:[~2016-02-07 18:55 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-07 18:55 [gentoo-commits] proj/portage:repoman commit in: 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