Fix issue #516 ("Regression: UnboundLocalError: local variable
'log_pagestart' referenced before assignment").
* lib/viewvc.py
(view_log): Initialize the 'log_pagestart' variable.
Also:
* CHANGES
Note this change, and plan on a 1.1.17 release today.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2809 8cb11bc2-c004-0410-86c3-e597b4017df7
Fix issue #515 ("XSS bug in diff view (CVE-2012-4533)").
* lib/viewvc.py
(DiffSource._get_row): Pass the "extra" line information through the
formatter code so that, at a minimum, it's HTML-escaped.
Patch by: Nicolás Alvarez <nicolas.alvarez{__AT__}gmail.com>
* conf/viewvc.conf.dist
Show the default value of 'hr_funout' as 1 (which matches the
programmatic default).
Also:
* CHANGES
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2793 8cb11bc2-c004-0410-86c3-e597b4017df7
Fix issue #512 ("'Select for diffs' does not work across pages").
* lib/viewvc.py
(view_log): Preserve the 'log_pagestart' query value when generating
the 'select for diff' links so that clicking the link returns you to
the same page (modulo repagination due to new commits in the race
window ... but let's not think about that). Also, preserve the
'r1' query parameter when generating the paging form.
Also:
* CHANGES
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2789 8cb11bc2-c004-0410-86c3-e597b4017df7
Finish issue #510 ("Block the expensive display of binary files").
Add a new configuration option 'binary_mime_types' which accepts a
comma-delimited list of MIME content type patterns ('text/plain', or
'image/*', etc.) against which versioned file MIME types are
compared for the purposes of deciding whether to allow their display
in the 'markup', 'annotate', 'diff' and 'patch' views.
* conf/viewvc.conf.dist
(binary_mime_types): Describe new option.
* lib/config.py
(_force_multi_value): Add 'binary_file_types' to the list of
multi-value options.
(Config.set_defaults): Initialize cfg.options.binary_mime_types.
* lib/viewvc.py
(is_binary_file_mime_type): New function.
(get_file_view_info): Use is_binary_file_mime_type() to determine
whether to return links to content-ful views of the input file.
(markup_or_annotate, view_diff): Use is_binary_file_mime_type() to
deny display of so-deemed binary files.
Also:
* CHANGES
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2785 8cb11bc2-c004-0410-86c3-e597b4017df7
* lib/viewvc.py
(LogFormatter.get): Fix a regression introduced in 1.1.14's handling
of log messages when not HTML-ifying them (for example, when serving
them up via RSS).
Patch by: Christoph Sommer <christoph.sommer{__AT__}uibk.ac.at>
Also:
* CHANGES
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2772 8cb11bc2-c004-0410-86c3-e597b4017df7
Optimize revision info fetches for remote SVN repositories to avoid
unnecessary (and somewhat expensive) work.
* lib/vclib/svn/svn_ra.py
(client_log): Add 'include_changes' parameter, pass to the
Subversion log APIs. Callers updated.
(_revinfo): Was _revinfo_raw(). Add 'include_changed_paths'
parameter. Now handles the revinfo cache, only fetches changed
paths when required, and bails out early of authz checks when
possible. All internal callers of revinfo() have been updated to
use this interface instead.
Also:
* CHANGES
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2766 8cb11bc2-c004-0410-86c3-e597b4017df7
Fix a couple of correctness/performance regressions in the remote SVN
annotate view recently introduced.
* lib/vclib/svn/svn_ra.py
(RemoteSubversionRepository.annotate): Pass 'svn_cross_copies'
option to itemlog() so that annotation history isn't unnaturally
truncated.
(RemoteSubversionRepository._blame_cb): Only consult the revinfo
cache when authz checks are required. This improves the speed of
the operation when universal read access is granted to the user.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2764 8cb11bc2-c004-0410-86c3-e597b4017df7
Fix a security issue: When a readable path is copied from an
unreadable one, Subversion will obscure the fact that the operation
was a copy (by removing copyfrom info) and will deem the log message
for the revision in which the copy occurred to be unreadable. ViewVC
was only doing the former bit; now it does the latter, too.
* lib/vclib/svn/svn_repos.py
(LocalSubversionRepository._get_changed_paths): Set found_unreadable
when we have to hide a copyfrom path, too.
Also:
* CHANGES:
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2762 8cb11bc2-c004-0410-86c3-e597b4017df7
fully honoring authz rules") from trunk. This merges r2755, r2756,
r2757, r2759, and r2760, which see for detail log revision information.
Also:
* CHANGES: Note the changes this offers.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2761 8cb11bc2-c004-0410-86c3-e597b4017df7
Fix issue #246 ("Add support for issue tracker links in commit-log
viewer").
NOTE: There are some limitations here, most prominantly that commas
can't be used in the regular expressions which define replacements,
and that only match groupings 0-9 can be used in the replacement
format string.
* conf/viewvc.conf.dist
(custom_log_formatting): New configuration option.
* lib/config.py
(Config._force_multi_value, Config.set_defaults): Add handling of
new 'custom_log_formatting' option.
* lib/viewvc.py
(ViewVCHtmlFormatter.format_custom_url): New formatter callback.
(LogFormatter.get): Register the new formatter callback for rules
found in the 'custom_log_formatting' option value.
Also:
* CHANGES:
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2747 8cb11bc2-c004-0410-86c3-e597b4017df7
("Log message tokenization results could be reused for better
performance"). See log messages for those revision for change
details.
Also:
* CHANGES
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2742 8cb11bc2-c004-0410-86c3-e597b4017df7
Fix issue #505 ("Username case normalization breaks when browsing
anonymously").
* lib/vcauth/svnauthz/__init__.py
(ViewVCAuthorizer.__init__): Don't try to convert a None username to
lower- or upper-case.
Also:
* CHANGES
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2739 8cb11bc2-c004-0410-86c3-e597b4017df7
have read something like this:
Fix issue #504 ("annotate view fails on filenames with colon (:)
characters in their names"), another in a long string of annotate view
brokennesses. (Is that word?) This time, the problem was a disparity
between Python's urllib encoding and what Subversion deems canonical.
* lib/vclib/svn/svn_repos.py
(_canonicalize_path): New helper function.
(_rootpath2url): Canonicalize URLs for use with Subversion.
* lib/vclib/svn/svn_ra.py
(): Import _canonicalize_path() from svn_repos.
(RemoteSubversionRepository._geturl): Canonicalize URLs for use
with Subversion.
Also:
* CHANGES
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2734 8cb11bc2-c004-0410-86c3-e597b4017df7
message that read like so:
* lib/vclib/svn/svn_repos.py
(_rootpath2url): Try a different approach that should actually
handle spaces in the "in-repos" path, too, and maybe (if I'm super
lucky) also work on Windows.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2708 8cb11bc2-c004-0410-86c3-e597b4017df7
* lib/viewvc.py
(): Stop importing the pygments stuff at the module-global scope,
and go back to doing so...
(markup_stream): ...here.
(markup_or_annotate): No longer consider access to Pygments when
making the first pass at colorizing -- if we don't have it,
markup_stream() will fail quickly and we can take the second
(non-colorizing) pass.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2703 8cb11bc2-c004-0410-86c3-e597b4017df7
issue #495 ("Syntax highlight/colorize scripts without extensions")
feature, plus a fix to help the prefer_markup flag get set more
accurately for the markup and annotate views.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2700 8cb11bc2-c004-0410-86c3-e597b4017df7
Revert r2657, r2680, and r2681, effectively removing support for
Pygments' lexer guessing functionality (closing the REOPENED bug issue
#501, and necessitating that feature issue #495 be itself REOPENED).
Also:
* CHANGES
Note that at this point, the lexer guessing stuff added in 1.1.12 has
been effectively removed.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2685 8cb11bc2-c004-0410-86c3-e597b4017df7
read something like this:
* lib/viewvc.py
(markup_stream_pygments): Rework the Pygments lexer-choosing logic a
bit. First, don't try any of it when syntax highlighting is
disabled. Secondly, don't guess at a lexer if we know the file's
MIME type isn't text-y and have already failed to get a matching lexer.
Also:
* CHANGES
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2682 8cb11bc2-c004-0410-86c3-e597b4017df7
Fix annotate views of files in Subversion repository whose paths
contain non-URI-safe characters (spaces, non-ASCII stuff, etc.)
* lib/vclib/svn/svn_repos.py
(_rootpath2url): Use urllib.pathname2url to URL-encode the path
portion of the URL we are building.
Also:
* CHANGES
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2675 8cb11bc2-c004-0410-86c3-e597b4017df7
Fix issue #499 ("svndbadmin fails on deleted files").
* bin/svndbadmin
(SvnRev.__init__): Update the logic used to calculate change types
and diff objects to no longer assume that deleted paths have None
for their change.path. (Subversion's 1.7 bindings always populate
change.path.)
Also:
* CHANGES
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2672 8cb11bc2-c004-0410-86c3-e597b4017df7
Finish issue #495 ("Syntax highlight/colorize scripts without
extensions").
* lib/viewvc.py
(markup_stream_pygments): Failing all else, use the Pygments
guess_lexer() function to guess a file's content type from the
first line of its text. (Most of this patch is compensation for
the first that if this heuristic codepath is traversed, we've eaten
a line of text from the file object that we don't expect to have
been eaten.
Patch by: Chris Mayo <cjmayo{__AT__}tigris.org>
(Tweaked by me.)
Also:
* CHANGES:
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2658 8cb11bc2-c004-0410-86c3-e597b4017df7
Finish issue #470 ("No links to repository root logs").
* lib/viewvc.py
(view_roots): Generate a log_href -- the revision log for the root
directory of the repository -- where it makes sense to do so.
* templates/roots.ezt
Markup the last-modified-revision as a link to the log view where
we can.
* docs/template-authoring-guide.html
Note the additional data dictionary item.
Also:
* CHANGES
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/branches/1.1.x@2654 8cb11bc2-c004-0410-86c3-e597b4017df7