Files
@ a8b407f29405
Branch filter:
Location: kallithea/docs/usage/debugging.rst - annotation
a8b407f29405
1.2 KiB
text/prs.fallenstein.rst
controllers: don’t pass start=0 to BaseRepository.get_changesets()
MercurialRepository.get_changesets() can fail if passing start=0 if the
revision 0 is not in self.revisions. That can happen if revision 0 is not in
the visible subset of the revisions in the repository. Before Kallithea
changeset 7c43e15fb8bc7a73f17f577e59a4698589b6809d, it was working by chance
because start=0 was treated like start=None in the relevant places
(GitRepository.get_changesets still does that).
The intention of passing start=0 was seemingly to not limit the start.
Therefore passing start=None (or nothing, as it’s the default value) should be
correct.
I got the following traceback before this change:
Traceback (most recent call last):
File "~/vcs/kallithea/kallithea/controllers/changelog.py", line 117, in index
collection = c.db_repo_scm_instance.get_changesets(start=0, end=revision,
File "~/vcs/kallithea/kallithea/lib/vcs/backends/hg/repository.py", line 529, in get_changesets
start_pos = None if start is None else self.revisions.index(start_raw_id)
ValueError: '4257f758b3eaacaebb6956d1aefc019afab956b8' is not in list
MercurialRepository.get_changesets() can fail if passing start=0 if the
revision 0 is not in self.revisions. That can happen if revision 0 is not in
the visible subset of the revisions in the repository. Before Kallithea
changeset 7c43e15fb8bc7a73f17f577e59a4698589b6809d, it was working by chance
because start=0 was treated like start=None in the relevant places
(GitRepository.get_changesets still does that).
The intention of passing start=0 was seemingly to not limit the start.
Therefore passing start=None (or nothing, as it’s the default value) should be
correct.
I got the following traceback before this change:
Traceback (most recent call last):
File "~/vcs/kallithea/kallithea/controllers/changelog.py", line 117, in index
collection = c.db_repo_scm_instance.get_changesets(start=0, end=revision,
File "~/vcs/kallithea/kallithea/lib/vcs/backends/hg/repository.py", line 529, in get_changesets
start_pos = None if start is None else self.revisions.index(start_raw_id)
ValueError: '4257f758b3eaacaebb6956d1aefc019afab956b8' is not in list
4d076981a7b1 4d076981a7b1 4d076981a7b1 e73a69cb98dc 4d076981a7b1 4d076981a7b1 4e6dfdb3fa01 4e6dfdb3fa01 4d076981a7b1 4e6dfdb3fa01 4d076981a7b1 fbbe80e3322b 03bbd33bc084 4d076981a7b1 4d076981a7b1 4e6dfdb3fa01 4e6dfdb3fa01 4e6dfdb3fa01 4e6dfdb3fa01 097327aaf2ad 4d076981a7b1 4d076981a7b1 03bbd33bc084 4d076981a7b1 4d076981a7b1 4e6dfdb3fa01 4e6dfdb3fa01 87ac42db389c 4e6dfdb3fa01 4e6dfdb3fa01 4e6dfdb3fa01 4e6dfdb3fa01 4e6dfdb3fa01 | .. _debugging:
===================
Debugging Kallithea
===================
If you encounter problems with Kallithea, here are some instructions
on how to debug them.
.. note:: First make sure you're using the latest version available.
Enable detailed debug
---------------------
Kallithea uses the standard Python ``logging`` module to log its output.
By default only loggers with ``INFO`` level are displayed. To enable full output
change ``level = DEBUG`` for all logging handlers in the currently used .ini file.
This change will allow you to see much more detailed output in the log file or
console. This generally helps a lot to track issues.
Enable interactive debug mode
-----------------------------
To enable interactive debug mode simply comment out ``set debug = false`` in
the .ini file. This will trigger an interactive debugger each time
there is an error in the browser, or send a http link if an error occurred in the backend. This
is a great tool for fast debugging as you get a handy Python console right
in the web view.
.. warning:: NEVER ENABLE THIS ON PRODUCTION! The interactive console
can be a serious security threat to your system.
|