[gentoo-commits] proj/portage:repoman commit in: pym/repoman/modules/vcs/, pym/repoman/modules/vcs/hg/, ...

2016-04-21 Thread Brian Dolbec
commit: fa6fa3342cddb6303df3f4a47d869e30731432b3
Author: Brian Dolbec  gentoo  org>
AuthorDate: Sat Jan 30 07:58:04 2016 +
Commit: Brian Dolbec  gentoo  org>
CommitDate: Thu Apr 21 16:49:27 2016 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=fa6fa334

repoman: Create docstrings for all new vcs module files

 pym/repoman/modules/vcs/None/changes.py |  9 -
 pym/repoman/modules/vcs/None/status.py  | 35 ++---
 pym/repoman/modules/vcs/bzr/__init__.py |  2 +-
 pym/repoman/modules/vcs/bzr/changes.py  |  9 -
 pym/repoman/modules/vcs/bzr/status.py   | 30 
 pym/repoman/modules/vcs/changes.py  |  3 +++
 pym/repoman/modules/vcs/cvs/__init__.py |  2 +-
 pym/repoman/modules/vcs/cvs/changes.py  |  8 +++-
 pym/repoman/modules/vcs/cvs/status.py   | 18 +
 pym/repoman/modules/vcs/git/__init__.py |  2 +-
 pym/repoman/modules/vcs/git/changes.py  |  9 -
 pym/repoman/modules/vcs/git/status.py   | 33 +++
 pym/repoman/modules/vcs/hg/__init__.py  |  2 +-
 pym/repoman/modules/vcs/hg/changes.py   |  9 -
 pym/repoman/modules/vcs/hg/status.py| 31 +
 pym/repoman/modules/vcs/settings.py |  2 +-
 pym/repoman/modules/vcs/svn/__init__.py |  2 +-
 pym/repoman/modules/vcs/svn/changes.py  |  9 -
 pym/repoman/modules/vcs/svn/status.py   | 27 ++---
 19 files changed, 220 insertions(+), 22 deletions(-)

diff --git a/pym/repoman/modules/vcs/None/changes.py 
b/pym/repoman/modules/vcs/None/changes.py
index f95af69..759b554 100644
--- a/pym/repoman/modules/vcs/None/changes.py
+++ b/pym/repoman/modules/vcs/None/changes.py
@@ -1,4 +1,6 @@
-
+'''
+None module Changes class submodule
+'''
 
 from repoman.modules.vcs.changes import ChangesBase
 
@@ -11,7 +13,12 @@ class Changes(ChangesBase):
vcs = 'None'
 
def __init__(self, options):
+   '''Class init
+
+   @param options: commandline options
+   '''
super(Changes, self).__init__(options)
 
def scan(self):
+   '''VCS type scan function, looks for all detectable changes'''
pass

diff --git a/pym/repoman/modules/vcs/None/status.py 
b/pym/repoman/modules/vcs/None/status.py
index b23fa10..d6e5ca0 100644
--- a/pym/repoman/modules/vcs/None/status.py
+++ b/pym/repoman/modules/vcs/None/status.py
@@ -1,24 +1,53 @@
-
+'''
+None (non-VCS) module Status class submodule
+'''
 
 
 class Status(object):
+   '''Performs status checks on the svn repository'''
 
def __init__(self, qatracker, eadded):
+   '''Class init
+
+   @param qatracker: QATracker class instance
+   @param eadded: list
+   '''
self.qatracker = qatracker
self.eadded = eadded
 
def check(self, checkdir, checkdir_relative, xpkg):
+   '''Perform the svn status check
+
+   @param checkdir: string of the directory being checked
+   @param checkdir_relative: string of the relative directory 
being checked
+   @param xpkg: string of the package being checked
+   @returns: boolean
+   '''
return True
 
@staticmethod
-   def supports_gpg_sign():
+   def detect_conflicts(options):
+   '''Are there any merge conflicts present in the VCS tracking 
system
+
+   @param options: command line options
+   @returns: Boolean
+   '''
return False
 
@staticmethod
-   def detect_conflicts(options):
+   def supports_gpg_sign():
+   '''Does this vcs system support gpg commit signatures
+
+   @returns: Boolean
+   '''
return False
 
@staticmethod
def isVcsDir(dirname):
+   '''Is the directory belong to the vcs system
+
+   @param dirname: string, directory name
+   @returns: Boolean
+   '''
return False
 

diff --git a/pym/repoman/modules/vcs/bzr/__init__.py 
b/pym/repoman/modules/vcs/bzr/__init__.py
index 1192782..4490ed8 100644
--- a/pym/repoman/modules/vcs/bzr/__init__.py
+++ b/pym/repoman/modules/vcs/bzr/__init__.py
@@ -1,7 +1,7 @@
 # Copyright 2014-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
-doc = """BZR plug-in module for portage.
+doc = """Bazaar (bzr) plug-in module for portage.
 Performs variaous Bazaar actions and checks on repositories."""
 __doc__ = doc[:]
 

diff --git a/pym/repoman/modules/vcs/bzr/changes.py 
b/pym/repoman/modules/vcs/bzr/changes.py
index 41ce347..519d311 100644
--- a/pym/repoman/modules/vcs/bzr/changes.py
+++ b/pym/repoman/modules/vcs/bzr/changes.py
@@ -1,4 +1,6 @@
-
+'''
+Bazaar module Changes class submodule
+'''
 
 from 

[gentoo-commits] proj/portage:repoman commit in: pym/repoman/modules/vcs/, pym/repoman/modules/vcs/hg/, ...

2016-03-10 Thread Brian Dolbec
commit: c5b4ca46dd29bb8a402230fbc39156a50892fa5d
Author: Brian Dolbec  gentoo  org>
AuthorDate: Tue Feb 16 20:06:30 2016 +
Commit: Brian Dolbec  gentoo  org>
CommitDate: Fri Mar 11 00:36:56 2016 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=c5b4ca46

repoman: Migrate the commit code to the vcs modules

 pym/repoman/actions.py  | 84 +
 pym/repoman/modules/vcs/None/changes.py | 13 +
 pym/repoman/modules/vcs/bzr/changes.py  |  1 -
 pym/repoman/modules/vcs/changes.py  | 20 
 pym/repoman/modules/vcs/cvs/changes.py  |  1 -
 pym/repoman/modules/vcs/git/changes.py  | 10 
 pym/repoman/modules/vcs/hg/changes.py   | 16 +++
 7 files changed, 82 insertions(+), 63 deletions(-)

diff --git a/pym/repoman/actions.py b/pym/repoman/actions.py
index 4032e04..c0cd5cc 100644
--- a/pym/repoman/actions.py
+++ b/pym/repoman/actions.py
@@ -7,21 +7,19 @@ import io
 import logging
 import platform
 import signal
-import subprocess
 import sys
 import tempfile
 from itertools import chain
 
 from _emerge.UserQuery import UserQuery
 
-import portage
+from repoman._portage import portage
 from portage import os
 from portage import _encodings
 from portage import _unicode_encode
 from portage.output import (
bold, create_color_func, green, red)
 from portage.package.ebuild.digestgen import digestgen
-from portage.process import find_binary, spawn
 from portage.util import writemsg_level
 
 from repoman.gpg import gpgsign, need_signature
@@ -443,43 +441,18 @@ class Actions(object):
mymsg.write(_unicode_encode(commitmessage))
mymsg.close()
 
-   commit_cmd = []
-   if self.options.pretend and self.vcs_settings.vcs is None:
-   # substitute a bogus value for pretend output
-   commit_cmd.append("cvs")
-   else:
-   commit_cmd.append(self.vcs_settings.vcs)
-   commit_cmd.extend(self.vcs_settings.vcs_global_opts)
-   commit_cmd.append("commit")
-   commit_cmd.extend(self.vcs_settings.vcs_local_opts)
-   if self.vcs_settings.vcs == "hg":
-   commit_cmd.extend(["--logfile", commitmessagefile])
-   commit_cmd.extend(myfiles)
-   else:
-   commit_cmd.extend(["-F", commitmessagefile])
-   commit_cmd.extend(f.lstrip("./") for f in myfiles)
-
+   retval = self.vcs_settings.changes.commit(myfiles, 
commitmessagefile)
+   # cleanup the commit message before possibly exiting
try:
-   if self.options.pretend:
-   print("(%s)" % (" ".join(commit_cmd),))
-   else:
-   retval = spawn(commit_cmd, 
env=self.repo_settings.commit_env)
-   if retval != os.EX_OK:
-   if 
self.repo_settings.repo_config.sign_commit and not 
self.vcs_settings.status.supports_gpg_sign():
-   # Inform user that newer git is 
needed (bug #403323).
-   logging.error(
-   "Git >=1.7.9 is 
required for signed commits!")
-
-   writemsg_level(
-   "!!! Exiting on %s (shell) "
-   "error code: %s\n" % 
(self.vcs_settings.vcs, retval),
-   level=logging.ERROR, 
noiselevel=-1)
-   sys.exit(retval)
-   finally:
-   try:
-   os.unlink(commitmessagefile)
-   except OSError:
-   pass
+   os.unlink(commitmessagefile)
+   except OSError:
+   pass
+   if retval != os.EX_OK:
+   writemsg_level(
+   "!!! Exiting on %s (shell) "
+   "error code: %s\n" % (self.vcs_settings.vcs, 
retval),
+   level=logging.ERROR, noiselevel=-1)
+   sys.exit(retval)
 
 
def priming_commit(self, myupdates, myremoved, commitmessage):
@@ -503,29 +476,18 @@ class Actions(object):
# so strip the prefix.
myfiles = [f.lstrip("./") for f in myfiles]
 
-   commit_cmd = [self.vcs_settings.vcs]
-   commit_cmd.extend(self.vcs_settings.vcs_global_opts)
-   commit_cmd.append("commit")
-   commit_cmd.extend(self.vcs_settings.vcs_local_opts)
-   commit_cmd.extend(["-F", commitmessagefile])
-   commit_cmd.extend(myfiles)

[gentoo-commits] proj/portage:repoman commit in: pym/repoman/modules/vcs/, pym/repoman/modules/vcs/hg/, pym/repoman/, ...

2016-03-07 Thread Brian Dolbec
commit: c973139bcda1e447428c92fb33304cbe38a34eae
Author: Brian Dolbec  gentoo  org>
AuthorDate: Sun Feb  7 18:53:58 2016 +
Commit: Brian Dolbec  gentoo  org>
CommitDate: Mon Mar  7 21:21:35 2016 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=c973139b

repoman: Migrate digest regeneration to the vcs modules

 pym/repoman/actions.py | 15 ++-
 pym/repoman/modules/vcs/bzr/changes.py | 14 --
 pym/repoman/modules/vcs/changes.py |  5 +
 pym/repoman/modules/vcs/cvs/changes.py | 14 +++---
 pym/repoman/modules/vcs/git/changes.py |  9 +
 pym/repoman/modules/vcs/hg/changes.py  |  9 +
 pym/repoman/modules/vcs/settings.py|  6 --
 pym/repoman/modules/vcs/svn/changes.py | 17 +
 8 files changed, 69 insertions(+), 20 deletions(-)

diff --git a/pym/repoman/actions.py b/pym/repoman/actions.py
index e045295..21e7db6 100644
--- a/pym/repoman/actions.py
+++ b/pym/repoman/actions.py
@@ -6,7 +6,6 @@ import errno
 import io
 import logging
 import platform
-import re
 import signal
 import subprocess
 import sys
@@ -25,7 +24,6 @@ from portage.package.ebuild.digestgen import digestgen
 from portage.process import find_binary, spawn
 from portage.util import writemsg_level
 
-from repoman._subprocess import repoman_getstatusoutput
 from repoman.gpg import gpgsign, need_signature
 from repoman import utilities
 from repoman.modules.vcs.vcs import vcs_files_to_cps
@@ -159,17 +157,8 @@ class Actions(object):
"\"You're rather crazy... "
"doing the entire repository.\"\n")
 
-   if self.vcs_settings.vcs in ('cvs', 'svn') and (myupdates or 
myremoved):
-   for x in sorted(vcs_files_to_cps(
-   chain(myupdates, myremoved, mymanifests),
-   self.scanner.repolevel, self.scanner.reposplit, 
self.scanner.categories)):
-   self.repoman_settings["O"] = 
os.path.join(self.repo_settings.repodir, x)
-   digestgen(mysettings=self.repoman_settings, 
myportdb=self.repo_settings.portdb)
-
-   elif broken_changelog_manifests:
-   for x in broken_changelog_manifests:
-   self.repoman_settings["O"] = 
os.path.join(self.repo_settings.repodir, x)
-   digestgen(mysettings=self.repoman_settings, 
myportdb=self.repo_settings.portdb)
+   self.vcs_settings.changes.digest_regen(myupdates, myremoved, 
mymanifests,
+   self.scanner, broken_changelog_manifests)
 
if self.repo_settings.sign_manifests:
self.sign_manifest(myupdates, myremoved, mymanifests)

diff --git a/pym/repoman/modules/vcs/bzr/changes.py 
b/pym/repoman/modules/vcs/bzr/changes.py
index 9bd0646..81e7cf5 100644
--- a/pym/repoman/modules/vcs/bzr/changes.py
+++ b/pym/repoman/modules/vcs/bzr/changes.py
@@ -4,7 +4,9 @@ Bazaar module Changes class submodule
 
 from repoman.modules.vcs.changes import ChangesBase
 from repoman._subprocess import repoman_popen
-
+from repoman._portage import portage
+from portage import os
+from portage.package.ebuild.digestgen import digestgen
 
 class Changes(ChangesBase):
'''Class object to scan and hold the resultant data
@@ -36,6 +38,7 @@ class Changes(ChangesBase):
"./" + elem.split()[-3:-2][0].split('/')[-1:][0]
for elem in bzrstatus
if elem and (elem[1:2] == "K" or elem[0:1] == "R")]
+   self.bzrstatus = bzrstatus
# Bazaar expands nothing.
 
@property
@@ -45,6 +48,13 @@ class Changes(ChangesBase):
return self._unadded
self._unadded = [
"./" + elem.rstrip().split()[1].split('/')[-1:][0]
-   for elem in bzrstatus
+   for elem in self.bzrstatus
if elem.startswith("?") or elem[0:2] == " D"]
return self._unadded
+
+   def digest_regen(self, myupdates, myremoved, mymanifests, scanner, 
broken_changelog_manifests):
+   if broken_changelog_manifests:
+   for x in broken_changelog_manifests:
+   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/changes.py 
b/pym/repoman/modules/vcs/changes.py
index 921e9b5..27b627f 100644
--- a/pym/repoman/modules/vcs/changes.py
+++ b/pym/repoman/modules/vcs/changes.py
@@ -76,6 +76,11 @@ class ChangesBase(object):
'''Create a thick manifest'''
pass
 
+   def digest_regen(self, myupdates, myremoved, mymanifests, scanner,
+ 

[gentoo-commits] proj/portage:repoman commit in: pym/repoman/modules/vcs/, pym/repoman/modules/vcs/hg/, ...

2016-02-07 Thread Brian Dolbec
commit: ce233f472c693d2249a0ae41d9b00f7b4dbb9cc9
Author: Brian Dolbec  gentoo  org>
AuthorDate: Sun Feb  7 18:50:21 2016 +
Commit: Brian Dolbec  gentoo  org>
CommitDate: Sun Feb  7 18:50:21 2016 +
URL:https://gitweb.gentoo.org/proj/portage.git/commit/?id=ce233f47

repoman: Add repo_settings to VCSSettings class and the Changes classes

Needed for more code migration from atcions.py to the vcs modules.

 pym/repoman/main.py | 4 
 pym/repoman/modules/vcs/None/changes.py | 4 ++--
 pym/repoman/modules/vcs/bzr/changes.py  | 4 ++--
 pym/repoman/modules/vcs/changes.py  | 4 +++-
 pym/repoman/modules/vcs/cvs/changes.py  | 4 ++--
 pym/repoman/modules/vcs/git/changes.py  | 4 ++--
 pym/repoman/modules/vcs/hg/changes.py   | 4 ++--
 pym/repoman/modules/vcs/svn/changes.py  | 4 ++--
 8 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/pym/repoman/main.py b/pym/repoman/main.py
index 6921005..337e638 100755
--- a/pym/repoman/main.py
+++ b/pym/repoman/main.py
@@ -84,6 +84,7 @@ def repoman_main(argv):
myreporoot = os.path.basename(portdir_overlay)
myreporoot += mydir[len(portdir_overlay):]
 
+   # avoid a circular parameter repo_settings
vcs_settings = VCSSettings(options, repoman_settings)
 
repo_settings = RepoSettings(
@@ -91,6 +92,9 @@ def repoman_main(argv):
repoman_settings, vcs_settings, options, qawarnings)
repoman_settings = repo_settings.repoman_settings
 
+   # Now set repo_settings
+   vcs_settings.repo_settings = repo_settings
+
if 'digest' in repoman_settings.features and options.digest != 'n':
options.digest = 'y'
 

diff --git a/pym/repoman/modules/vcs/None/changes.py 
b/pym/repoman/modules/vcs/None/changes.py
index 759b554..37693ad 100644
--- a/pym/repoman/modules/vcs/None/changes.py
+++ b/pym/repoman/modules/vcs/None/changes.py
@@ -12,12 +12,12 @@ class Changes(ChangesBase):
 
vcs = 'None'
 
-   def __init__(self, options):
+   def __init__(self, options, repo_settings):
'''Class init
 
@param options: commandline options
'''
-   super(Changes, self).__init__(options)
+   super(Changes, self).__init__(options, repo_settings)
 
def scan(self):
'''VCS type scan function, looks for all detectable changes'''

diff --git a/pym/repoman/modules/vcs/bzr/changes.py 
b/pym/repoman/modules/vcs/bzr/changes.py
index 519d311..9bd0646 100644
--- a/pym/repoman/modules/vcs/bzr/changes.py
+++ b/pym/repoman/modules/vcs/bzr/changes.py
@@ -13,12 +13,12 @@ class Changes(ChangesBase):
 
vcs = 'bzr'
 
-   def __init__(self, options):
+   def __init__(self, options, repo_settings):
'''Class init
 
@param options: commandline options
'''
-   super(Changes, self).__init__(options)
+   super(Changes, self).__init__(options, repo_settings)
 
def _scan(self):
'''VCS type scan function, looks for all detectable changes'''

diff --git a/pym/repoman/modules/vcs/changes.py 
b/pym/repoman/modules/vcs/changes.py
index 1745a65..921e9b5 100644
--- a/pym/repoman/modules/vcs/changes.py
+++ b/pym/repoman/modules/vcs/changes.py
@@ -13,8 +13,10 @@ class ChangesBase(object):
 
vcs = 'None'
 
-   def __init__(self, options):
+   def __init__(self, options, repo_settings):
self.options = options
+   self.repo_settings = repo_settings
+   self.repoman_settings = repo_settings.repoman_settings
self._reset()
 
def _reset(self):

diff --git a/pym/repoman/modules/vcs/cvs/changes.py 
b/pym/repoman/modules/vcs/cvs/changes.py
index 061486f..5fc9642 100644
--- a/pym/repoman/modules/vcs/cvs/changes.py
+++ b/pym/repoman/modules/vcs/cvs/changes.py
@@ -16,12 +16,12 @@ class Changes(ChangesBase):
 
vcs = 'cvs'
 
-   def __init__(self, options):
+   def __init__(self, options, repo_settings):
'''Class init
 
@param options: commandline options
'''
-   super(Changes, self).__init__(options)
+   super(Changes, self).__init__(options, repo_settings)
self._tree = None
 
def _scan(self):

diff --git a/pym/repoman/modules/vcs/git/changes.py 
b/pym/repoman/modules/vcs/git/changes.py
index d0b6acd..f159298 100644
--- a/pym/repoman/modules/vcs/git/changes.py
+++ b/pym/repoman/modules/vcs/git/changes.py
@@ -13,12 +13,12 @@ class Changes(ChangesBase):
 
vcs = 'git'
 
-   def __init__(self, options):
+   def __init__(self, options, repo_settings):
'''Class init
 
@param options: commandline options
'''
-   super(Changes, self).__init__(options)
+   super(Changes, self).__init__(options, repo_settings)
 
def