From: Ramkumar Ramachandra <artagnon@gmail.com>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: "Git Mailing List" <git@vger.kernel.org>,
"David Michael Barr" <david.barr@cordelta.com>,
"Sverre Rabbelier" <srabbelier@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Daniel Shahaf" <d.s@daniel.shahaf.name>,
"Bert Huijben" <rhuijben@collab.net>,
"Junio C Hamano" <gitster@pobox.com>,
"Eric Wong" <normalperson@yhbt.net>,
dev@subversion.apache.org,
"Julian Foad" <julian.foad@wandisco.com>,
"Mark Phippard" <mphippard@collab.net>,
"Stefan Sperling" <stsp@elego.de>,
"Will Palmer" <wmpalmer@gmail.com>
Subject: Re: [PATCH 05/13] Drive the debug editor
Date: Wed, 7 Jul 2010 21:08:13 +0200 [thread overview]
Message-ID: <20100707190813.GA16065@debian> (raw)
In-Reply-To: <20100707182631.GB2617@burratino>
Hi Jonathan,
Jonathan Nieder writes:
> Ramkumar Ramachandra wrote:
>
> > +++ b/dump_editor.c
> > @@ -128,7 +128,7 @@ svn_error_t *get_dump_editor(const svn_delta_editor_t **editor,
> > de->close_directory = close_directory;
> > de->change_dir_prop = change_dir_prop;
> > de->change_file_prop = change_file_prop;
> > - de->apply_textdelta = apply_textdelta;
> > + /* de->apply_textdelta = apply_textdelta; */
>
> Hmm...
Without this, the program segfaults because the necessary setup for
applying a text delta hasn't been set up. Perhaps I should explain
this in my commit message?
> [...]
> > +++ b/dumpr_util.h
> > @@ -1,6 +1,11 @@
> > #ifndef DUMPR_UTIL_H_
> > #define DUMPR_UTIL_H_
> >
> > +struct replay_baton {
> > + const svn_delta_editor_t *editor;
> > + void *baton;
> > +};
> > +
>
> Context during svnsync-like replay ops:
>
> - a diff replayer
> - its context object
>
> Maybe "void *edit_baton" would be clearer.
>
> > struct edit_baton {
>
> Which might involve renaming this to dump_edit_baton to avoid
> confusion.
Done. I renamed both.
> > +++ b/svndumpr.c
> > @@ -8,10 +8,40 @@
> [...]
> > +static svn_error_t *replay_revstart(svn_revnum_t revision,
> > + void *replay_baton,
> > + const svn_delta_editor_t **editor,
> > + void **edit_baton,
> > + apr_hash_t *rev_props,
> > + apr_pool_t *pool)
>
> This function is called to acquire an editor to replay one revision.
>
> > +{
> > + /* Extract editor and editor_baton from the replay_baton and
> > + set them so that the editor callbacks can use them */
>
> This comment just paraphrases the code. What in particular requires
> explanation here?
This concept took me some time to wrap my head around: I had to stuff
the replay_baton with the editor/ editor_baton so that I could set
them for use in the callback functions. Comment moved to a later
patch.
> > + struct replay_baton *rb = replay_baton;
> > + *editor = rb->editor;
> > + *edit_baton = rb->baton;
> > +
> > + return SVN_NO_ERROR;
> > +}
>
> [...]
> > @@ -47,6 +77,25 @@ svn_error_t *open_connection(const char *url)
> >
> > svn_error_t *replay_range(svn_revnum_t start_revision, svn_revnum_t end_revision)
> > {
> [...]
> > + SVN_ERR(svn_cmdline_printf(pool, SVN_REPOS_DUMPFILE_MAGIC_HEADER ": %d\n",
> > + SVN_REPOS_DUMPFILE_FORMAT_VERSION));
>
> Did this sneak in from a later patch?
Yes. Fixed now. I moved it this change to the next patch.
> > + SVN_ERR(svn_ra_replay_range(session, start_revision, end_revision,
> > + 0, TRUE, replay_revstart, replay_revend,
> > + replay_baton, pool));
>
> Makes sense.
Thanks for the excellent review.
-- Ram
next prev parent reply other threads:[~2010-07-07 19:06 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-07 0:14 [GSoC update] git-remote-svn: Week 10 Ramkumar Ramachandra
2010-07-07 0:14 ` [PATCH 01/13] Add LICENSE Ramkumar Ramachandra
2010-07-07 0:14 ` [PATCH 02/13] Add skeleton SVN client and Makefile Ramkumar Ramachandra
2010-07-07 16:25 ` Jonathan Nieder
2010-07-07 17:09 ` Ramkumar Ramachandra
2010-07-07 19:30 ` Jonathan Nieder
2010-07-07 20:47 ` Ramkumar Ramachandra
2010-07-07 17:51 ` Daniel Shahaf
2010-07-07 0:14 ` [PATCH 03/13] Add debug editor from Subversion trunk Ramkumar Ramachandra
2010-07-07 17:55 ` Jonathan Nieder
2010-07-07 0:14 ` [PATCH 04/13] Add skeleton dump editor Ramkumar Ramachandra
2010-07-07 18:16 ` Jonathan Nieder
2010-07-08 6:17 ` Ramkumar Ramachandra
2010-07-07 0:14 ` [PATCH 05/13] Drive the debug editor Ramkumar Ramachandra
2010-07-07 18:26 ` Jonathan Nieder
2010-07-07 19:08 ` Ramkumar Ramachandra [this message]
2010-07-07 19:53 ` Jonathan Nieder
2010-07-08 6:04 ` Ramkumar Ramachandra
2010-07-07 0:14 ` [PATCH 06/13] Dump the revprops at the start of every revision Ramkumar Ramachandra
2010-07-07 19:04 ` Jonathan Nieder
2010-07-21 18:55 ` Ramkumar Ramachandra
2010-07-26 14:03 ` Julian Foad
2010-07-26 17:53 ` Ramkumar Ramachandra
2010-07-07 0:14 ` [PATCH 07/13] Implement open_root and close_edit Ramkumar Ramachandra
2010-07-07 0:14 ` [PATCH 08/13] Implement dump_node Ramkumar Ramachandra
2010-07-07 0:14 ` [PATCH 09/13] Implement directory-related functions Ramkumar Ramachandra
2010-07-07 0:14 ` [PATCH 10/13] Implement file-related functions Ramkumar Ramachandra
2010-07-07 0:14 ` [PATCH 11/13] Implement apply_textdelta Ramkumar Ramachandra
2010-07-07 0:14 ` [PATCH 12/13] Implement close_file Ramkumar Ramachandra
2010-07-07 0:14 ` [PATCH 13/13] Add a validation script Ramkumar Ramachandra
2010-07-07 20:24 ` [GSoC update] git-remote-svn: Week 10 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=20100707190813.GA16065@debian \
--to=artagnon@gmail.com \
--cc=avarab@gmail.com \
--cc=d.s@daniel.shahaf.name \
--cc=david.barr@cordelta.com \
--cc=dev@subversion.apache.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--cc=julian.foad@wandisco.com \
--cc=mphippard@collab.net \
--cc=normalperson@yhbt.net \
--cc=rhuijben@collab.net \
--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).