From 1fa161d61e1020f534b25c7db94cbd28c836791f Mon Sep 17 00:00:00 2001 From: Yann Dirson Date: Tue, 15 May 2007 18:09:57 +0100 Subject: [PATCH] Stop recording branch.*.remote to '.' for local parents. We should be using the remote name of the remote branch in branch.*.merge, instead of the local one as we currently do (I'll ensure this in a later patch). As a consequence, setting "remote" to '.' and "merge" to the name of a *local* parent would become inconsistent with the remote case. Anyway the local case should make use of pull-policy=rebase instead, and this change revealed that we were fetching useless information in the local case (no need for a remote). Signed-off-by: Yann Dirson --- stgit/commands/pull.py | 24 +++++++++++++++++------- stgit/stack.py | 4 +--- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/stgit/commands/pull.py b/stgit/commands/pull.py index 7b3c90c..f551b98 100644 --- a/stgit/commands/pull.py +++ b/stgit/commands/pull.py @@ -50,13 +50,25 @@ options = [make_option('-n', '--nopush', def func(parser, options, args): """Pull the changes from a remote repository """ - if len(args) > 1: - parser.error('incorrect number of arguments') + policy = config.get('branch.%s.stgit.pull-policy' % crt_series.get_branch()) or \ + config.get('stgit.pull-policy') + + if policy == 'rebase': + # parent is local + if len(args) == 1: + parser.error('specifying a repository is meaningless for policy="%s"' % policy) + if len(args) > 0: + parser.error('incorrect number of arguments') - if len(args) >= 1: - repository = args[0] else: - repository = crt_series.get_parent_remote() + # parent is remote + if len(args) > 1: + parser.error('incorrect number of arguments') + + if len(args) >= 1: + repository = args[0] + else: + repository = crt_series.get_parent_remote() if crt_series.get_protected(): raise CmdException, 'This branch is protected. Pulls are not permitted' @@ -65,8 +77,6 @@ def func(parser, options, args): check_conflicts() check_head_top_equal() - policy = config.get('branch.%s.stgit.pull-policy' % crt_series.get_branch()) or \ - config.get('stgit.pull-policy') if policy == 'pull': must_rebase = 0 elif policy == 'fetch-rebase': diff --git a/stgit/stack.py b/stgit/stack.py index 9868699..65a7d83 100644 --- a/stgit/stack.py +++ b/stgit/stack.py @@ -450,10 +450,8 @@ class Series(StgitObject): config.set('branch.%s.stgit.parentbranch' % self.__name, name) def set_parent(self, remote, localbranch): - # policy: record local branches as remote='.' - recordremote = remote or '.' if localbranch: - self.__set_parent_remote(recordremote) + self.__set_parent_remote(remote) self.__set_parent_branch(localbranch) # We'll enforce this later # else: -- 2.11.4.GIT