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.

Reply via email to