Subject: Re: New ASCII Art

From: Junio C Hamano <[email-masked]>
Date: Thu, 03 Nov 2005 12:30:28 -0800

[email-masked] writes:

> So, I have updated drawings for consideration.  See if you buy
> these.  And if so, let's ponder where they might go.  Then
> I'll patch 'em in...

Thanks for doing this.  You have a sale.

> Fundamental Git Index Operations

README (which is included as git(7) Discussion section) might be
a good document to decorate with this.  Probably after "The
Workflow; 5) Tying it all together".

> Git Merge Operations
> ====================
>
>                     +-----------+
>                     | Object DB |
>                     |  Backing  |
>                     |   Store   | -------+
>                     +-----------+        |
>                                          |
>                            read-tree -m  |
>   +-----+                  tree obj      |
>   |patch|                                |
>   +-----+           +-----------+        |
>      |              |   Index   | <- - - +
>      +------------->|  "cache"  | - - - >+
>  git-apply --index  +-----------+        |
>                                          |
>                                          |
>                          read-tree -m -u |
>  +-----+                        tree obj |
>  |patch|                                 |
>  +-----+            +-----------+        |
>     |               |  Working  |<-------+
>     +-------------->| Directory |
>   git-apply         +-----------+

Note that apply --index updates both index and working tree.
Note that read-tree -m -u takes information from both odb and
index, and updates both index and working tree.

Logically this belongs to "Merging two branches" in the Tutorial
document.  The Tutorial introduction claims the document intends
to show how the core level operates to implement higher level
scripts, but currently we lack the lower-level details in the
text that would go well together with this illustration.  Please
remind me that I should write something up at the very end of
that section soonish ;-).

> Git Diff Types

Maybe as a side note to "Inspecing Changes" section in the
Tutorial.

> Commit DAG Revision Naming

As an illustration to "SPECIFYING REVISIONS" section of
git-rev-parse(1).