1369
1370
SVN_ERR(svn_prop_diffs(&prop_diffs, props, sb->last_props,
1370
1371
sb->iterpool));
1372
/* Check if the contents *may* have changed. (Allow false positives,
1373
for now, as the blame implementation currently depends on them.) */
1374
/* Special case: In the first revision, we always provide a delta. */
1376
SVN_ERR(svn_fs_contents_different(&contents_changed, sb->last_root,
1377
sb->last_path, root, path_rev->path,
1373
/* Check if the contents *may* have changed. */
1374
if (! sb->last_root)
1376
/* Special case: In the first revision, we always provide a delta. */
1377
contents_changed = TRUE;
1379
else if (sb->include_merged_revisions
1380
&& strcmp(sb->last_path, path_rev->path))
1382
/* ### This is a HACK!!!
1383
* Blame -g, in older clients anyways, relies on getting a notification
1384
* whenever the path changes - even if there was no content change.
1386
* TODO: A future release should take an extra parameter and depending
1387
* on that either always send a text delta or only send it if there
1388
* is a difference. */
1389
contents_changed = TRUE;
1380
contents_changed = TRUE;
1393
/* Did the file contents actually change?
1394
* It could e.g. be a property-only change. */
1395
SVN_ERR(svn_fs_contents_different(&contents_changed, sb->last_root,
1396
sb->last_path, root, path_rev->path,
1382
1400
/* We have all we need, give to the handler. */
1383
1401
SVN_ERR(handler(handler_baton, path_rev->path, path_rev->revnum,
1446
1464
last_pool = svn_pool_create(scratch_pool);
1447
1465
sb.iterpool = svn_pool_create(scratch_pool);
1448
1466
sb.last_pool = svn_pool_create(scratch_pool);
1467
sb.include_merged_revisions = FALSE;
1450
1469
/* We want the first txdelta to be against the empty file. */
1451
1470
sb.last_root = NULL;
1601
1620
/* Create an empty hash table for the first property diff. */
1602
1621
sb.last_props = apr_hash_make(sb.last_pool);
1623
/* Inform send_path_revision() whether workarounds / special behavior
1625
sb.include_merged_revisions = include_merged_revisions;
1605
1627
/* Get the revisions we are interested in. */
1606
1628
duplicate_path_revs = apr_hash_make(scratch_pool);