From: "Bert Huijben" <rhuijben@collab.net>
To: "'Ramkumar Ramachandra'" <artagnon@gmail.com>,
"'Stefan Sperling'" <stsp@elego.de>
Cc: <dev@subversion.apache.org>,
"'Daniel Shahaf'" <d.s@daniel.shahaf.name>,
"'Will Palmer'" <wmpalmer@gmail.com>,
"'David Michael Barr'" <david.barr@cordelta.com>,
"'Jonathan Nieder'" <jrnieder@gmail.com>,
"'Sverre Rabbelier'" <srabbelier@gmail.com>,
"'Git Mailing List'" <git@vger.kernel.org>
Subject: RE: [PATCH v2] Add svnrdump
Date: Wed, 14 Jul 2010 21:25:39 +0200 [thread overview]
Message-ID: <000101cb238a$5b2bfea0$1183fbe0$@collab.net> (raw)
In-Reply-To: <20100714160149.GA7561@debian>
> -----Original Message-----
> From: Ramkumar Ramachandra [mailto:artagnon@gmail.com]
> Sent: woensdag 14 juli 2010 18:02
> To: Stefan Sperling
> Cc: dev@subversion.apache.org; Bert Huijben; Daniel Shahaf; Will Palmer;
> David Michael Barr; Jonathan Nieder; Sverre Rabbelier; Git Mailing List
> Subject: Re: [PATCH v2] Add svnrdump
>
> Hi Stefan,
>
> Stefan Sperling writes:
> > Playing with svnrdump and comparing its output to the output of
> > svnadmin dump --deltas, I noticed that:
>
> Thanks for testing!
>
> > - svnrdump doesn't dump revision 0.
> > It should dump revision 0, because that revision can contain
important
> > revprops such as metadata for svnsync (svn:sync-last-merge-rev etc.)
>
> Yeah, I forgot to ask about this: passing 0 as an argument to the
> replay API doesn't seem to work. Why? How do I dump revision 0 then?
>
> > - You're missing a couple of fields:
> > The UUID of the repository.
> > Text-content-sha1
> > Text-delta-base-md5
> > Text-delta-base-sha1
>
> Yes, I'm aware. Since these fields aren't strictly necessary, I
> decided not to take the extra effort to print them out: you'll notice
> that I'm printing the md5 sum that the server gives me instead of
> calculating anything. SHA1 sum would require /some/ calculation. UUID
> and text-delta-base-md5 aren't a big deal though: I'll fix these
> later.
We added the sha1 field to the format in 1.6, as we have it available in the
fs layer anyway and we might want to prefer it over md5 in later version
(for future proofing the dump format). It's not used by our tools yet and we
don't send the value over the ra layer yet. Without revving the editor layer
it will be pretty hard to calculate it remotely even from the most recent
repositories.
I assume you don't get the SHA1 values when you use a recent svnadmin dump
on an older repository. (Untested statement)
> > - I've seen a "Prop-delta: true" line which svnadmin dump does not
print.
>
> Correct. `svnadmin dump` has a logic for determining when the prop is
> really a delta (as opposed to a delta against /dev/null). Since
> there's no harm printing extra Prop-delta headers, I decided not to
> implement this logic.
Do you know if this is this something as simple as: 'Is this a new node?' or
if this is some advanced scheme?
>
> > - You're missing some newlines that svnadmin dump prints (cosmetic,
> > but it would be nice if both produced matching output).
>
> This isn't in the dump-load-format spec document (atleast afaik), and
> it's very hard to get this right (yes, I tried). Moreover, it's very
> ungratifying to have a few extra newlines (reverse engineered from
> `svnadmin dump`) printed at the end of 10+ hrs of work; yes, that's
> what I estimate it'll take to fix this.
>
> > How to reproduce what I'm seeing:
> > Use svnsync to get a copy of the numptyphysics repository at
> > https://vcs.maemo.org/svn/numptyphysics (I had a dump of that lying
> > around... other repositories might do the job just as well, of
course)
> > Dump the repository using svnadmin dump --deltas.
> > Dump the repository using svnrdump.
> > Compare output with diff -u.
>
> Right. My validation script (validate.sh in the original repository)
> runs the following filter on the diff and validates if nothing seeps
> through. In other words, I know that these differences exist, and have
> determined that they're safe.
>
> gawk '$0 !~ "Prop-delta: true|Text-delta-base-|sha1|Text-copy-source-|^-
> $" && $0 ~ "^+|^-" { print; }'
Your mail explains Prop-delta, sha1, but what about these Text-delta-base
and Text-copy-source lines?
Bert
next prev parent reply other threads:[~2010-07-14 19:26 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-09 14:29 [PATCH v2] Add svnrdump Ramkumar Ramachandra
2010-07-13 20:11 ` Stefan Sperling
2010-07-14 15:32 ` Stefan Sperling
2010-07-14 16:01 ` Ramkumar Ramachandra
2010-07-14 16:48 ` C. Michael Pilato
2010-07-15 10:28 ` Ramkumar Ramachandra
2010-07-14 17:24 ` Stefan Sperling
2010-07-14 17:31 ` C. Michael Pilato
2010-07-14 17:34 ` Stefan Sperling
2010-07-14 17:47 ` Jonathan Nieder
2010-07-14 17:56 ` C. Michael Pilato
2010-07-15 12:01 ` Ramkumar Ramachandra
2010-07-14 19:25 ` Bert Huijben [this message]
2010-07-15 12:07 ` Ramkumar Ramachandra
2010-07-15 19:02 ` Ramkumar Ramachandra
2010-07-15 19:23 ` Stefan Sperling
2010-07-21 11:46 ` Ramkumar Ramachandra
2010-07-21 13:29 ` Daniel Shahaf
2010-07-21 19:03 ` Ramkumar Ramachandra
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='000101cb238a$5b2bfea0$1183fbe0$@collab.net' \
--to=rhuijben@collab.net \
--cc=artagnon@gmail.com \
--cc=d.s@daniel.shahaf.name \
--cc=david.barr@cordelta.com \
--cc=dev@subversion.apache.org \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.com \
--cc=srabbelier@gmail.com \
--cc=stsp@elego.de \
--cc=wmpalmer@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 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).