From: Andreas Ericsson <ae@op5.se>
To: Steffen Prohaska <prohaska@zib.de>
Cc: Junio C Hamano <gitster@pobox.com>, Theodore Tso <tytso@mit.edu>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Peter Baumann <waste.manager@gmx.de>,
"J. Bruce Fields" <bfields@fieldses.org>,
Jakub Narebski <jnareb@gmail.com>,
Federico Mena Quintero <federico@novell.com>,
git@vger.kernel.org
Subject: Re: best git practices, was Re: Git User's Survey 2007 unfinished summary continued
Date: Fri, 26 Oct 2007 09:53:33 +0200 [thread overview]
Message-ID: <47219CFD.3010409@op5.se> (raw)
In-Reply-To: <D38E4717-CF67-4897-983E-2B45CA217C11@zib.de>
Steffen Prohaska wrote:
>
> On Oct 25, 2007, at 10:18 PM, Andreas Ericsson wrote:
>
>> Junio C Hamano wrote:
>>> Andreas Ericsson <ae@op5.se> writes:
>>
>>> With that in mind, how about making "git checkout foo", after
>>> foo is set up thusly, to show:
>>> git log --pretty=oneline --left-right origin/pu...foo
>>> if (and only if) they have diverged? Then you can deal with the
>>> staleness of local tracking fork 'foo' in any way you want.
>>> You could even go one step further and make this "checkout foo",
>>> in addition to or instead of showing the above left-right log,
>>> - automatically run "git merge origin/pu" if it is a
>>> fast-forward, and say it did _not_ run that merge if it is
>>> not a fast-forward;
>>> - automatically run "git merge origin/pu" always, even if it is
>>> not a fast-forward;
>>> - automatically run "git rebase origin/pu" always;
>>> Would that make your life easier?
>>
>> That it would, except the confusion would then be that it's automatically
>> rebased for the branches one currently hasn't got checked out while
>> pulling,
>> and the branch that *is* checked out gets merged (crazy, yes), so those
>> who prefer the rebase would get what they want by doing something
>> completely
>> bonkers, such as:
>>
>> git checkout -b just-gonna-pull HEAD^
>> git pull
>> git checkout whatever-other-branch-they-were-on
>>
>> (yes, "aggresively ignorant", I think Ted said in an earlier mail)
>>
>> It'd probably be better to go with Dscho's suggestion, although I'm
>> not quite
>> sure what that was any more. It involved automagical rebasing on fetch
>> or pull
>> though.
>
> git pull's automagic and the automatic behaviour of git checkout
> proposed by Junio should always do the same. git pull should
> be changed to act a if your three commands were fused into it
> (but obviously implemented differently).
>
I think it would be better to implement it as a different command that
would do all those weird and tedious dwim things that suit a particular
kind of developer, but only so long as those operations succeed without
conflicts.
So for example the flow could go something like this;
---
read_branch_merge_config();
git fetch
if prefetch(local == remote_tracking)
set ref local to match ref remote_tracking;
else if (--safe-rebase)
try_rebase local onto remote_tracking;
---
It's such a common operation that I really do think it's worth
having support for it. Perhaps with a "--try-rebase" option to
git-pull.
If we then add a a "--push-after-pull" (to work on the current
branch only) we have the "git sync" alias readily available to
accommodate the average reluctant git user, and I'm sure gui
hackers could do wonders with it, especially on windows, where
people seem accustomed to a lot of things happening when clicking
a single button.
> I think teaching "git checkout" a dwim mode is quite
> interesting. The required work to bring a local branch
> up-to-date with a remote branch is deferred until really needed.
> An then "git checkout" does the right thing. A lot of automagic
> but definitely intriguing.
>
Yup, and it can be done with a post-checkout hook (which I notice
there are no examples for, so I've added that to my ever-growing
todo).
--
Andreas Ericsson andreas.ericsson@op5.se
OP5 AB www.op5.se
Tel: +46 8-230225 Fax: +46 8-230231
next prev parent reply other threads:[~2007-10-26 7:54 UTC|newest]
Thread overview: 161+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-08 20:55 Git User's Survey 2007 unfinished summary continued Jakub Narebski
2007-10-12 22:08 ` Jakub Narebski
2007-10-12 23:36 ` Frank Lichtenheld
2007-10-13 0:46 ` Johannes Schindelin
2007-10-13 2:13 ` J. Bruce Fields
2007-10-13 2:53 ` Shawn O. Pearce
2007-10-13 12:58 ` Frank Lichtenheld
2007-10-13 13:04 ` Johannes Schindelin
2007-10-13 18:00 ` Andreas Ericsson
2007-10-13 19:59 ` David Kastrup
2007-10-13 20:27 ` J. Bruce Fields
2007-10-13 20:57 ` David Kastrup
2007-10-14 0:36 ` Johannes Schindelin
2007-10-14 1:13 ` Linus Torvalds
2007-10-14 1:44 ` Shawn O. Pearce
2007-10-14 3:15 ` Linus Torvalds
2007-10-14 3:43 ` david
2007-10-14 3:55 ` Linus Torvalds
2007-10-14 10:20 ` Reece Dunn
2007-10-14 18:12 ` Steven Grimm
2007-10-14 18:40 ` J. Bruce Fields
2007-10-14 19:25 ` Steven Grimm
2007-10-14 19:50 ` Andreas Ericsson
2007-10-14 20:18 ` Johannes Schindelin
2007-10-14 20:22 ` Andreas Ericsson
2007-10-14 20:24 ` J. Bruce Fields
2007-10-14 19:44 ` Nicolas Pitre
2007-10-15 23:20 ` Shawn O. Pearce
2007-10-16 2:48 ` Nicolas Pitre
2007-10-16 10:51 ` Johannes Schindelin
2007-10-14 2:06 ` Johannes Schindelin
2007-10-14 8:45 ` Andreas Ericsson
2007-10-14 9:21 ` David Kastrup
2007-10-14 21:49 ` Jakub Narebski
2007-10-14 22:08 ` Johannes Schindelin
2007-10-14 22:17 ` David Kastrup
2007-10-14 22:12 ` David Kastrup
2007-10-14 22:15 ` Jakub Narebski
2007-10-14 22:23 ` Matthew Andrews
2007-10-14 22:30 ` David Kastrup
2007-10-14 21:10 ` David Tweed
2007-10-19 20:57 ` Federico Mena Quintero
2007-10-19 23:27 ` Jakub Narebski
2007-10-19 23:37 ` Johannes Schindelin
2007-10-22 14:28 ` Federico Mena Quintero
2007-10-20 8:03 ` Andreas Ericsson
2007-10-20 10:19 ` Steffen Prohaska
2007-10-20 11:29 ` Andreas Ericsson
2007-10-21 6:08 ` Dmitry Potapov
2007-10-20 23:06 ` Jakub Narebski
2007-10-20 23:33 ` Johannes Schindelin
2007-10-21 7:17 ` Andreas Ericsson
2007-10-21 22:15 ` Johannes Schindelin
2007-10-22 7:59 ` Andreas Ericsson
2007-10-22 11:04 ` best git practices, was " Johannes Schindelin
2007-10-22 12:44 ` Andreas Ericsson
2007-10-22 13:48 ` Johannes Schindelin
2007-10-22 14:31 ` Andreas Ericsson
2007-10-22 15:00 ` Johannes Schindelin
2007-10-22 15:16 ` Andreas Ericsson
2007-10-22 15:42 ` Steffen Prohaska
2007-10-22 19:36 ` Federico Mena Quintero
2007-10-22 23:21 ` Johannes Schindelin
2007-10-25 19:04 ` Carl Worth
2007-10-22 23:35 ` Jakub Narebski
2007-10-23 5:38 ` Steffen Prohaska
2007-10-23 10:58 ` Johannes Schindelin
2007-10-24 18:48 ` Steffen Prohaska
2007-10-24 19:20 ` J. Bruce Fields
2007-10-24 19:41 ` Andreas Ericsson
2007-10-24 19:48 ` J. Bruce Fields
2007-10-24 20:12 ` Steffen Prohaska
2007-10-24 20:33 ` J. Bruce Fields
2007-10-24 21:06 ` Andreas Ericsson
2007-10-24 21:20 ` J. Bruce Fields
2007-10-24 21:28 ` Peter Baumann
2007-10-24 21:47 ` Steffen Prohaska
2007-10-24 22:14 ` Johannes Schindelin
2007-10-24 22:33 ` Steffen Prohaska
2007-10-24 22:38 ` J. Bruce Fields
2007-10-24 22:51 ` Steffen Prohaska
2007-10-24 23:28 ` Johannes Schindelin
2007-10-25 6:02 ` Steffen Prohaska
2007-10-25 10:27 ` Johannes Schindelin
2007-10-25 12:04 ` Steffen Prohaska
2007-10-25 7:15 ` Andreas Ericsson
2007-10-25 7:31 ` Peter Baumann
2007-10-25 7:57 ` Andreas Ericsson
2007-10-25 8:25 ` Steffen Prohaska
2007-10-25 10:17 ` Johannes Schindelin
2007-10-25 10:33 ` Andreas Ericsson
2007-10-25 12:09 ` Steffen Prohaska
2007-10-25 12:58 ` Johannes Schindelin
2007-10-25 13:24 ` Theodore Tso
2007-10-25 14:58 ` Andreas Ericsson
2007-10-25 15:21 ` Theodore Tso
2007-10-25 17:05 ` Andreas Ericsson
2007-10-25 18:33 ` Junio C Hamano
2007-10-25 20:18 ` Andreas Ericsson
2007-10-26 6:18 ` Steffen Prohaska
2007-10-26 7:53 ` Andreas Ericsson [this message]
2007-10-25 18:02 ` best git practices, was Re: Git User's Survey 2007 unfinishedsummary continued Federico Mena Quintero
2007-10-25 18:04 ` Mike Hommey
2007-10-25 18:18 ` J. Bruce Fields
2007-10-25 18:23 ` Theodore Tso
2007-10-25 20:08 ` Andreas Ericsson
2007-10-26 20:01 ` David Kastrup
2007-10-25 16:06 ` Federico Mena Quintero
2007-10-25 16:38 ` J. Bruce Fields
2007-10-25 18:06 ` Federico Mena Quintero
2007-10-25 18:16 ` J. Bruce Fields
2007-10-25 20:19 ` Andreas Ericsson
2007-10-25 20:27 ` J. Bruce Fields
2007-10-26 9:17 ` David Kastrup
2007-10-26 4:41 ` [PATCH] Make rebase smarter Steven Walter
2007-10-26 7:42 ` Andreas Ericsson
2007-10-26 9:57 ` Johannes Schindelin
2007-10-26 21:02 ` Junio C Hamano
2007-10-26 23:13 ` Johannes Schindelin
2007-10-26 23:29 ` Junio C Hamano
2007-10-24 21:54 ` best git practices, was Re: Git User's Survey 2007 unfinished summary continued Andreas Ericsson
2007-10-24 22:17 ` Johannes Schindelin
2007-10-25 8:07 ` Andreas Ericsson
2007-10-25 10:12 ` Johannes Schindelin
2007-10-25 10:24 ` Andreas Ericsson
2007-10-25 11:39 ` Johannes Schindelin
2007-10-25 12:46 ` Andreas Ericsson
2007-10-25 14:51 ` Karl Hasselström
2007-10-25 17:10 ` Andreas Ericsson
2007-10-25 7:26 ` Peter Baumann
2007-10-24 21:16 ` Steffen Prohaska
2007-10-24 20:13 ` Andreas Ericsson
2007-10-24 23:48 ` Jakub Narebski
2007-10-25 7:42 ` Andreas Ericsson
2007-10-25 10:07 ` Johannes Schindelin
2007-10-25 10:39 ` Steffen Prohaska
2007-10-25 16:16 ` Federico Mena Quintero
2007-10-23 7:24 ` Andreas Ericsson
2007-10-22 18:06 ` Daniel Barkalow
2007-10-22 13:17 ` Wincent Colaiuta
2007-10-22 13:33 ` David Symonds
2007-10-22 13:38 ` Johannes Schindelin
2007-10-22 17:48 ` Robin Rosenberg
2007-10-23 22:13 ` Alex Riesen
2007-10-22 13:36 ` Nguyen Thai Ngoc Duy
2007-10-22 15:24 ` best git practices, was Re: Git User's Survey 2007 unfinished summarycontinued Federico Mena Quintero
2007-10-24 2:06 ` best git practices, was Re: Git User's Survey 2007 unfinished summary continued Jakub Narebski
2007-10-24 10:29 ` Karl Hasselström
2007-10-24 11:04 ` Jakub Narebski
2007-10-24 11:31 ` Karl Hasselström
2007-10-24 23:27 ` Jakub Narebski
2007-10-25 6:10 ` Karl Hasselström
2007-10-24 13:15 ` Catalin Marinas
2007-10-22 12:26 ` Jakub Narebski
2007-10-22 13:45 ` Johannes Schindelin
2007-10-22 14:29 ` Andreas Ericsson
2007-10-22 14:53 ` Federico Mena Quintero
2007-10-22 23:27 ` Jakub Narebski
2007-10-22 22:53 ` Steven Grimm
2007-10-21 22:12 ` J. Bruce Fields
2007-10-13 3:04 ` Shawn O. Pearce
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=47219CFD.3010409@op5.se \
--to=ae@op5.se \
--cc=Johannes.Schindelin@gmx.de \
--cc=bfields@fieldses.org \
--cc=federico@novell.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jnareb@gmail.com \
--cc=prohaska@zib.de \
--cc=tytso@mit.edu \
--cc=waste.manager@gmx.de \
/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).