public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
From: Nicolas Sebrecht <nicolas.s.dev@gmx•fr>
To: Junio C Hamano <gitster@pobox•com>
Cc: Matthieu Moy <Matthieu.Moy@imag•fr>, git@vger•kernel.org
Subject: [PATCH] Re: push: point to 'git pull' and 'git push --force' in case of non-fast forward
Date: Thu, 6 Aug 2009 23:16:10 +0200	[thread overview]
Message-ID: <20090806211610.GB12924@vidovic> (raw)
In-Reply-To: <7v7hxgk8c9.fsf@alter.siamese.dyndns.org>

The 06/08/09, Junio C Hamano wrote:

>  Documentation/git-push.txt |   75 ++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 75 insertions(+), 0 deletions(-)
> 
> diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
> index 2653388..c1ae82d 100644
> --- a/Documentation/git-push.txt
> +++ b/Documentation/git-push.txt
> @@ -195,6 +195,81 @@ reason::
>  	refs, no explanation is needed. For a failed ref, the reason for
>  	failure is described.
>  
> +Note about fast-forwards
> +------------------------
> +
> +When an update changes a branch (or more in general, a ref) that used to
> +point at commit A to point at another commit B, it is called a
> +fast-forward update if and only if B is a descendant of A.
> +
> +In a fast-forward update from A to B, the set of commits that the original
> +commit A built on top of is a subset of the commits the new commit B
> +builds on top of.  Hence, it does not lose any history.
> +
> +In contrast, a non-fast-forward update will lose history.

I believe that this sentence a bit too much scaring for the beginner.
There are two kinds of update (push and pull). We loose history only
when pushing. I know this applies to Documentation/git-push.txt but out
of this context (and because we talk about pull near from here), I think
it would be clearer to say something like:

	In contrast, a non-fast-forward push will loose history.

>                                                             For example,
> +suppose you and somebody else started at the same commit X, and you built
> +a history leading to commit B while the other person built a history
> +leading to commit A.  The history looks like this:
> +
> +----------------
> +
> +      B
> +     /
> + ---X---A
> +
> +----------------

<...>

> +Alternatively, you can rebase your change between X and B on top of A,
> +with "git pull --rebase", and push the result back.  The rebase will
> +create a new commit D that builds the change between X and B on top of
> +A.
> +
> +----------------
> +
> +      B   D
> +     /   /
> + ---X---A
> +
> +----------------

Wouldn't "git pull --rebase" loose B? Shouldn't we have this

  ----------------
  
            D
           /
   ---X---A
  
  ----------------

instead?

-- 
Nicolas Sebrecht

  reply	other threads:[~2009-08-06 21:16 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-06 17:32 [PATCH] push: point to 'git pull' and 'git push --force' in case of non-fast forward Matthieu Moy
2009-08-06 20:04 ` Michael J Gruber
2009-08-07 19:21   ` Matthieu Moy
2009-08-07 19:46     ` Michael J Gruber
2009-08-06 20:15 ` Junio C Hamano
2009-08-06 21:16   ` Nicolas Sebrecht [this message]
2009-08-06 21:32     ` [PATCH] " Junio C Hamano
2009-08-07 19:37   ` [PATCH] " Matthieu Moy
2009-08-07 20:05     ` Junio C Hamano
2009-08-07 20:22       ` Matthieu Moy
2009-08-08  7:51 ` [PATCH v2] " Matthieu Moy
2009-08-08  8:35   ` Teemu Likonen
2009-08-08 15:22     ` Matthieu Moy
2009-08-08 16:25       ` Junio C Hamano
2009-08-08 22:23         ` [PATCH v2] " Nicolas Sebrecht
2009-08-09 18:35         ` [PATCH v2] " Matthieu Moy
2009-08-09 20:22           ` Junio C Hamano
2009-08-10  8:43             ` Matthieu Moy
2009-08-10  8:49               ` Junio C Hamano
2009-08-10  8:56                 ` Matthieu Moy
2009-08-11  3:03         ` Nanako Shiraishi
2009-09-06  6:44           ` [RFC/PATCH 0/4] make helpful messages optional Jeff King
2009-09-06  6:46             ` [PATCH 1/4] push: fix english in non-fast-forward message Jeff King
2009-09-06  6:47             ` [PATCH 2/4] push: re-flow " Jeff King
2009-09-06  6:48             ` [PATCH 3/4] push: make non-fast-forward help message configurable Jeff King
2009-09-06  7:09               ` Junio C Hamano
2009-09-06  7:23                 ` Jeff King
2009-09-06  7:30                   ` Junio C Hamano
2009-09-06  7:32                     ` Jeff King
2009-09-06  7:52                   ` Junio C Hamano
2009-09-06 11:30                     ` Sverre Rabbelier
2009-09-07  0:44                     ` Nanako Shiraishi
2009-09-07  7:35                       ` Johannes Sixt
2009-09-07  7:40                       ` Mike Hommey
2009-09-07  8:24                       ` Jeff King
2009-09-07  8:34                         ` Matthieu Moy
2009-09-07  8:54                           ` Jeff King
2009-09-07 11:20                             ` Matthieu Moy
2009-09-08 18:51                             ` Uri Okrent
2009-09-09 11:22                               ` Jeff King
2009-09-09 11:26                   ` [PATCH 0/2] configurable advice messages Jeff King
2009-09-09 11:38                     ` [PATCH 1/2] push: make non-fast-forward help message configurable Jeff King
2009-09-09 19:06                       ` Junio C Hamano
2009-09-09 20:39                         ` Jeff King
2009-09-09 21:47                           ` Junio C Hamano
2009-09-09 11:43                     ` [PATCH 2/2] status: make "how to stage" messages optional Jeff King
2009-09-06  6:50             ` [PATCH 4/4] " Jeff King
2009-09-06 11:53             ` [RFC/PATCH 0/4] make helpful " Matthieu Moy

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=20090806211610.GB12924@vidovic \
    --to=nicolas.s.dev@gmx$(echo .)fr \
    --cc=Matthieu.Moy@imag$(echo .)fr \
    --cc=git@vger$(echo .)kernel.org \
    --cc=gitster@pobox$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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