summaryrefslogtreecommitdiff
path: root/subversion/libsvn_repos/reporter.c
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/libsvn_repos/reporter.c')
-rw-r--r--subversion/libsvn_repos/reporter.c41
1 files changed, 22 insertions, 19 deletions
diff --git a/subversion/libsvn_repos/reporter.c b/subversion/libsvn_repos/reporter.c
index 76c72016144c3..f56cb2ee980c0 100644
--- a/subversion/libsvn_repos/reporter.c
+++ b/subversion/libsvn_repos/reporter.c
@@ -481,10 +481,12 @@ get_revision_info(report_baton_t *b,
{
/* Info is not available, yet.
Get all revprops. */
- SVN_ERR(svn_fs_revision_proplist(&r_props,
- b->repos->fs,
- rev,
- scratch_pool));
+ SVN_ERR(svn_fs_revision_proplist2(&r_props,
+ b->repos->fs,
+ rev,
+ FALSE,
+ scratch_pool,
+ scratch_pool));
/* Extract the committed-date. */
cdate = svn_hash_gets(r_props, SVN_PROP_REVISION_DATE);
@@ -520,19 +522,13 @@ delta_proplists(report_baton_t *b, svn_revnum_t s_rev, const char *s_path,
{
svn_fs_root_t *s_root;
apr_hash_t *s_props = NULL, *t_props;
- apr_array_header_t *prop_diffs;
- int i;
svn_revnum_t crev;
- revision_info_t *revision_info;
- svn_boolean_t changed;
- const svn_prop_t *pc;
- svn_lock_t *lock;
- apr_hash_index_t *hi;
/* Fetch the created-rev and send entry props. */
SVN_ERR(svn_fs_node_created_rev(&crev, b->t_root, t_path, pool));
if (SVN_IS_VALID_REVNUM(crev))
{
+ revision_info_t *revision_info;
/* convert committed-rev to string */
char buf[SVN_INT64_BUFFER_SIZE];
svn_string_t cr_str;
@@ -563,6 +559,7 @@ delta_proplists(report_baton_t *b, svn_revnum_t s_rev, const char *s_path,
/* Update lock properties. */
if (lock_token)
{
+ svn_lock_t *lock;
SVN_ERR(svn_fs_get_lock(&lock, b->repos->fs, t_path, pool));
/* Delete a defunct lock. */
@@ -573,6 +570,7 @@ delta_proplists(report_baton_t *b, svn_revnum_t s_rev, const char *s_path,
if (s_path)
{
+ svn_boolean_t changed;
SVN_ERR(get_source_root(b, &s_root, s_rev));
/* Is this deltification worth our time? */
@@ -590,16 +588,20 @@ delta_proplists(report_baton_t *b, svn_revnum_t s_rev, const char *s_path,
if (s_props && apr_hash_count(s_props))
{
+ apr_array_header_t *prop_diffs;
+ int i;
+
/* Now transmit the differences. */
SVN_ERR(svn_prop_diffs(&prop_diffs, t_props, s_props, pool));
for (i = 0; i < prop_diffs->nelts; i++)
{
- pc = &APR_ARRAY_IDX(prop_diffs, i, svn_prop_t);
+ const svn_prop_t *pc = &APR_ARRAY_IDX(prop_diffs, i, svn_prop_t);
SVN_ERR(change_fn(b, object, pc->name, pc->value, pool));
}
}
else if (apr_hash_count(t_props))
{
+ apr_hash_index_t *hi;
/* So source, i.e. all new. Transmit all target props. */
for (hi = apr_hash_first(pool, t_props); hi; hi = apr_hash_next(hi))
{
@@ -669,7 +671,6 @@ delta_files(report_baton_t *b, void *file_baton, svn_revnum_t s_rev,
const char *s_path, const char *t_path, const char *lock_token,
apr_pool_t *pool)
{
- svn_boolean_t changed;
svn_fs_root_t *s_root = NULL;
svn_txdelta_stream_t *dstream = NULL;
svn_checksum_t *s_checksum;
@@ -683,14 +684,15 @@ delta_files(report_baton_t *b, void *file_baton, svn_revnum_t s_rev,
if (s_path)
{
+ svn_boolean_t changed;
SVN_ERR(get_source_root(b, &s_root, s_rev));
/* We're not interested in the theoretical difference between "has
contents which have not changed with respect to" and "has the same
actual contents as" when sending text-deltas. If we know the
delta is an empty one, we avoiding sending it in either case. */
- SVN_ERR(svn_repos__compare_files(&changed, b->t_root, t_path,
- s_root, s_path, pool));
+ SVN_ERR(svn_fs_contents_different(&changed, b->t_root, t_path,
+ s_root, s_path, pool));
if (!changed)
return SVN_NO_ERROR;
@@ -971,11 +973,11 @@ update_entry(report_baton_t *b, svn_revnum_t s_rev, const char *s_path,
if (s_root == NULL)
SVN_ERR(get_source_root(b, &s_root, s_rev));
- SVN_ERR(svn_fs_props_different(&changed, s_root, s_path,
- b->t_root, t_path, pool));
+ SVN_ERR(svn_fs_props_changed(&changed, s_root, s_path,
+ b->t_root, t_path, pool));
if (!changed)
- SVN_ERR(svn_fs_contents_different(&changed, s_root, s_path,
- b->t_root, t_path, pool));
+ SVN_ERR(svn_fs_contents_changed(&changed, s_root, s_path,
+ b->t_root, t_path, pool));
}
if ((distance == 0 || !changed) && !any_path_info(b, e_path)
@@ -1567,6 +1569,7 @@ svn_repos_finish_report(void *baton, apr_pool_t *pool)
{
report_baton_t *b = baton;
+ SVN_ERR(svn_fs_refresh_revision_props(svn_repos_fs(b->repos), pool));
return svn_error_trace(finish_report(b, pool));
}