From: Thomas Lord <lord@emf.net>
To: Petr Baudis <pasky@suse.cz>
Cc: git <git@vger.kernel.org>
Subject: Re: arch 2.0 first source available (git related)
Date: Sat, 09 Jul 2005 07:20:13 -0700 [thread overview]
Message-ID: <1120918813.4901.27.camel@dev1.seyza.com> (raw)
In-Reply-To: <20050709113942.GB26343@pasky.ji.cz>
On Sat, 2005-07-09 at 13:39 +0200, Petr Baudis wrote:
> Dear diary, on Sat, Jul 09, 2005 at 02:12:27AM CEST, I got a letter
> where Thomas Lord <lord@emf.net> told me that...
> > 2.0 is very much git influenced but it brings some (imo significant)
> > improvements to the table.
>
> Could you list some of the things interesting for us? What is the
> benefit of a prereq graph compared to just having a single shared object
> database? From the documentation, that's the only interesting thing I
> noticed which is different from git (and things like artificially
> limiting filename length to 256 characters).
Well, partly the statement about improvements was a hint to look
beyond the docs to the code but...
The prereq graph is, indeed, an improvement.
It:
* speeds up and simplifies blob-db GC
* vastly improves the possibilities for archive integrity
checking
* can be used for smart, streamy network mirroring of revisions
* allows people to commit the same tree multiple ways: e.g.,
once optimizing access for users who frequently read incremental
updates and a second time for users who only update at named
releases
* helps make the system securable (current code isn't yet) against
the possibility of multiple files with identical fingerprints but
different contents in the same or related trees
* helps in a variety of ways when it comes time to make `revc'
operable over a network -- committing to a remote archive.
Other advantageous (imo) changes from `git' not mentioned in the
original message:
* blobs do not have header lines
Git blobs all begin with a line of text declaring the "type"
and size of the blob. That doesn't increase database
verifiability significantly and I found no use for the headers.
Having the headers makes it needlessly complicated to translate
a file to or from a blob.
`revc' does not have blob headers.
* `revc' uses portable file formats
In working dirs, `git' stores binary files which are
endian, word-size, and compiler-environment specific.
`revc' stores some binary files too (for performance
and simplicity reasons) but uses only portable formats.
* `revc' is shaping up into much cleaner and more portable code
(at least compared to the last version of `git' I saw --
which was extremely *lucid* code but not terribly
clean and not even attempting to be portable.)
The list goes on and I don't promise to be picking the
most interesting items from it according to anybody's
particular metric of "interesting".
revc -- probably "strange yet familiar" to git hackers,
-t
next prev parent reply other threads:[~2005-07-09 14:20 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-09 0:12 arch 2.0 first source available (git related) Thomas Lord
2005-07-09 11:39 ` Petr Baudis
2005-07-09 14:20 ` Thomas Lord [this message]
2005-07-11 19:39 ` Petr Baudis
2005-07-11 21:36 ` Thomas Lord
2005-07-11 23:31 ` Petr Baudis
2005-07-12 0:05 ` Thomas Lord
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=1120918813.4901.27.camel@dev1.seyza.com \
--to=lord@emf.net \
--cc=git@vger.kernel.org \
--cc=pasky@suse.cz \
/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).