From: Sean <seanlkml@sympatico.ca>
To: Shawn Pearce <spearce@spearce.org>
Cc: junkio@cox.net, git@vger.kernel.org
Subject: Re: [PATCH 0/5] More ref logging
Date: Sat, 20 May 2006 22:43:44 -0400 [thread overview]
Message-ID: <BAYC1-PASMTP1190ADCE746F3E0BEEC69BAEA50@CEZ.ICE> (raw)
Message-ID: <20060520224344.7ebca48b.seanlkml@sympatico.ca> (raw)
In-Reply-To: <20060521005009.GA7179@spearce.org>
On Sat, 20 May 2006 20:50:09 -0400
Shawn Pearce <spearce@spearce.org> wrote:
> It sort of is a new way of tagging commits with extra data. But its
> also sort of a way of versioning your ref `database'. Using tags
> to save the points in time might be useful but it would generate
> a lot of temporary files. A commit every 5 minutes for a typical
> working week would generate 480 tags per week. That's just too much.
But isn't that just an implementation detail? I've actually run
into another situation where tags would be perfect if only they weren't
so expensive (ie. entire repo was in a 50Mb pack including tag objects,
but the .git/refs/tags directory was over 100Mb).
So, if we found a way to store tags more efficiently your 480 tags per
week shouldn't be a problem at all. The main point being to extend
and optimize the existing infrastructure rather than bolting on a new
class of objects (ie. ref log) which only serves a narrow (albeit
important) purpose.
> I was actually thinking this morning that another way to do this
> is to keep a metadata branch within the repository which records
> all of the refs in tree objects, then save the root commit under
> the special ref `LOG` in GIT_DIR. Every update to a logged ref
> would cause the tree to be updated and a new commit to be built.
> The branch would be a relatively simple string of pearls as its
> doubtful you would branch it.
>
> There are a number of downsides to this, not the least of which is
> I'd like to put a commit or tag SHA1 into the tree object rather than
> writing each ref as a blob (saves space). Currently commits and tags
> aren't permitted in a tree object so that would require some effort.
> But on the other hand you could pull (and track!) someone elses
> ref log through the standard GIT protocol.
Yes, Linus proposed something similar earlier to hold meta data.
But i've come to see tags as a place to store any arbitrary meta
data associated with a commit. If their implementation was more
efficient you could use them for your project and they could be used
for any number of other purposes as well.
> But this is starting to head down into the `bind commit` discussion;
> how do we record a number of commits as being related and tie them
> up into a single super commit?
Well, a tag that allowed the listing of multiple heads....
Sean
next prev parent reply other threads:[~2006-05-21 2:49 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-19 9:14 [PATCH 0/5] More ref logging Shawn Pearce
[not found] ` <20060519071603.11d3be5d.seanlkml@sympatico.ca>
2006-05-19 11:16 ` Sean
2006-05-21 0:50 ` Shawn Pearce
[not found] ` <20060520224344.7ebca48b.seanlkml@sympatico.ca>
2006-05-21 2:43 ` Sean [this message]
2006-05-21 4:51 ` Shawn Pearce
[not found] ` <20060521010944.78903774.seanlkml@sympatico.ca>
2006-05-21 5:09 ` Sean
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=BAYC1-PASMTP1190ADCE746F3E0BEEC69BAEA50@CEZ.ICE \
--to=seanlkml@sympatico.ca \
--cc=git@vger.kernel.org \
--cc=junkio@cox.net \
--cc=spearce@spearce.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).