git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2] Add svnrdump

From
Ramkumar Ramachandra <artagnon@gmail.com>
Date
Jul 14, 2010, 16:01 UTC
Message-ID
<20100714160149.GA7561@debian>
In-Reply-To
<20100714153206.GH25630@jack.stsp.name>
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?

Show 5 quoted lines
>  - 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.

>  - 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.

>  - 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.

Show 7 quoted lines
> 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; }'
Show 7 quoted lines
> Please get rid of all global variables in svnrdump.c:
> subversion/svnrdump/svnrdump.c:43: warning: declaration of `pool' shadows a glob
> al declaration
> subversion/svnrdump/svnrdump.c:33: warning: shadowed declaration is here
> subversion/svnrdump/svnrdump.c:91: warning: declaration of `pool' shadows a glob
> al declaration
> subversion/svnrdump/svnrdump.c:33: warning: shadowed declaration is here

Will do. I'm waiting for commit access, because I don't want to make un-versioned edits to the file that I cannot track or revert in future.

> When adding unit tests for svnrdump, please make each and every one of
> those tests compare with output of svnadmin dump --deltas, so that we
> will keep them in sync.

Right. Please see the current `validate.sh` for an example of the functionality I'll write into the unit tests.

-- Ram
Previous: Stefan SperlingNext: C. Michael Pilato
Message 4 of 19 in “Add svnrdump”
  1. Add svnrdumpRamkumar Ramachandra, Jul 9, 2010
  2. Stefan SperlingJul 13, 2010
  3. Stefan SperlingJul 14, 2010
  4. Ramkumar RamachandraJul 14, 2010
  5. C. Michael PilatoJul 14, 2010
  6. Ramkumar RamachandraJul 15, 2010
  7. Stefan SperlingJul 14, 2010
  8. C. Michael PilatoJul 14, 2010
  9. Stefan SperlingJul 14, 2010
  10. Jonathan NiederJul 14, 2010
  11. C. Michael PilatoJul 14, 2010
  12. Ramkumar RamachandraJul 15, 2010
  13. Bert HuijbenJul 14, 2010
  14. Ramkumar RamachandraJul 15, 2010
  15. Ramkumar RamachandraJul 15, 2010
  16. Stefan SperlingJul 15, 2010
  17. Ramkumar RamachandraJul 21, 2010
  18. Daniel ShahafJul 21, 2010
  19. Ramkumar RamachandraJul 21, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.