All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.