Checkout
Julian Foad
committed
on 27 Jan 15
Factor out writing a dumpfile node record, from 'svnadmin dump', 'svnrdump
dump' and 'svndumpfilter'.

[Note from the future: this changed t… Show more
Factor out writing a dumpfile node record, from 'svnadmin dump', 'svnrdump

dump' and 'svndumpfilter'.

[Note from the future: this changed the order of headers in a node record.

Prop-content-length and Text-content-length now come last, just before

Content-length. The test suite was adjusted to accommodate this in r1655064.]

* subversion/include/private/svn_repos_private.h

 (svn_repos__dump_node_record): New function.

* subversion/libsvn_repos/dump.c

 (svn_repos__dump_node_record): New, moved from output_node_record in

   svndumpfilter.c. Make the content-length header optional when there are

   no properties or text, so we can preserve exact behaviour.

 (dump_node): Use it.

* subversion/svndumpfilter/svndumpfilter.c

 (output_node_record): Delete; move to svn_repos__dump_node_record.

 (set_fulltext,

  close_node): Adjust callers.

* subversion/svnrdump/dump_editor.c

 (dir_baton): Add a 'headers' field in which to accumulate headers.

 (make_dir_baton): Initialize the 'headers' field.

 (get_props_content): Don't add a Prop-content-length header here.

 (dump_node): Return headers instead of writing them.

 (dump_mkdir,

  dump_pending_dir): Simplify by using svn_repos__dump_node_record().

 (open_root,

  add_directory): Adjust a call to dump_node() to store the headers in the

   node baton instead of writing them out straight away.

 (close_directory): The same, and instead of adjusting the second dump_node

   call and then dumping the resulting headers, use dump_node_delete().

 (close_file): Adjust the call to dump_node() and use the headers returned

   from it as the starting point for creating the rest of the headers.

Show less