another fix suggested by Anthon van der Neut in bug #817757
* lib/vclib/bincvs/__init__.py
(_check_path):
check for execute permission on directories when we fall back to
os.access()
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@767 8cb11bc2-c004-0410-86c3-e597b4017df7
Anthon van der Neut using the fix that he suggested. This change
also seems to fix another bug, #509961
* lib/vclib/bincvs/__init__.py
(_check_path):
fix check of os.access() return value
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@766 8cb11bc2-c004-0410-86c3-e597b4017df7
* lib/viewcvs.py:
(view_markup): replace ezt.boolean(0) with None
(view_directory): replace some Python ternary idioms (yuck) with a call
to ezt.boolean() which does the nifty magic for us anyways.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@762 8cb11bc2-c004-0410-86c3-e597b4017df7
by the new subversion revision page
* tools/bin2inline_py.py:
added two new icons
* lib/apache_icons.py:
regenerated
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@759 8cb11bc2-c004-0410-86c3-e597b4017df7
filling code to the bottom. Add a few comments too.
* lib/viewcvs.py
(view_directory):
move some code around
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@758 8cb11bc2-c004-0410-86c3-e597b4017df7
a lot of kludgy request.roottype == 'cvs' checks, but at least this
way there's a lot less duplicate code.
* viewcvs.py
(view_directory_cvs, view_directory_svn):
removed, code moved into view_directory
(view_directory):
no longer calls view_directory_cvs and view_directory_svn
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@757 8cb11bc2-c004-0410-86c3-e597b4017df7
* lib/vclib/bincvs/__init__.py
(_sort_tags):
new function to alltags dictionary
(get_logs):
assign found tags to repos object instead of returning
alltags dictionary
* lib/vclib/svn/__init__.py
* lib/vclib/svn_ra/__init__.py
(get_logs):
stop returning alltags dictionary
* lib/viewcvs.py
(view_directory_cvs, view_directory_svn):
updated to work with changed get_logs functions
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@754 8cb11bc2-c004-0410-86c3-e597b4017df7
count (which was incorrect before), the new code should be equivalent
to the old code.
* lib/viewcvs.py
(view_directory_cvs):
simplify some parts, mainly by grouping together assignments of
row properties
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@753 8cb11bc2-c004-0410-86c3-e597b4017df7
(view_revision_svn): Calculate links to the previous and next
revisions, as well as a jump-box for whatever revision you so
desire.
* viewcvs/templates/revision.ezt
Add UI for navigating to previous and next revisions, for jumping to
any particular revision you like.
* viewcvs/lib/vclib/svn/__init__.py
(date_from_rev, fetch_log): Stop recalculating the youngest rev.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@752 8cb11bc2-c004-0410-86c3-e597b4017df7
machine to communicate with Subversion repositories via the Subversion
client bindings -- meaning your Subversion repository can live on an
entirely different computer. Because of the experimental nature, I'm
leaving this feature undocumented (no remarks about using URLs in
viewcvs.conf.dist, basically).
* viewcvs/lib/vclib/svn_ra/__init__.py
The new module.
* viewcvs/lib/viewcvs.py
(_re_rewrite_url): Add a bunch of URL schemas that Subversion
supports to this regexp.
(Request.run_viewcvs): If a Subversion repository URL is given as
the root, use the 'svn_ra' module instead of the direct-access
'svn' one.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@750 8cb11bc2-c004-0410-86c3-e597b4017df7
* viewcvs/lib/vclib/svn/__init__.py
(_fs_path_join): Was fs_path_join.
(_log_helper): Was log_helper.
(_get_last_history_rev): Was get_last_history_rev.
(_get_history): Was get_history.
(fetch_log): Update calls to _log_helper and _get_history.
(get_logs): Update calls to _fs_path_join and _get_last_history_rev.
(SubversionRepository.openfile): Update call to _get_last_history_rev.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@749 8cb11bc2-c004-0410-86c3-e597b4017df7
fix tarball generation (it was broken by the previous commit)
* lib/vclib/bincvs/__init__.py
(BinCVSRepository.listdir):
add ability include Attic in returned listing
(CVSDirEntry):
new DirEntry subclass with additional "in_attic" member
* lib/viewcvs.py
(view_directory_cvs):
update to take advantage of the new listdir functionality
(generate_tarball_cvs, generate_tarball_svn):
update for changed listdir() and get_logs() vclib functions
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@748 8cb11bc2-c004-0410-86c3-e597b4017df7
DirEntry objects instead of returning dictionaries of LogEntry
objects. Also make some tweaks to the code that parses rlog output.
* lib/vclib/bincvs/__init__.py
(parse_log_header):
stop stripping ",v" suffixes off of filenames, fix error message
parser to work with windows paths, assign more sensible default
field values, and change a comment
(path_ends_in):
new function
(get_logs):
take list of DirEntries as argument and populate it with data
instead of returning a separate dictionary, also add some
extra error checking
* lib/vclib/svn/__init__.py
(get_logs):
take list of DirEntries as argument just like in bincvs. also
remove another unneccessary svn_fs_is_file call
* lib/viewcvs.py:
(sort_file_data):
change to use the new DirEntry properties
(view_directory_cvs, view_directory_svn):
update to work with changed get_logs functions
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@747 8cb11bc2-c004-0410-86c3-e597b4017df7
a new _check_path function. Also take the opportunity to write an alternate
implementation that works correctly on windows.
* lib/vclib/bincvs/__init__.py
(_check_path):
added
(BinCVSRepository.listdir):
shortened
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@746 8cb11bc2-c004-0410-86c3-e597b4017df7
* lib/vclib/bincvs/__init__.py
(BinCVSRepository._newest_file):
new function, cut and paste of get_last_modified
* lib/viewcvs.py
(get_last_modified):
removed
(view_directory_cvs):
use repos._newest_file function
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@745 8cb11bc2-c004-0410-86c3-e597b4017df7
called TagInfo in an attempt to make tag-matching code more readable.
* lib/vclib/bincvs/__init__.py
(TagInfo):
new class
(get_logs):
change to use TagInfo
* lib/viewcvs.py
(find_first_rev):
new function
(read_log, view_directory_cvs, view_log_cvs):
change to use Taginfo and find_first_rev
(CVSBranch):
died and reincarnated as TagInfo
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@743 8cb11bc2-c004-0410-86c3-e597b4017df7
(view_revision_svn): Oops. Fix the prev and diff_href calculations.
* viewcvs/templates/revision.ezt
Fix some logic to always populate the right number of cells.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@741 8cb11bc2-c004-0410-86c3-e597b4017df7
* viewcvs/lib/vclib/svn/__init__.py
(LogEntry.__init__): Remove 'other_paths' parameter and support.
(ChangedPathEntry): Remove.
(ChangedPath, get_revision_info): New.
(log_helper): Don't do changed-path or action stuffs. Update call
to LogEntry().
(get_logs): Update call to LogEntry().
* viewcvs/lib/viewcvs.py
(view_log_svn): Remove support for 'other_paths' support.
(view_revision): Move svn-specific stuff to new view_revision_svn()
(view_revision_svn): New.
* viewcvs/templates/revision.ezt
Make this template actually do something useful.
* viewcvs/templates/log.ezt
* viewcvs/templates/log_table.ezt
Remove display of "other_paths" from Subversion logs. Make revision
numbers into links to the revision view.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@740 8cb11bc2-c004-0410-86c3-e597b4017df7
(view_directory, view_directory_cvs, view_directory_svn):
move some common code in view_directory_cvs and
view_directory_svn into view_directory
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@738 8cb11bc2-c004-0410-86c3-e597b4017df7
* viewcvs/lib/viewcvs.py
(Request.get_link): Add code to generate the new revision info links.
(view_revision): New.
(_views): Alphabetically sort the views here, and add the new 'rev' view.
* viewcvs/viewcvs.conf.dist
(templates.revision): New.
* viewcvs/templates/revision.ezt
New.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@737 8cb11bc2-c004-0410-86c3-e597b4017df7
(get_logs): Copy the input 'files' array so we aren't deleting data
from the passed-in thing. Caller might want to keep using that
stuff, ya know?
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@735 8cb11bc2-c004-0410-86c3-e597b4017df7
(SubversionRepository.listdir)
implement using fs library functions instead of the vclib
getitem() interface
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@734 8cb11bc2-c004-0410-86c3-e597b4017df7
* lib/viewcvs.py
(_UNREADABLE_MARKER):
removed
(DirEntry):
new class to replace directory entry tuples
(get_file_data_svn, get_file_data):
take repository object and directory path as arguments instead of
taking the entire Request object. And return DirEntry instances
instead of tuples
(get_file_tests):
removed, code moved into get_file_data
(get_last_modified, sort_file_data, view_directory_cvs,
view_directory_svn, search_files, generate_tarball_cvs):
work with DirEntry instances instead of tuples
(search_files):
change the way this is called and remove cvs-specific code so
subversion listings could potentially have regular expression
searching
(download_tarball, generate_tarball_cvs, generate_tarball_svn):
change the way two recursive parameters are used to make it
easier to call vclib-style functions
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@731 8cb11bc2-c004-0410-86c3-e597b4017df7
pointed out that will ultimately allow us to get rid of an inefficient
call to svn_fs_paths_changed().
* lib/vclib/svn/__init__.py
(LogEntry.__init__, log_helper, get_logs):
no longer set LogEntry.action member
* templates/log.ezt
* templates/log_table.ezt
stop trying to read LogEntry.action member
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@729 8cb11bc2-c004-0410-86c3-e597b4017df7
* viewcvs/lib/vclib/svn/__init__.py
(ChangedPathEntry.__init__): Add 'action' parameter.
(_unparse_action): New helper (with code previously in log_helper()).
(log_helper): Now call _unparse_action() to get the action string
for the path. But now also call it for the other paths, passing
the result to the updated ChangedPathEntry.__init__() function.
* viewcvs/templates/log.ezt
* viewcvs/templates/log_table.ezt
Now show the type of change that happened for "the other paths", and
don't make paths that were deleted into hyperlinks.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@728 8cb11bc2-c004-0410-86c3-e597b4017df7
* viewcvs/lib/vclib/svn/__init__.py
(get_last_history_rev): Add 'pool' argument; use it instead of the
repository object's pool.
(get_logs): Make this sucker us an iteration subpool. Update call
to get_last_history_rev().
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@727 8cb11bc2-c004-0410-86c3-e597b4017df7
to disable a buggy and inefficient subversion feature. But it's no
longer neccessary with C. Mike's recent improvements to the subversion
module.
* viewcvs.conf.dist
(show_changed_paths):
removed option
* lib/config.py
(Config.set_defaults)
removed default assignment
* lib/viewcvs.py
(run_viewcvs):
stop passing option value to repository object
* lib/vclib/svn/__init__.py
(log_helper, fetch_log):
stop passing option value to log_helper function
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@726 8cb11bc2-c004-0410-86c3-e597b4017df7
* lib/vclib/svn/__init__.py
(_trim_path):
new function to take leading slashes off paths
(log_helper):
remove leading slashes from paths that get used by templates
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@725 8cb11bc2-c004-0410-86c3-e597b4017df7
* standalone.py
(global code):
remove os.chdir() call and set viewcvs.g_install_dir variable so
the templates and configuration file can be found
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@723 8cb11bc2-c004-0410-86c3-e597b4017df7
(handle_config):
when viewcvs is run without being installed first, look for a
viewcvs.conf file in the root of tree instead of in the current
directory
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@722 8cb11bc2-c004-0410-86c3-e597b4017df7
(log_helper): Stop skipping over revisions in which the target path
didn't actually change. If we decide to re-add this feature, we
need to do it in viewcvs.py itself (because other code, like
view_markup(), is depending on getting real values for all
relevant revisions.
(get_last_history_rev): New.
(get_logs): Move this function down in the file, and now call
get_last_history_rev() instead of fs.node_created_rev().
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@721 8cb11bc2-c004-0410-86c3-e597b4017df7
into shape for Subversion.
* viewcvs/lib/viewcvs.py
(view_log): Grab the path of a version selected for diffs from the
query data, and stash it in the data dictionary.
* viewcvs/templates/log_table.ezt
* viewcvs/templates/log.ezt
Fix the 'diff to previous', 'diff to selected', and 'select for
diff' links for Subversion. Also, don't display the various "branch
point" and "next main" diff links for Subversion.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@720 8cb11bc2-c004-0410-86c3-e597b4017df7
(read_log): Word-capitalize the "Tag Not Found" status line.
(view_diff): Add 400 status to the exceptions.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@718 8cb11bc2-c004-0410-86c3-e597b4017df7