From: Yann Dirson <ydirson@altern.org>
To: Catalin Marinas <catalin.marinas@gmail.com>
Cc: git@vger.kernel.org
Subject: [PATCH 5/5] Make 'stg pull' use git-fetch and not git-pull.
Date: Sat, 27 Jan 2007 12:21:38 +0100 [thread overview]
Message-ID: <20070127112138.16475.92752.stgit@gandelf.nowhere.earth> (raw)
In-Reply-To: <20070127104024.16475.81445.stgit@gandelf.nowhere.earth>
We introduce a new pull-does-rebase setting, as companion to pullcmd.
This allows to use both pullcmd's that need a rebase (like git-fetch)
and pullcmd's that do not (like git-pull).
To be able to rebase, we rely on parent information being available
for the stack.
Signed-off-by: Yann Dirson <ydirson@altern.org>
---
examples/gitconfig | 8 +++++++-
stgit/config.py | 3 ++-
stgit/git.py | 15 ++++++++++-----
3 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/examples/gitconfig b/examples/gitconfig
index 5e7b240..e3d9889 100644
--- a/examples/gitconfig
+++ b/examples/gitconfig
@@ -33,8 +33,14 @@
#pager = ~/share/stgit/contrib/diffcol.sh
#pager = filterdiff --annotate | colordiff | less -FRX
- # GIT pull command (should take the same arguments as git-pull)
+ # GIT pull command (should take the same arguments as
+ # git-fetch or git-pull). By default:
+ #pullcmd = git-fetch
+ #pull-does-rebase = yes
+ # Alternative (old behaviour), less intuitive but maybe useful
+ # for some workflows:
#pullcmd = git-pull
+ #pull-does-rebase = no
# The three-way merge tool. Note that the 'output' file contains the
# same data as 'branch1'. This is useful for tools that do not take an
diff --git a/stgit/config.py b/stgit/config.py
index f5fbdab..0d4da06 100644
--- a/stgit/config.py
+++ b/stgit/config.py
@@ -65,7 +65,8 @@ def config_setup():
config.set('stgit', 'autoresolved', 'no')
config.set('stgit', 'smtpserver', 'localhost:25')
config.set('stgit', 'smtpdelay', '5')
- config.set('stgit', 'pullcmd', 'git-pull')
+ config.set('stgit', 'pullcmd', 'git-fetch')
+ config.set('stgit', 'pull-does-rebase', 'yes')
config.set('stgit', 'merger',
'diff3 -L current -L ancestor -L patched -m -E ' \
'"%(branch1)s" "%(ancestor)s" "%(branch2)s" > "%(output)s"')
diff --git a/stgit/git.py b/stgit/git.py
index 3c2c237..82b5bf5 100644
--- a/stgit/git.py
+++ b/stgit/git.py
@@ -806,18 +806,23 @@ def reset(files = None, tree_id = None, check_out = True):
__set_head(tree_id)
def pull(repository = 'origin', refspec = None):
- """Pull changes from the remote repository. At the moment, just
- use the 'git-pull' command
+ """Pull changes from the remote repository. Uses 'git-fetch'
+ and moves the stack base.
"""
- # 'git-pull' updates the HEAD
+ # we update the HEAD
__clear_head_cache()
args = [repository]
if refspec:
args.append(refspec)
- if __run(config.get('stgit', 'pullcmd'), args) != 0:
- raise GitException, 'Failed "git-pull %s"' % repository
+ command = config.get('stgit', 'pullcmd')
+ if __run(command, args) != 0:
+ raise GitException, 'Failed "%s %s"' % (command, repository)
+
+ if (config.get('stgit', 'pull-does-rebase')):
+ # FIXME!
+ reset(tree_id = rev_parse(repository))
def repack():
"""Repack all objects into a single pack
prev parent reply other threads:[~2007-01-27 11:23 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-27 11:21 [PATCH 0/5] [DRAFT] StGIT, remotes, and parent information Yann Dirson
2007-01-27 11:21 ` [PATCH 1/5] Move identification of parent branch's remote def up into stack class Yann Dirson
2007-01-27 11:21 ` [PATCH 2/5] Allows extraction of information about remotes Yann Dirson
2007-01-27 11:21 ` [PATCH 3/5] Basic support for keeping a ref to the parent branch Yann Dirson
2007-01-27 11:21 ` [PATCH 4/5] Have 'stg branch --create' record parent information Yann Dirson
2007-01-27 11:21 ` Yann Dirson [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070127112138.16475.92752.stgit@gandelf.nowhere.earth \
--to=ydirson@altern.org \
--cc=catalin.marinas@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).