diff options
author | Guido Günther <agx@sigxcpu.org> | 2018-08-19 08:29:27 +0200 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2018-08-19 08:29:27 +0200 |
commit | 3384a0f7a763144e5d627c454d7d76c2841e553b (patch) | |
tree | 0b0b5ed51bf2f16ee2a991894609bb75ccdb6522 /gbp | |
parent | ddc4393a64f3662e0214ea180c7ec6f5a2ae3794 (diff) |
Revert "gbp import-ref: New command to merge in changes from a upstream using git"
This reverts commit 1592882c38fcbb107332d9a0a63b8da4e0bf8a48.
It's not ready yet.
Diffstat (limited to 'gbp')
-rw-r--r-- | gbp/config.py | 1 | ||||
-rw-r--r-- | gbp/scripts/import_ref.py | 207 |
2 files changed, 0 insertions, 208 deletions
diff --git a/gbp/config.py b/gbp/config.py index 76a850de..95b02442 100644 --- a/gbp/config.py +++ b/gbp/config.py @@ -131,7 +131,6 @@ class GbpOptionParser(OptionParser): 'full': 'False', 'git-author': 'False', 'git-log': '--no-merges', - 'git-ref': 'upstream/latest', 'hooks': 'True', 'id-length': '0', 'ignore-branch': 'False', diff --git a/gbp/scripts/import_ref.py b/gbp/scripts/import_ref.py deleted file mode 100644 index e1177a10..00000000 --- a/gbp/scripts/import_ref.py +++ /dev/null @@ -1,207 +0,0 @@ -# vim: set fileencoding=utf-8 : -# -# (C) 2018 Michael Stapelberg <stapelberg@debian.org> -# 2018 Guido Günther <agx@sigxcpu.org> -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, please see -# <http://www.gnu.org/licenses/> -# -"""Import a new upstream version from a git branch onto the Debian branch""" - -import os -import sys -import gbp.command_wrappers as gbpc -from gbp.deb.git import GitRepositoryError -from gbp.config import GbpOptionParserDebian, GbpOptionGroup -from gbp.errors import GbpError -import gbp.log -from gbp.scripts.common import ExitCodes -from gbp.deb.rollbackgit import RollbackDebianGitRepository - -from gbp.scripts.import_orig import (debian_branch_merge, - postimport_hook, - set_bare_repo_options, - rollback) - - -def get_commit_and_version_to_merge(repo, options): - """ - Get the commit and version we want to merge based on the - --upstream-tag setting - """ - version = options.version - if options.upstream_tree.upper() == 'VERSION': - # Determine tag name from given version - if not options.version: - raise GbpError("No upstream version given, try -u<version>") - commit = repo.version_to_tag(options.upstream_tag, options.version) - elif options.upstream_tree.upper() == 'BRANCH': - # Use head of upstrem branch - if not repo.has_branch(options.upstream_branch): - raise GbpError("%s is not a valid branch" % options.upstream_branch) - commit = options.upstream_branch - else: - # Use whatever is passed in as commitish - commit = "%s^{commit}" % options.upstream_tree - return commit, version - - -def build_parser(name): - try: - parser = GbpOptionParserDebian(command=os.path.basename(name), prefix='', - usage='%prog [options] /path/to/upstream-version.tar.gz | --uscan') - except GbpError as err: - gbp.log.err(err) - return None - - import_group = GbpOptionGroup(parser, "import options", - "import related options") - tag_group = GbpOptionGroup(parser, "tag options", - "tag related options ") - branch_group = GbpOptionGroup(parser, "version and branch naming options", - "version number and branch layout options") - cmd_group = GbpOptionGroup(parser, "external command options", - "how and when to invoke external commands and hooks") - for group in [import_group, branch_group, tag_group, cmd_group]: - parser.add_option_group(group) - - branch_group.add_option("-u", "--upstream-version", dest="version", - help="The version number to use for the new version, " - "default is ''", default='') - branch_group.add_config_file_option(option_name="debian-branch", - dest="debian_branch") - branch_group.add_config_file_option(option_name="upstream-branch", - dest="upstream_branch") - branch_group.add_config_file_option(option_name="upstream-tree", - dest="upstream_tree", - help="Where to merge the upstream changes from.", - default="VERSION") - branch_group.add_config_file_option(option_name="merge-mode", dest="merge_mode") - - tag_group.add_boolean_config_file_option(option_name="sign-tags", - dest="sign_tags") - tag_group.add_config_file_option(option_name="keyid", - dest="keyid") - tag_group.add_config_file_option(option_name="upstream-tag", - dest="upstream_tag") - import_group.add_config_file_option(option_name="import-msg", - dest="import_msg") - cmd_group.add_config_file_option(option_name="postimport", dest="postimport") - - parser.add_boolean_config_file_option(option_name="rollback", - dest="rollback") - parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False, - help="verbose command execution") - parser.add_config_file_option(option_name="color", dest="color", type='tristate') - parser.add_config_file_option(option_name="color-scheme", - dest="color_scheme") - return parser - - -def parse_args(argv): - """Parse the command line arguments - @return: options and arguments - """ - - parser = build_parser(argv[0]) - if not parser: - return None, None - - (options, args) = parser.parse_args(argv[1:]) - gbp.log.setup(options.color, options.verbose, options.color_scheme) - - return options, args - - -def main(argv): - ret = 0 - repo = None - - (options, args) = parse_args(argv) - if not options: - return ExitCodes.parse_error - - # TODO: honor --filter option - # TODO: add --filter-with-copyright which takes d/copyright into account - # TODO: handle automatic versions based on timestamp + sha1 - # TODO: handle updating of upstream branch from remote - try: - try: - repo = RollbackDebianGitRepository('.') - except GitRepositoryError: - raise GbpError("%s is not a git repository" % (os.path.abspath('.'))) - - commit, version = get_commit_and_version_to_merge(repo, options) - - is_empty = repo.is_empty() - - (clean, out) = repo.is_clean() - if not clean and not is_empty: - gbp.log.err("Repository has uncommitted changes, commit these first: ") - raise GbpError(out) - - if repo.bare: - set_bare_repo_options(options) - - try: - tag = repo.version_to_tag(options.upstream_tag, version) - if not repo.has_tag(tag): - gbp.log.info("Upstream tag '%s' not found. Creating it for you." % tag) - repo.create_tag(name=tag, - msg="Upstream version %s" % version, - commit="%s^0" % commit, - sign=options.sign_tags, - keyid=options.keyid) - - if is_empty: - repo.create_branch(branch=options.debian_branch, rev=commit) - repo.force_head(options.debian_branch, hard=True) - # In an empty repo avoid master branch defaulted to by - # git and check out debian branch instead. - if not repo.bare: - cur = repo.branch - if cur != options.debian_branch: - repo.set_branch(options.debian_branch) - repo.delete_branch(cur) - else: - repo.rrr_branch(options.debian_branch) - debian_branch_merge(repo, tag, version, options) - - # Update working copy and index if we've possibly updated the - # checked out branch - current_branch = repo.get_branch() - if current_branch in [options.upstream_branch, - repo.pristine_tar_branch]: - repo.force_head(current_branch, hard=True) - - postimport_hook(repo, tag, version, options) - except (gbpc.CommandExecFailed, GitRepositoryError) as err: - msg = str(err) or 'Unknown error, please report a bug' - raise GbpError("Import of %s failed: %s" % (commit, msg)) - except KeyboardInterrupt: - raise GbpError("Import of %s failed: aborted by user" % (options.git_ref)) - except GbpError as err: - if str(err): - gbp.log.err(err) - ret = 1 - rollback(repo, options) - - if not ret: - gbp.log.info("Successfully imported version %s" % (version)) - return ret - - -if __name__ == "__main__": - sys.exit(main(sys.argv)) - -# vim:et:ts=4:sw=4:et:sts=4:ai:set list listchars=tab\:»·,trail\:·: |