From f2d02f282bd90d495f426c03409676baf739240d Mon Sep 17 00:00:00 2001 From: jhenstridge Date: Wed, 21 Jul 2004 15:46:47 +0000 Subject: [PATCH] Update get_link() to add a rev parameter for diff links on subversion repositories (sets rev to the same value as r2). Update run_viewcvs() so that if no view is selected, handle requests that specify r1,r2,rev as diffs rather than checkouts, and requests that specify r1,rev as logs. Update log.ezt and log_table.ezt to set the rev parameter in the diff links when browsing subversion repositories. git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@888 8cb11bc2-c004-0410-86c3-e597b4017df7 --- lib/viewcvs.py | 14 +++++++++++--- templates/log.ezt | 10 +++++----- templates/log_table.ezt | 10 +++++----- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/lib/viewcvs.py b/lib/viewcvs.py index 826d9b28..d68b91b2 100644 --- a/lib/viewcvs.py +++ b/lib/viewcvs.py @@ -316,7 +316,11 @@ class Request: if self.pathtype == vclib.DIR: self.view_func = view_directory elif self.pathtype == vclib.FILE: - if self.query_dict.has_key('rev'): + if self.query_dict.has_key('r1') and self.query_dict.has_key('r2'): + self.view_func = view_diff + elif self.query_dict.has_key('r1') and self.query_dict.has_key('rev'): + self.view_func = view_log + elif self.query_dict.has_key('rev'): if self.query_dict.get('content-type', None) in (viewcvs_mime_type, alt_mime_type): self.view_func = view_markup @@ -324,8 +328,6 @@ class Request: self.view_func = view_checkout elif self.query_dict.has_key('annotate'): self.view_func = view_annotate - elif self.query_dict.has_key('r1') and self.query_dict.has_key('r2'): - self.view_func = view_diff elif self.query_dict.has_key('tarball'): self.view_func = download_tarball elif self.query_dict.has_key('graph'): @@ -437,6 +439,12 @@ class Request: if view_func is view_annotate and params.has_key('annotate'): view_func = None + # For diffs on Subversion repositories, set rev to the value of r2 + # otherwise, we get 404's on movied files + if view_func is view_diff and self.roottype == 'svn' \ + and not params.has_key('rev'): + params['rev'] = params.get('r2') + # no need to explicitly specify diff view when # there's r1 and r2 parameters if view_func is view_diff and params.has_key('r1') \ diff --git a/templates/log.ezt b/templates/log.ezt index c59c1e1c..fa2c9530 100644 --- a/templates/log.ezt +++ b/templates/log.ezt @@ -42,7 +42,7 @@ [is entries.rev rev_selected] - [[]selected] [else] - - [[]select for diffs] + - [[]select for diffs] [end] [end] [end] @@ -103,10 +103,10 @@ [else] [is pathtype "file"] [if-any entries.prev] -
Diff to previous [entries.prev] +
Diff to previous [entries.prev] [if-any human_readable] [else] - (colored) + (colored) [end] [end] @@ -130,10 +130,10 @@ [if-any entries.to_selected] [if-any entries.prev], [else]
Diff[end] - to selected [rev_selected] + to selected [rev_selected] [if-any human_readable] [else] - (colored) + (colored) [end] [end] [end] diff --git a/templates/log_table.ezt b/templates/log_table.ezt index e5a3930b..9fd5b05b 100644 --- a/templates/log_table.ezt +++ b/templates/log_table.ezt @@ -53,20 +53,20 @@ [is entries.rev rev_selected] [[]selected]
[else] - [[]select for diffs]
+ [[]select for diffs]
[end] [if-any entries.to_selected] - Diff to selected [rev_selected]
+ Diff to selected [rev_selected]
[if-any human_readable] [else] - colored
+ colored
[end] [end] [if-any entries.prev] - Diff to previous [entries.prev]
+ Diff to previous [entries.prev]
[if-any human_readable] [else] - colored
+ colored
[end] [end] [end]