[gentoo-commits] proj/portage:repoman commit in: pym/repoman/modules/vcs/, pym/repoman/modules/vcs/hg/, ...
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/, ...
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/, ...
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/, ...
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