726 |
|
if (! prev_path) |
727 |
|
break; |
728 |
|
|
729 |
– |
if (authz_read_func) |
730 |
– |
{ |
731 |
– |
svn_boolean_t readable; |
732 |
– |
svn_fs_root_t *tmp_root; |
733 |
– |
|
734 |
– |
SVN_ERR(svn_fs_revision_root(&tmp_root, fs, revision, currpool)); |
735 |
– |
SVN_ERR(authz_read_func(&readable, tmp_root, path, |
736 |
– |
authz_read_baton, currpool)); |
737 |
– |
if (! readable) |
738 |
– |
{ |
739 |
– |
svn_pool_destroy(lastpool); |
740 |
– |
svn_pool_destroy(currpool); |
741 |
– |
|
742 |
– |
return SVN_NO_ERROR; |
743 |
– |
} |
744 |
– |
} |
745 |
– |
|
729 |
|
/* Assign the current path to all younger revisions until we reach |
730 |
|
the copy target rev. */ |
731 |
|
while ((revision_ptr < revision_ptr_end) |
747 |
|
/* State update. */ |
748 |
|
path = prev_path; |
749 |
|
revision = prev_rev; |
750 |
+ |
|
751 |
+ |
if (authz_read_func) |
752 |
+ |
{ |
753 |
+ |
svn_boolean_t readable; |
754 |
+ |
SVN_ERR(svn_fs_revision_root(&root, fs, revision, currpool)); |
755 |
+ |
SVN_ERR(authz_read_func(&readable, root, path, |
756 |
+ |
authz_read_baton, currpool)); |
757 |
+ |
if (!readable) |
758 |
+ |
{ |
759 |
+ |
svn_pool_destroy(lastpool); |
760 |
+ |
svn_pool_destroy(currpool); |
761 |
+ |
return SVN_NO_ERROR; |
762 |
+ |
} |
763 |
+ |
} |
764 |
|
|
765 |
|
/* Clear last pool and switch. */ |
766 |
|
svn_pool_clear(lastpool); |