All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Narebski <jnareb@gmail.com>
To: "Sverre Hvammen Johansen" <hvammen@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [RFC/PATCH] Additional fast forward strategies.
Date: Tue, 11 Mar 2008 02:09:12 -0700 (PDT)	[thread overview]
Message-ID: <m37ig9zky7.fsf@localhost.localdomain> (raw)
In-Reply-To: <402c10cd0803102004x7892f01cledfef6f277fba26a@mail.gmail.com>

"Sverre Hvammen Johansen" <hvammen@gmail.com> writes:

> From: Sverre Hvammen Johansen <hvammen@gmail.com>
> Subject: [PATCH] Additional fast forward strategies.
> 
> New fast forward strategies, common, fork, path, and same
> is introduced.  These new fast forward strategies allows
> additional work flows.

It would be better (read: greater chance to be accepted) if you had
provided examples of those "additional workflows", best in EXAMPLES
section (or something like that) of fast-forward documentation, and
"see documentation" (or something like that) in commit message.
 
> FF strategy "common" does a fast-forward to the common ancestor
> of the specified heads.  The merge will fail unless HEAD is the
> common ancestor or HEAD can be fast-forwarded to the common ancestor.

Don't you mean "common descendant" here?

> FF strategy "fork" does a fast-forward to the common ancestor
> of the real heads.  The merge will fail unless HEAD is the
> common ancestor of these heads or HEAD can be fast-forwarded
> to the common ancestor of the real heads.

What is the difference between 'real heads' and 'soecified heads'?
Example, please.

> FF strategy "path" does a fast-forward to the first possible
> branch that no other branches are ahead of.  HEAD will be
> fast-forwarded to such a branch if it exist.  If no such branch
> exist, HEAD is considered to be up to date.
> 
> FF strategy "same" does a fast forward where all branches are
> required to point to the same commit.  HEAD will be
> fast-forwarded to this branch unless it is up to date.
> 
> Signed-off-by: Sverre Hvammen Johansen <sj@black.local>

It will be easier to understand those descriptions if you have
provided with ASCII-art diagrams (in the documentation, not
necessarily in fast-forward strategies^W options description, but
perhaps somewhere below, above FAST-FORWARD OPTIONS EXAMPLES section).

For example, by default you can fast-forward only when doing single
branch merge.

%%

  A---B---C---D   <--- master <--- HEAD
       \
        \-1---2   <--- a

If you have situation as above, you are on branch 'master',
and you do "git merge a" it would result in merge commit.

  A---B---C---D---M   <--- master <--- HEAD
       \         /
        \-1---2-/     <--- a

%%

  A---B           <--- master <--- HEAD
       \
        \-1---2   <--- a

If you have situation as above, you are on branch 'master',
and you do "git merge a" it would result in fast-forward.

  A---B---1---2   <--- master <--- HEAD
                    
              ^------- a

or

  A---B---1---2   <--- master <--- HEAD
              ^      
               \------ a


%%

  A---B           <--- master <--- HEAD
       \
        \-1---2   <--- a
              
              ^------- b

This I think is 'FF strategy "same"' situation.

%%

  A---B              <--- master <--- HEAD
       \
        \-1---2      <--- a
               \
                \-3  <--- b

This I guess is either 'common' or 'fork' situation.

-- 
Jakub Narebski
Poland
ShadeHawk on #git

  parent reply	other threads:[~2008-03-11  9:10 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-11  3:04 [RFC/PATCH] Additional fast forward strategies Sverre Hvammen Johansen
2008-03-11  6:34 ` Junio C Hamano
2008-03-11  9:09 ` Jakub Narebski [this message]
2008-03-12  6:03 ` Sverre Hvammen Johansen

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=m37ig9zky7.fsf@localhost.localdomain \
    --to=jnareb@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=hvammen@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.