From: "Shawn O. Pearce" <spearce@spearce.org>
To: Jon Smirl <jonsmirl@gmail.com>
Cc: Git Mailing List <git@vger.kernel.org>
Subject: Re: Calculating tree nodes
Date: Mon, 3 Sep 2007 22:51:54 -0400 [thread overview]
Message-ID: <20070904025153.GS18160@spearce.org> (raw)
In-Reply-To: <9e4733910709031913q278cb9dbp441756afb28607c6@mail.gmail.com>
Jon Smirl <jonsmirl@gmail.com> wrote:
> When I change a file it creates a new object with a new SHA. This new
> SHA causes the tree node pointing to it to change. Changing the tree
> node forces its parent to change and so on. Of course git batches all
> of the changes together into a commit so that this ripple effect
> doesn't happen for every file. But every commit causes a new root tree
> node to be created, right?
Only if at least one file (or tree) differed. This may not be the
case if you do a merge with the ours merge strategy, but these are
very rare. So you can pretty much just say that yes, every commit
causes a new root tree to be created.
Usually the smallest number of objects created per commit is 3:
- the new commit
- the new root tree
- the new blob for a file in the root directory
The number increases as more files are modified or if they are in
subdirectories of the root.
--
Shawn.
next prev parent reply other threads:[~2007-09-04 2:52 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-04 2:13 Calculating tree nodes Jon Smirl
2007-09-04 2:51 ` Shawn O. Pearce [this message]
2007-09-04 3:26 ` Jon Smirl
2007-09-04 3:40 ` Johannes Schindelin
2007-09-04 3:54 ` Jon Smirl
2007-09-04 4:21 ` Martin Langhoff
2007-09-04 5:37 ` Jon Smirl
2007-09-04 5:51 ` Andreas Ericsson
2007-09-04 10:33 ` Johannes Schindelin
2007-09-04 14:31 ` Jon Smirl
2007-09-04 15:05 ` Johannes Schindelin
2007-09-04 15:14 ` Andreas Ericsson
2007-09-04 21:02 ` Martin Langhoff
2007-09-04 4:28 ` Junio C Hamano
2007-09-04 5:50 ` Jon Smirl
2007-09-04 4:19 ` David Tweed
2007-09-04 5:52 ` Jon Smirl
2007-09-04 5:55 ` Andreas Ericsson
2007-09-04 6:16 ` Shawn O. Pearce
2007-09-04 14:19 ` Jon Smirl
2007-09-04 14:41 ` Andreas Ericsson
2007-09-04 6:16 ` David Tweed
2007-09-04 6:26 ` Shawn O. Pearce
2007-09-04 17:39 ` Junio C Hamano
2007-09-06 3:20 ` Shawn O. Pearce
2007-09-06 5:21 ` Junio C Hamano
2007-09-04 16:20 ` Daniel Hulme
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=20070904025153.GS18160@spearce.org \
--to=spearce@spearce.org \
--cc=git@vger.kernel.org \
--cc=jonsmirl@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.