git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 7/7] fast-forward: add help about merge vs. rebase

From
Philip Oakley <philipoakley@iee.email>
Date
Jul 22, 2021, 22:57 UTC
Message-ID
<76d59e73-ae5d-3bef-4aa3-5d1af9611577@iee.email>
In-Reply-To
<20210722000854.1899129-8-felipe.contreras@gmail.com>

minor nit/query on format.. On 22/07/2021 01:08, Felipe Contreras wrote:

Show 41 quoted lines
> Now that we have a locus for merge versus rebase documentation, we can
> refer to it on the diverging advice.
>
> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
> ---
>  Documentation/git-fast-forward.txt | 48 ++++++++++++++++++++++++++++++
>  advice.c                           |  4 ++-
>  2 files changed, 51 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/git-fast-forward.txt b/Documentation/git-fast-forward.txt
> index 38c920964f..1989fdec4a 100644
> --- a/Documentation/git-fast-forward.txt
> +++ b/Documentation/git-fast-forward.txt
> @@ -50,6 +50,54 @@ synchronize the two branches.
>  
>  THIS COMMAND IS EXPERIMENTAL. THE BEHAVIOUR MAY CHANGE.
>  
> +MERGE OR REBASE
> +---------------
> +
> +The decision to whether merge or rebase depends on the situation and the
> +project. Traditionally git has prefered merge over rebase, but that creates a
> +new commit, and that's frowned up on some projects, so you can't just simply
> +choose to merge blindly.
> +
> +------------
> +    D---C---B---A origin/master
> +	 \
> +	  X---Y master
> +------------
> +
> +The nature of distributed version control systems make this divergence
> +unavoidable; you must decide how to synchronize this divergence.
> +
> +Should you choose to merge, the two heads (master and origin/master) will be joined
> +together in a new commit:
> +
> +------------
> +	  origin/master
> +		|
> +		v

.. here, in my email reader, the arrow doesn't align to the commit because of the single char (+) indent relative to tab spacing. Does this cause any problems when formatted in the html/web style?

It was my impression that, for ASCII art diagrams, we used space indenting, leaving tabs for regular text indents. I quss you have an auto tab setting that converts the 8-spaces to tabs in the source txt.

It is good to have diagrams for the visual learners!
Show 40 quoted lines
> +    D---C---B---A---M master
> +	 \	   /
> +	  X---Y---+
> +------------
> +
> +This new commit is called a "merge commit" and has two parents (A and Y).
> +
> +Rebasing on the other hand rewrites the history:
> +
> +------------
> +	  origin/master
> +		|
> +		v
> +    D---C---B---A---X'---Y' master
> +------------
> +
> +The commits that diverged (X and Y) are rewritten as if they were created on top
> +of the new base (A). This creates a linear history, which is cleaner, but some
> +people prefer to preserve the original hsitory.
> +
> +In both cases it's likely you would have to resolve conflicts, the difference is
> +that in a merge you would have to do it all at once in one commit, while with a
> +rebase you would have to do it on every rewritten commit.
> +
>  SEE ALSO
>  --------
>  linkgit:git-merge[1], linkgit:git-rebase[1]
> diff --git a/advice.c b/advice.c
> index 60de7fbc4e..7f422b05d3 100644
> --- a/advice.c
> +++ b/advice.c
> @@ -337,5 +337,7 @@ void diverging_advice(void)
>  		"\n"
>  		"or:\n"
>  		"\n"
> -		"\tgit rebase\n"));
> +		"\tgit rebase\n"
> +		"\n"
> +		"For more information check \"git help fast-forward\".\n"));
>  }

-- Philip

Previous: Felipe ContrerasNext: Felipe Contreras
Message 9 of 12 in “fast-forward: new command with advice and documentation”
  1. 0/7 fast-forward: new command with advice and documentationFelipe Contreras, Jul 22, 2021
  2. 1/7 merge: improve fatal fast-forward messageFelipe Contreras, Jul 22, 2021
  3. 2/7 merge: add diverging advice for novicesFelipe Contreras, Jul 22, 2021
  4. 3/7 merge: make the diverging advise configurableFelipe Contreras, Jul 22, 2021
  5. 4/7 merge: split cmd_merge()Felipe Contreras, Jul 22, 2021
  6. 5/7 fast-forward: add new builtinFelipe Contreras, Jul 22, 2021
  7. 6/7 doc: fast-forward: explain what it isFelipe Contreras, Jul 22, 2021
  8. 7/7 fast-forward: add help about merge vs. rebaseFelipe Contreras, Jul 22, 2021
  9. Philip OakleyJul 22, 2021
  10. Felipe ContrerasJul 23, 2021
  11. Philip OakleyJul 23, 2021
  12. Felipe ContrerasJul 23, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.