Ability to connect to MySQL through UNIX socket
diff links in query.py are shown now (moved expand_root_parents to config.py)
full-text comment searches in query and query_form are supported using MySQL FULLTEXT indexes
<select> for repository selection in query
git-svn-id: svn://svn.office.custis.ru/3rdparty/viewvc.org/trunk@5 6955db30-a419-402b-8a0d-67ecbb4d7f56
modules were renamed), and merge r1933 (in which the 'imp' module is
used to more directly deal with the import cycle problem).
* docs/upgrading-howto.html
Remove upgrading notes about renamed modules since, now, they aren't
renamed any more.
* viewvc-install
Note re-renamed paths.
* bin/mod_python/viewvc_mp.py,
* bin/mod_python/query_mp.py
Rename these back ...
* bin/mod_python/viewvc.py,
* bin/mod_python/query.py
... to these, and use the 'imp' module to load libraries from
specific locations.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1994 8cb11bc2-c004-0410-86c3-e597b4017df7
* lib/cvsdb.py
(CheckinDatabase.sql_delete): Add keep_fkey parameter, used to
prevent deletion of keys that are still in use in the 'checkins'
table.
(CheckinDatabase.PurgeRepository): Pass keep_fkey parameter when
deleting rows from tables other than 'checkins'.
* bin/cvsdbadmin,
* bin/svndbadmin
Update script usage messages to indicate that rebuilding includes
purging.
Patch by: Larry Shatzer (larrys {at} gmail.com)
(Tweaked by me.)
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1974 8cb11bc2-c004-0410-86c3-e597b4017df7
(cli): Add 'host' to the list of accepted long options.
Patch by: Larry Shatzer, Jr. <larrys {at} gmail.com>
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1962 8cb11bc2-c004-0410-86c3-e597b4017df7
Import 'vclib' so bad stuff doesn't happen. (Such as referencing a
non-imported module.)
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1959 8cb11bc2-c004-0410-86c3-e597b4017df7
routines (and use them).
Background: I had delusions of adding root-parent expansion for remote
Subversion repositories, but I lacked the requisite motivation.
Still, these are good changes which further move VC-specific knowledge
out of ViewVC's core moddules and back into the vclib abstraction
layer, which such knowledge belongs.
* lib/viewvc.py
(Request.run_viewvc): Use vclib.*.canonicalize_rootpath() to get
version-control-specific rootpath canonicalization.
(expand_root_parents, find_root_in_parents): Rework to use the
expand_root_parent() vclib implementations.
(locate_root): Docstring typo fix.
* lib/vclib/ccvs/__init__.py
(canonicalize_rootpath, expand_root_parent): New.
(CVSRepository): Use canonicalize_rootpath().
* lib/vclib/svn/__init__.py
(_re_url): Make module-global.
(canonicalize_rootpath, expand_root_parent): New.
(SubversionRepository): Use canonicalize_rootpath().
* bin/cvsdbadmin
(__main__): Use canonicalize_rootpath() before passing the root path
to vclib.ccvs.CVSRepository().
* bin/svndbadmin
(__main__): Use canonicalize_rootpath().
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1950 8cb11bc2-c004-0410-86c3-e597b4017df7
(__main__): Add some comments, and don't use the --host option with
'mysql' if you don't have to.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1904 8cb11bc2-c004-0410-86c3-e597b4017df7
handle Control-C more cleanly.
* bin/make-database
(INTRO_TEXT): Update this text for accuracy and clarity.
(__main__): Prompt the user for the database server hostname
(defaulting to 'localhost'), and use the result with the --host
argument to 'mysql'. While here, catch the KeyboardInterrupt
exception and silently terminate rather than raising a stacktrace.
Patch partially by Philip M. Gollucci <pgollucci {at} p6m7g8.com>.
Also:
* CHANGES
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1902 8cb11bc2-c004-0410-86c3-e597b4017df7
location on the command-line.
* bin/standalone.py
(handle_config): Add 'config_file' parameter.
(serve): Update call to handle_config().
(cli): Parse the -c / --config-file argument, and describe it in the
usage message. Also, disallow it when asked to be in GUI mode.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1840 8cb11bc2-c004-0410-86c3-e597b4017df7
* bin/cvsdbadmin
Update calls to vclib.ccvs.CVSRepository() to account for new
'authorizer' parameter.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1778 8cb11bc2-c004-0410-86c3-e597b4017df7
branch. This reduces the number of vclib plugins to two -- one for
each of CVS and Subversion.
* lib/viewvc.py
(): Update callers of vclib.svn.created_rev(), vclib.svn.get_location(),
vclib.svn.get_youngest_revision(), and vclib.svn.last_rev() to use
request.repos.* instead.
(Request.run_viewvc): For CVS, invoke only
vclib.ccvs.CVSRepository(), but pass the use_rcsparse setting to
it. For Subversion, invoke only vclib.svn.SubversionRepository().
* lib/vclib/ccvs/ccvs.py
Renamed from lib/vclib/ccvs/__init__.py, and tweaked to look for
stuff common to the bincvs implementation in the sibling 'bincvs'
module.
* lib/vclib/ccvs/__init__.py
New, a replacement by a new stub file with a factory function
that selects which CVS implementation to use.
* lib/vclib/ccvs/bincvs.py
Moved from lib/vclib/bincvs/__init__.py.
* lib/vclib/bincvs
Removed (it's now empty).
* lib/vclib/svn/svn_repos.py
Renamed from lib/vclib/svn/__init__.py.
(LocalSubversionRepository.created_rev,
LocalSubversionRepository.get_location,
LocalSubversionRepository.get_youngest_revision,
LocalSubversionRepository.last_rev): Moved into the class from outside.
* lib/vclib/svn/svn_ra.py
Moved from lib/vclib/svn_ra/__init__.py.
(RemoteSubversionRepository.created_rev,
RemoteSubversionRepository.get_location,
RemoteSubversionRepository.get_youngest_revision,
RemoteSubversionRepository.last_rev): Moved into the class from outside.
* lib/vclib/svn/__init__.py
New, replacing previous incarnation with a file that contains only a
single factory function.
* lib/vclib/svn_ra/
Removed (it's now empty).
* bin/loginfo-handler
(ProcessLoginfo): Now use vclib.ccvs.CVSRepository(), disabling use_rcsparse.
* bin/cvsdbadmin
(__main__): Now use vclib.ccvs.CVSRepository(), disabling use_rcsparse.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1739 8cb11bc2-c004-0410-86c3-e597b4017df7
* bin/svndbadmin
(usage): Make it clear that the REPOSITORY command-line argument
is a path to a repository (as opposed to a ViewVC rootname or
relative URL or something else).
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1703 8cb11bc2-c004-0410-86c3-e597b4017df7
(Cvs1Dot12ArgParse): Handle the imported sources case, too. Thanks to
Mark Keisler <mark@mitsein.net> for pointing this out in IRC today.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1627 8cb11bc2-c004-0410-86c3-e597b4017df7
(SvnRev.__init__): Don't use secs_from_timestr() -- it never
learned to accept optional pools. Do the math ourselves.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1556 8cb11bc2-c004-0410-86c3-e597b4017df7
of revisions for the 'update' operation.
* bin/svndbadmin
(): Update the script's header comment.
(main): Now accept a 'revs' list instead of a single integer revision.
(_rev2int): New helper function.
(usage): Update usage message.
(__main__): Now allow a revision range to be specified, with support
for the 'HEAD' keyword, too.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1546 8cb11bc2-c004-0410-86c3-e597b4017df7
Add some more debugging, and consume stdin so CVS's pipe doesn't
back up (which causes an abort()).
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1518 8cb11bc2-c004-0410-86c3-e597b4017df7
Fix the loginfo-handler's argument handling so that it works with
single-file commits in CVS 1.12.x.
Patch by: Cristian Tibirna <ctibirna@giref.ulaval.ca>
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1517 8cb11bc2-c004-0410-86c3-e597b4017df7
* lib/cvsdb.py
(CheckinDatabase.AddCommit): Set plus_count and minus_count
explicitly to '0', which seems to be required for some folks'
MySQL installations.
* bin/make-database
Explicitly declare that we want tables of type "MyISAM".
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1500 8cb11bc2-c004-0410-86c3-e597b4017df7
svndbadmin. Teach the 'rebuild' commands to first purge existing data
and then crawl the repository. Also, drop support for the 'rev'
parameter to 'svndbadmin rebuild', adding instead a '--force' option
to 'svndbadmin update'.
Suggested, and SQL commands offered, by Mark <mark@mitsein.net>.
* lib/cvsdb.py
(CheckinDatabase.sql_delete, CheckinDatabase.PurgeRepository): New.
* bin/svndbadmin
(handle_revision): Add 'force' parameter, used to force update of
commits already recorded in the database.
(main): Add 'force' parameter, passed on to handle_revision().
Handle the new 'purge' command, and teach 'rebuild' to also purge.
(usage): Update usage info.
(__main__): Add support for 'update --force' and 'purge', and drop
support for 'rebuild rev'. Add a KeyboardInterrupt handler.
* bin/cvsdbadmin
(usage): Add 'purge' usage info.
(__main__): Rework command-line parameter handling. Add support for
'purge' command, and make 'rebuild' first do a purge.
* CHANGES
Note this change.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1493 8cb11bc2-c004-0410-86c3-e597b4017df7
* bin/make-database
Up the length of the people table's 'who' column to 128 characters.
Suggested by: Ted Mielczarek <luserspaz@tigris.org>
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1492 8cb11bc2-c004-0410-86c3-e597b4017df7
introduced in CVS's 1.12 line.
Issue number(s): 257
Patch mostly by: Mark <mark@mitsein.net>, tweaked by me.
* bin/loginfo-handler
(Cvs1Dot12ArgParse): New.
(HeuristicArgParse): Update comment -- the problems is no longer
with "current" CVS, but with "older" ones.
(__main__): Detect the use of newer CVS loginfo formatting, and
parse the arguments accordingly. Also, clean up some indentation
inconsistency.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1463 8cb11bc2-c004-0410-86c3-e597b4017df7
cvsdbadmin script.
* bin/cvsdbadmin
(UpdateFile, RecurseUpdate, RootPath): Add new 'quiet_level'
argument. Callers updated.
(usage): Rewrite to indicate the existence of the new -q flag, and
to look more like the svndbadmin usage message.
(__main__): Parse the new -q argument.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1462 8cb11bc2-c004-0410-86c3-e597b4017df7
overlooked in that revision. This fixes issue #264, reported against
the nightly build.
* bin/loginfo-handler
(ProcessLoginfo): Pass cfg.utilities instead of cfg.general to
BinCVSRepository().
* bin/cvsdbadmin
(usage): Pass cfg.utilities instead of cfg.general to
BinCVSRepository()
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1431 8cb11bc2-c004-0410-86c3-e597b4017df7
(cli): Tweak the layout of the usage message, print it to stderr,
and report error details.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1379 8cb11bc2-c004-0410-86c3-e597b4017df7
cvs 1.12.9. Based on bug report and patch from sourceforge user
"grubert" in issue 151
* bin/loginfo-handler
(HeuristicArgParse): accept alternate command lines for
commits of new and imported directories
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1345 8cb11bc2-c004-0410-86c3-e597b4017df7
individual modules or directories underneath a cvs root. It will
now crawl up the directory path looking for a CVSROOT directory
so it can use the right path for the "repositories" table and
allow results to show up in queries
* bin/cvsdbadmin
(RootPath): new
(__main__ section): use RootPath to find correct cvs roots
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1285 8cb11bc2-c004-0410-86c3-e597b4017df7
* bin/cvsdbadmin
Minor spelling and whitespace fixes. Patch by David Martínez
Moreno <ender@debian.org>.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1281 8cb11bc2-c004-0410-86c3-e597b4017df7
(handle_revision): Add 'verbose' parameter, and use it.
(main): Add 'verbose' parameter, and pass it off to handle_revision().
(usage): Update the usage message (and make it a little more ... useful).
(__main__): Look for the -v (verbose) flag.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1279 8cb11bc2-c004-0410-86c3-e597b4017df7
Robert Spier <rspier@pobox.com> from the dev list.
* bin/mod_python/viewcvs.py
(index): load_config needs a sapi object to properly handle vhosts
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1272 8cb11bc2-c004-0410-86c3-e597b4017df7
<rooneg@electricjellyfish.net> pointed it out on the
dev list.
* bin/mod_python/viewcvs.py
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1269 8cb11bc2-c004-0410-86c3-e597b4017df7
Larry Silverman <cerulean47@gmail.com> on the users
list.
* lib/viewcvs.py
(build_commit): handle the case where dir_strip is ""
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1267 8cb11bc2-c004-0410-86c3-e597b4017df7
repository when root_as_url_component is disabled.
* bin/standalone.py
(StandaloneServer.is_viewcvs): Allow '?' as a path terminating
character (just like '/') when checking to see if the input path is
under ViewVC's control.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1263 8cb11bc2-c004-0410-86c3-e597b4017df7
dynamically fake a non-root location for a running ViewVC process.
Reasoning? It offends me that "viewcvs" was hardcoded in ... just
seems wrong.
* bin/standalone.py
(Options): Populate a new script_alias member.
(StandaloneServer.do_POST, StandaloneServer.is_viewcvs,
StandaloneServer.redirect, StandaloneServer.run_viewcvs): Use
options.script_alias instead of a hardcoded "viewcvs".
(cli): Parse new --script-alias/-s option for dynamically defining
the ScriptAlias. Rework the usage message for my own pleasure.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1227 8cb11bc2-c004-0410-86c3-e597b4017df7
in issue 179. (All changes are his except for a fix in standalone.py,
and a line initializing "commits.url" template variable to None
in build_commit).
* lib/config.py
* viewcvs.conf.dist
add [cvsdb] rss_row_limit config option
* lib/cvsdb.py:
(CheckinDatabase.CreateSQLQueryString): make "LIMIT" value customizable
(CheckinDatabaseQuery.__init__): set new "limit" member
(CheckinDatabaseQuery.SetLimit): new
* lib/viewcvs.py:
(_legal_params): add "limit" parameter
(common_template_data): add "rss_href" variable
(make_rss_time_string): new
(build_commit): add commits.title, commits.rev, commits.author,
commits.date, commits.url template variables
(view_query): handle "limit" parameter and new "rss" format
* templates/include/header.ezt
use new rss_href variable
* templates/rss.ezt
new
* bin/standalone.py
(run_viewcvs): set HTTP_HOST environment variable
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1212 8cb11bc2-c004-0410-86c3-e597b4017df7
sourceforge user "dchabal" in issue 131. The same bug was also reported
in issues 1, 17, 146.
* bin/make-database
remove "DEFAULT '0'" clauses from auto_increment column declarations
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1184 8cb11bc2-c004-0410-86c3-e597b4017df7
file, templates, etc). Specifically, make the following changes:
- Get rid of hardcoded paths in module files ("lib" directory) and
configuration files (viewcvs.conf and mod_python's .htaccess)
- Allow stub scripts (for asp, cgi, and mod_python) to specify
configuration files so it's possible to have multiple configurations of
viewcvs running off a single installation.
- Be more consistent about resolving paths when they aren't hardcoded
(when ViewCVS is running from a source directory). In particular, try
not to depend on the working directory. That way it's legal to run
./standalone.py instead of bin/standalone.py without getting an
ImportError.
- Get rid of global cfg variables in viewcvs.py and cvsdb.py. They led to
all sorts of hacks in other files to pilfer and reset them. They were
also possible sources of races in multithreaded environments like
mod_python and asp.
- Rewrite mod_python handler so library paths can be specified inside the
stub files.
* lib/apache.py
removed, contained old mod_python handler
* lib/config.py
(Config.load_config):
remove sys.argv voodoo, just load the configuration path specified in
the pathname argument
(Config.set_defaults):
use relative path for cvsgraph_conf setting instead of hardcoded
<VIEWCVS_INSTALL_DIRECTORY> literal
* lib/cvsdb.py
(CONF_PATHNAME, config, cfg):
removed, configuration stuff
(CheckinDatabase.__init__, CheckinDatabase.CreateSQLQueryString):
add "_row_limit" member instead of using cfg object
(CreateCheckinDatabase):
removed, a do-nothing function
(ConnectDatabaseReadOnly, ConnectDatabase):
add cfg arguments
(GetUnrecordedCommitList):
add db argument
* lib/query.py
(CONF_PATHAME):
removed
(build_commit, run_query, main):
add cfg arguments, use new viewcvs.get_template function
* lib/viewcvs.py
(CONF_PATHNAME, cfg, g_install_dir):
removed
(Request.__init__):
add cfg member
(Request.run_viewcvs, Request.get_link, check_freshness,
get_view_template, generate_page, default_view, get_file_view_info,
format_log, common_template_data, MarkupEnscript.__init__,
markup_stream_python, markup_stream_php, make_time_string, view_markup,
sort_file_data, view_directory, paging, view_log, view_annotate,
view_cvsgraph_image, view_cvsgraph, view_doc, rcsdiff_date_reformat,
spaced_html_text, DiffSource.__init__, DiffSource._get_row, view_patch,
view_diff, generate_tarball, download_tarball, view_revision,
is_query_supported, english_query, build_commit, view_query,
view_error, main):
stop using global config, use cfg arguments or request member instead
(_install_path):
new, use __file__ to locate template and configuation paths
(get_view_template):
use _install_path and return compiled template instead of path
(is_viewable, default_view):
rename is_viewable to default_view and return view instead of boolean
(handle_config, load_config):
rename handle_config to load_config and return config object instead
of setting cfg global
* bin/cgi/viewcvs.cgi
* bin/cgi/query.cgi
* bin/cvsdbadmin
* bin/loginfo-handler
* bin/standalone.py
* bin/svndbadmin
look for library relative to sys.argv[0] when no hardcoded library
path is available. Also add configuration loading code.
* bin/asp/viewcvs.asp
* bin/asp/query.asp
add configuration loading code
* bin/mod_python/.htaccess
specify new mod_python handler, remove reference to
<VIEWCVS_APACHE_LIBRARY_DIRECTORY>
* bin/mod_python/handler.py
added, holds new mod_python handler
* bin/mod_python/viewcvs.py
* bin/mod_python/query.py
rewrite for new handler, add hardcoded library and configuration paths
* viewcvs.conf.dist
remove references to <VIEWCVS_INSTALL_DIRECTORY>
* viewcvs-install
(FILE_INFO_LIST):
stop hardcoding paths in config files
(SetPythonPaths,):
get rid of <VIEWCVS_INSTALL_DIRECTORY> and
<VIEWCVS_APACHE_LIBRARY_DIRECTORY> substitutions
(ApacheEscape, _re_apache):
removed
(InstallTree):
stop hardcoding paths in lib directory
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1173 8cb11bc2-c004-0410-86c3-e597b4017df7
This gives me a chance to finally rename the 'www' directory to
something more in line with other CGI programs I've seen. And while
I'm here, and while we have Subversion, I might as well do many of the
reorgs I've been wanting to do for some time.
* www
Renamed to...
* bin
...this.
* standalone.py,
* tools/make-database,
* tools/svndbadmin,
* tools/loginfo-handler,
* tools/cvsdbadmin
Moved from here...
* bin/standalone.py,
* bin/make-database,
* bin/svndbadmin,
* bin/loginfo-handler,
* bin/cvsdbadmin
...to here.
* viewcvs-install
Update locations of moved files.
* viewcvs.sourceforge.net/upgrading.html
Tweak relevant documentation.
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@1161 8cb11bc2-c004-0410-86c3-e597b4017df7