[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: How to use txdelta_window?

From: Alexey Neyman <stilor_at_att.net>
Date: Thu, 4 Mar 2010 12:26:23 -0800

Figured it out; I used svn_repos_replay, which does not send deltas.
Everything works with svn_repos_replay2.

Regards,
Alexey.

On Wednesday 03 March 2010 05:34:02 pm Alexey Neyman wrote:
> Hi all,
>
> I am trying to check for some content changes in the pre-commit script,
> and for that I am trying to employ the apply_textdelta method in the
> editor. From the comments in the code (e.g. in python bindings), I
> understand that the "window handler" callback should be called
> repeatedly and the last call would pass None (NULL in C) as the window
> pointer.
>
> However that does not seem to be the case. I tried creating the
> following editor and invoking it from pre-commit scripts:
>
> def add_file(self, path, parent_baton, copyfrom_path,
> copyfrom_revision, file_pool): if copyfrom_path is not None:
> sys.stderr.write(("@@ add_file %s (from %s:%d)\n" % (path,
> copyfrom_path, copyfrom_rev))) else:
> sys.stderr.write(("@@ add_file %s\n" % (path)))
> return [ path ]
>
> def apply_textdelta(self, file_baton, base_checksum):
> sys.stderr.write(("@@ apply_textdelta to %s\n" % (file_baton[0])))
> def winhnd(window, btn=file_baton, rcv=self):
> if window is not None:
> sys.stderr.write(("@@ delta_window on %s - not null\n" %
> (btn[0]))) else:
> sys.stderr.write(("@@ delta_window on %s - null\n" % (btn[0])))
> return winhnd
>
> def open_file(self, path, parent_baton, base_revision, file_pool):
> sys.stderr.write(("@@ open_file %s\n" % (path)))
> return [ path ]
>
> def close_file(self, file_baton, text_checksum):
> sys.stderr.write(("@@ close_file %s\n" % (file_baton[0])))
> return
>
> With that script, I get the output as below:
>
> @@ open_file foo/bar1
> @@ apply_textdelta to foo/bar1
> @@ delta_window on foo/bar1 - null
> @@ close_file foo/bar1
> @@ open_file foo/bar2
> @@ apply_textdelta to foo/bar2
> @@ delta_window on foo/bar2 - null
> @@ close_file foo/bar2
>
> That is, the "window handler" is always called with None object as
> the text delta. Am I doing something wrong? Could the change content
> be accessed from the pre-commit script?
>
> Regards,
> Alexey.
Received on 2010-03-04 21:26:58 CET

This is an archived mail posted to the Subversion Users mailing list.