def _get_history(svn_path, authz, fs_ptr, pool, start, end, limit=None): """`svn_path` is assumed to be a UTF-8 encoded string. Returned history paths will be `unicode` objects though.""" history = [] if hasattr(repos, 'svn_repos_history2'): # For Subversion >= 1.1 def authz_cb(root, path, pool): if limit and len(history) >= limit: return 0 return authz.has_permission(_from_svn(path)) and 1 or 0 def history2_cb(path, rev, pool): history.append((_from_svn(path), rev)) repos.svn_repos_history2(fs_ptr, svn_path, history2_cb, authz_cb, start, end, 1, pool()) else: # For Subversion 1.0.x def history_cb(path, rev, pool): path = _from_svn(path) if authz.has_permission(path): history.append((path, rev)) repos.svn_repos_history(fs_ptr, svn_path, history_cb, start, end, 1, pool()) for item in history: yield item
def _get_history(path, authz, fs_ptr, start, end, limit=None): history = [] if hasattr(repos, 'svn_repos_history2'): # For Subversion >= 1.1 def authz_cb(root, path, pool): if limit and len(history) >= limit: return 0 return authz.has_permission(path) and 1 or 0 def history2_cb(path, rev, pool): history.append((path, rev)) repos.svn_repos_history2(fs_ptr, path, history2_cb, authz_cb, start, end, 1) else: # For Subversion 1.0.x def history_cb(path, rev, pool): if authz.has_permission(path): history.append((path, rev)) repos.svn_repos_history(fs_ptr, path, history_cb, start, end, 1) for item in history: yield item