From 6355639d08da738d2a994d1e311f0bd69f40671f Mon Sep 17 00:00:00 2001 From: cmpilato Date: Mon, 28 Feb 2005 15:40:08 +0000 Subject: [PATCH] Provide the Subversion youngest revision, and a link to it, to the directory view. This is pretty common request, the most recent by Sergio Rua . * viewcvs/lib/vclib/svn_ra/__init__.py (get_youngest_revision): New. * viewcvs/lib/vclib/svn/__init__.py (get_youngest_revision): New. * viewcvs/lib/viewcvs.py (view_directory): Re-organize some data dictionary stuffing (I really wish that *all* data dictionary parameters were initialized at the head of each view function so we can see a canonical list of those params, but maybe another day...). Also, for 'svn' roottypes, populate a new 'youngest_rev' and 'youngest_rev_href' dictionary items. * viewcvs/website/upgrading.html Document the new 'youngest_rev' and 'youngest_rev_href' template keys. git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1044 8cb11bc2-c004-0410-86c3-e597b4017df7 --- lib/vclib/svn/__init__.py | 4 ++++ lib/vclib/svn_ra/__init__.py | 4 ++++ lib/viewcvs.py | 19 ++++++++++--------- templates/include/dir_header.ezt | 2 +- website/upgrading.html | 8 ++++++++ 5 files changed, 27 insertions(+), 10 deletions(-) diff --git a/lib/vclib/svn/__init__.py b/lib/vclib/svn/__init__.py index ca5ad672..691ecf5a 100644 --- a/lib/vclib/svn/__init__.py +++ b/lib/vclib/svn/__init__.py @@ -255,6 +255,10 @@ def get_logs(svnrepos, full_name, files): core.svn_pool_destroy(subpool) +def get_youngest_revision(svnrepos): + return svnrepos.youngest + + def do_diff(svnrepos, path1, rev1, path2, rev2, diffoptions): root1 = fs.revision_root(svnrepos.fs_ptr, rev1, svnrepos.pool) root2 = fs.revision_root(svnrepos.fs_ptr, rev2, svnrepos.pool) diff --git a/lib/vclib/svn_ra/__init__.py b/lib/vclib/svn_ra/__init__.py index 235c1c56..c9049d70 100644 --- a/lib/vclib/svn_ra/__init__.py +++ b/lib/vclib/svn_ra/__init__.py @@ -321,6 +321,10 @@ def _escape_msvcrt_shell_arg(arg): _re_slashquote = re.compile(r'(\\+)(\"|$)') +def get_youngest_revision(svnrepos): + return svnrepos.youngest + + def do_diff(svnrepos, path1, rev1, path2, rev2, diffoptions): url1 = svnrepos.rootpath + (path1 and '/' + path1) url2 = svnrepos.rootpath + (path2 and '/' + path2) diff --git a/lib/viewcvs.py b/lib/viewcvs.py index 2a07bd42..0d6a84e4 100644 --- a/lib/viewcvs.py +++ b/lib/viewcvs.py @@ -1605,6 +1605,12 @@ def view_directory(request): 'num_files' : num_files, 'files_shown' : num_displayed, 'num_dead' : num_dead, + 'youngest_rev' : None, + 'youngest_rev_href' : None, + 'view_tag' : None, + 'has_tags' : None, + 'selection_form' : None, + 'queryform_href' : None, }) # clicking on sort column reverses sort order @@ -1641,12 +1647,6 @@ def view_directory(request): 'branch_tags': branch_tags, 'plain_tags': plain_tags, }) - else: - data.update({ - 'view_tag' : None, - 'has_tags' : None, - 'selection_form' : None, - }) # should we show the query link? if is_query_supported(request): @@ -1656,8 +1656,6 @@ def view_directory(request): data['queryform_href'] = request.get_url(view_func=view_queryform, params=params, escape=1) - else: - data['queryform_href'] = None if cfg.options.use_pagesize: url, params = request.get_link(params={'dir_pagestart': None}) @@ -1673,11 +1671,14 @@ def view_directory(request): data['tree_rev_href'] = request.get_url(view_func=view_revision, params={'rev': data['tree_rev']}, escape=1) + data['youngest_rev'] = vclib.svn.get_youngest_revision(request.repos) + data['youngest_rev_href'] = request.get_url(view_func=view_revision, + params={}, + escape=1) if request.query_dict.has_key('rev'): data['jump_rev'] = request.query_dict['rev'] else: data['jump_rev'] = str(request.repos.rev) - url, params = request.get_link(params={'rev': None}) data['jump_rev_action'] = urllib.quote(url, _URL_SAFE_CHARS) data['jump_rev_hidden_values'] = prepare_hidden_values(params) diff --git a/templates/include/dir_header.ezt b/templates/include/dir_header.ezt index c9d77769..cdf7957e 100644 --- a/templates/include/dir_header.ezt +++ b/templates/include/dir_header.ezt @@ -14,7 +14,7 @@ [is roottype "svn"] Current revision: - [tree_rev] + [tree_rev][if-any youngest_rev] (of [youngest_rev])[end] Jump to directory revision: diff --git a/website/upgrading.html b/website/upgrading.html index 042acfb1..67231fa6 100644 --- a/website/upgrading.html +++ b/website/upgrading.html @@ -407,6 +407,14 @@
Number of dead files.
+
+
+ directory.ezt and dir_alternate.ezt: + youngest_rev, youngest_rev_href +
+
Youngest revision and an href to navigate to it + (Subversion only).
+
diff.ezt: