DragonNest/Common/SVNLib/doc/group__delta__support.html
2024-12-19 09:48:26 +08:00

166 lines
13 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Subversion: Delta generation and handling</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<form action="search.php" method="get">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
<td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
</tr>
</table>
</form>
</li>
</ul>
</div>
</div>
<div class="contents">
<h1>Delta generation and handling</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Modules</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__svn__delta__txt__delta.html">Text deltas</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Text deltas. <br></td></tr>
<p>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__svn__delta__tree__deltas.html">Tree deltas</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Traversing tree deltas. <br></td></tr>
<p>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__svn__delta__path__delta__drivers.html">Path-based delta drivers</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Path-based editor drives. <br></td></tr>
<p>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structsvn__error__t.html">svn_error_t</a> *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__delta__support.html#g31e5b4fa524d2ee126ca8f7e7b49eece">svn_file_rev_handler_t</a> )(void *baton, const char *path, <a class="el" href="svn__types_8h.html#f16427ed53d30f27da225c56552d2a89">svn_revnum_t</a> rev, apr_hash_t *rev_props, <a class="el" href="svn__types_8h.html#22b35baddc4213c688d1bb12feea1024">svn_boolean_t</a> result_of_merge, <a class="el" href="group__svn__delta__txt__delta.html#g1c0d461a3f244928d7f0339c1cbe3219">svn_txdelta_window_handler_t</a> *delta_handler, void **delta_baton, apr_array_header_t *prop_diffs, apr_pool_t *pool)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The callback invoked by file rev loopers, such as svn_ra_plugin_t.get_file_revs2() and <a class="el" href="svn__repos_8h.html#aa6b9cc6022d3f2761be16407ba248b4" title="Retrieve a subset of the interesting revisions of a file path in repos as seen in...">svn_repos_get_file_revs2()</a>. <a href="#g31e5b4fa524d2ee126ca8f7e7b49eece"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structsvn__error__t.html">svn_error_t</a> *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__delta__support.html#g5436061cf6c7c18569781bb890e5d9fc">svn_file_rev_handler_old_t</a> )(void *baton, const char *path, <a class="el" href="svn__types_8h.html#f16427ed53d30f27da225c56552d2a89">svn_revnum_t</a> rev, apr_hash_t *rev_props, <a class="el" href="group__svn__delta__txt__delta.html#g1c0d461a3f244928d7f0339c1cbe3219">svn_txdelta_window_handler_t</a> *delta_handler, void **delta_baton, apr_array_header_t *prop_diffs, apr_pool_t *pool)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The old file rev handler interface. <a href="#g5436061cf6c7c18569781bb890e5d9fc"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__delta__support.html#gbb2b478ce4b35009702c3e3405146116">svn_compat_wrap_file_rev_handler</a> (<a class="el" href="group__delta__support.html#g31e5b4fa524d2ee126ca8f7e7b49eece">svn_file_rev_handler_t</a> *handler2, void **handler2_baton, <a class="el" href="group__delta__support.html#g5436061cf6c7c18569781bb890e5d9fc">svn_file_rev_handler_old_t</a> handler, void *handler_baton, apr_pool_t *pool)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return, in <em>*handler2</em> and <em>*handler2_baton</em> a function/baton that will call <em>handler/<em>handler_baton</em>,</em> allocating the <em>*handler2_baton</em> in <em>pool</em>. <a href="#gbb2b478ce4b35009702c3e3405146116"></a><br></td></tr>
</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g5436061cf6c7c18569781bb890e5d9fc"></a><!-- doxytag: member="svn_delta.h::svn_file_rev_handler_old_t" ref="g5436061cf6c7c18569781bb890e5d9fc" args=")(void *baton, const char *path, svn_revnum_t rev, apr_hash_t *rev_props, svn_txdelta_window_handler_t *delta_handler, void **delta_baton, apr_array_header_t *prop_diffs, apr_pool_t *pool)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="structsvn__error__t.html">svn_error_t</a>*(* <a class="el" href="group__delta__support.html#g5436061cf6c7c18569781bb890e5d9fc">svn_file_rev_handler_old_t</a>)(void *baton, const char *path, <a class="el" href="svn__types_8h.html#f16427ed53d30f27da225c56552d2a89">svn_revnum_t</a> rev, apr_hash_t *rev_props, <a class="el" href="group__svn__delta__txt__delta.html#g1c0d461a3f244928d7f0339c1cbe3219">svn_txdelta_window_handler_t</a> *delta_handler, void **delta_baton, apr_array_header_t *prop_diffs, apr_pool_t *pool) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The old file rev handler interface.
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd><code>svn_file_rev_handler_old_t</code> is a placeholder type for both <code>svn_repos_file_rev_handler_t</code> and <code>svn_ra_file_rev_handler_t</code>. It is reproduced here for dependency reasons.</dd></dl>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000093">Deprecated:</a></b></dt><dd>This type is provided for the <a class="el" href="group__delta__support.html#gbb2b478ce4b35009702c3e3405146116" title="Return, in *handler2 and *handler2_baton a function/baton that will call handler/handler_baton...">svn_compat_wrap_file_rev_handler()</a> compatibilty wrapper, and should not be used for new development. </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>New in 1.5. </dd></dl>
<p>Definition at line <a class="el" href="svn__delta_8h-source.html#l01126">1126</a> of file <a class="el" href="svn__delta_8h-source.html">svn_delta.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="g31e5b4fa524d2ee126ca8f7e7b49eece"></a><!-- doxytag: member="svn_delta.h::svn_file_rev_handler_t" ref="g31e5b4fa524d2ee126ca8f7e7b49eece" args=")(void *baton, const char *path, svn_revnum_t rev, apr_hash_t *rev_props, svn_boolean_t result_of_merge, svn_txdelta_window_handler_t *delta_handler, void **delta_baton, apr_array_header_t *prop_diffs, apr_pool_t *pool)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="structsvn__error__t.html">svn_error_t</a>*(* <a class="el" href="group__delta__support.html#g31e5b4fa524d2ee126ca8f7e7b49eece">svn_file_rev_handler_t</a>)(void *baton, const char *path, <a class="el" href="svn__types_8h.html#f16427ed53d30f27da225c56552d2a89">svn_revnum_t</a> rev, apr_hash_t *rev_props, <a class="el" href="svn__types_8h.html#22b35baddc4213c688d1bb12feea1024">svn_boolean_t</a> result_of_merge, <a class="el" href="group__svn__delta__txt__delta.html#g1c0d461a3f244928d7f0339c1cbe3219">svn_txdelta_window_handler_t</a> *delta_handler, void **delta_baton, apr_array_header_t *prop_diffs, apr_pool_t *pool) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The callback invoked by file rev loopers, such as svn_ra_plugin_t.get_file_revs2() and <a class="el" href="svn__repos_8h.html#aa6b9cc6022d3f2761be16407ba248b4" title="Retrieve a subset of the interesting revisions of a file path in repos as seen in...">svn_repos_get_file_revs2()</a>.
<p>
<em>baton</em> is provided by the caller, <em>path</em> is the pathname of the file in revision <em>rev</em> and <em>rev_props</em> are the revision properties.<p>
If <em>delta_handler</em> and <em>delta_baton</em> are non-NULL, they may be set to a handler/baton which will be called with the delta between the previous revision and this one after the return of this callback. They may be left as NULL/NULL.<p>
<em>result_of_merge</em> will be <code>TRUE</code> if the revision being returned was included as the result of a merge.<p>
<em>prop_diffs</em> is an array of <a class="el" href="structsvn__prop__t.html" title="A general in-memory representation of a single property.">svn_prop_t</a> elements indicating the property delta for this and the previous revision.<p>
<em>pool</em> may be used for temporary allocations, but you can't rely on objects allocated to live outside of this particular call and the immediately following calls to <em>*delta_handler</em> if any. (Pass in a pool via <em>baton</em> if need be.)<p>
<dl class="since" compact><dt><b>Since:</b></dt><dd>New in 1.5. </dd></dl>
<p>Definition at line <a class="el" href="svn__delta_8h-source.html#l01104">1104</a> of file <a class="el" href="svn__delta_8h-source.html">svn_delta.h</a>.</p>
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gbb2b478ce4b35009702c3e3405146116"></a><!-- doxytag: member="svn_delta.h::svn_compat_wrap_file_rev_handler" ref="gbb2b478ce4b35009702c3e3405146116" args="(svn_file_rev_handler_t *handler2, void **handler2_baton, svn_file_rev_handler_old_t handler, void *handler_baton, apr_pool_t *pool)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void svn_compat_wrap_file_rev_handler </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__delta__support.html#g31e5b4fa524d2ee126ca8f7e7b49eece">svn_file_rev_handler_t</a> *&nbsp;</td>
<td class="paramname"> <em>handler2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void **&nbsp;</td>
<td class="paramname"> <em>handler2_baton</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__delta__support.html#g5436061cf6c7c18569781bb890e5d9fc">svn_file_rev_handler_old_t</a>&nbsp;</td>
<td class="paramname"> <em>handler</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>handler_baton</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">apr_pool_t *&nbsp;</td>
<td class="paramname"> <em>pool</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Return, in <em>*handler2</em> and <em>*handler2_baton</em> a function/baton that will call <em>handler/<em>handler_baton</em>,</em> allocating the <em>*handler2_baton</em> in <em>pool</em>.
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>This is used by compatibility wrappers, which exist in more than Subversion core library.<p>
<code>svn_file_rev_handler_old_t</code> is a placeholder type for both <code>svn_repos_file_rev_handler_t</code> and <code>svn_ra_file_rev_handler_t</code>. It is reproduced here for dependency reasons.</dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>New in 1.5. </dd></dl>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Oct 24 16:18:29 2008 for Subversion by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>