Edgewall Software

Opened 17 years ago

Last modified 6 months ago

#5515 new defect

Empty changeset causes exception — at Initial Version

Reported by: hinton_phil@… Owned by: Jonas Borgström
Priority: normal Milestone: next-stable-1.6.x
Component: version control/changeset view Version: devel
Severity: normal Keywords: verify
Cc: Branch:
Release Notes:
API Changes:
Internal Changes:

Description

Context

  • Reorganizing project
    • Exported 2 svn repositories, server and client
    • Created new svn repository
    • Created 2 svn folders in new repository, server and client
    • Did import into server and client folders
  • Changed trac.ini to point to new repository, then did resync
  • Browsed to project Timeline to look at changesets
  • When I tried browse to changeset [1], got an internal error
  • Browsing to other changesets worked fine
    • Changeset [2] picked up the new server folder
    • Changeset [3] picked up the new client folder
    • Changeset [4] does not exist ??
    • Changeset [5] picked up import into server folder
    • Changeset [6] picked up import into client folder
  • I searched tickets for "changeset NoneType split" with no hits
  • Search for "changeset NoneType" hit an unrelated ticket

Diagnostic Data

Trac detected an internal error:

AttributeError: 'NoneType' object has no attribute 'split'

Python Traceback Most recent call last:

  • File "c:\python25\lib\site-packages\Trac-0.11dev_r5661-py2.5.egg\trac\web\main.py", line 432, in dispatch_request Code fragment:
    1. if not env and env_error:
    2. raise HTTPInternalError(env_error)
    3. try:
    4. try:
    5. dispatcher = RequestDispatcher(env)
    6. dispatcher.dispatch(req)
    7. except RequestDone:
    8. pass
    9. return req._response or []
    10. finally:
    11. if not run_once:
    Local variables: Name Value after [' except RequestDone:', ' pass', ' … before [' if not env and env_error:', ' raise … dispatcher <trac.web.main.RequestDispatcher object at 0x055836F0> e AttributeError("'NoneType' object has no attribute 'split'",) egg_cache None env <trac.env.Environment object at 0x0556AEF0> env_error None env_name 'sqdb' env_parent_dir 'D:/projects' env_path 'D:/projects\\sqdb' env_paths None environ {'HTTP_AUTHORIZATION': 'Basic cGhpbnRvbjplcjFjYTE=', 'wsgi.multiprocess': … exc_info (<type 'exceptions.AttributeError'>, AttributeError("'NoneType' object has … filename 'c:
    python25
    lib
    site-packages
    Trac-0.11dev_r5661-py2.5.egg
    trac
    web\ … frames [{'function': 'dispatch_request', 'lines_before': [' if not env and … has_admin True line ' dispatcher.dispatch(req)' lineno 431 message u"AttributeError: 'NoneType' object has no attribute 'split'" options {'TracUriRoot': '/projects', 'TracEnvParentDir': 'D:/projects'} path_info ['changeset', '1'] req <Request "GET u'/changeset/1'"> request_uri '/projects/sqdb/changeset/1' root_uri '/projects' run_once False script_url None start_response <bound method ModPythonGateway._start_response of … tb <traceback object at 0x06E36198> tb_hide None traceback 'Traceback (most recent call last):\n File …
  • File "c:\python25\lib\site-packages\Trac-0.11dev_r5661-py2.5.egg\trac\web\main.py", line 217, in dispatch Code fragment:
    1. 'Do you have cookies enabled?')
    2. # Process the request and render the template
    3. try:
    4. try:
    5. resp = chosen_handler.process_request(req)
    6. if resp:
    7. if len(resp) == 2: # Clearsilver
    8. chrome.populate_hdf(req)
    9. template, content_type = \
    10. self._post_process_request(req, *resp)
    Local variables: Name Value chosen_handler <trac.versioncontrol.web_ui.changeset.ChangesetModule object at … chrome <trac.web.chrome.Chrome object at 0x055838B0> err (<type 'exceptions.AttributeError'>, AttributeError("'NoneType' object has … handler <trac.versioncontrol.web_ui.changeset.ChangesetModule object at … req <Request "GET u'/changeset/1'"> self <trac.web.main.RequestDispatcher object at 0x055836F0>
  • File "c:\python25\lib\site-packages\Trac-0.11dev_r5661-py2.5.egg\trac\versioncontrol\web_ui\changeset.py", line 319, in process_request Code fragment:
    1. self._render_diff(req, filename, repos, data)
    2. elif format == 'zip':
    3. self._render_zip(req, filename, repos, data)
    4. # — HTML format
    5. self._render_html(req, repos, chgset, restricted, xhr, data) 320.
    6. if chgset:
    7. diff_params = 'new=%s' % new
    8. else:
    9. diff_params = unicode_urlencode({'new_path': new_path,
    Local variables: Name Value chgset <trac.versioncontrol.cache.CachedChangeset object at 0x07019F90> data {'changeset': <trac.versioncontrol.cache.CachedChangeset object at … diff_data {'style': 'inline', 'options': {'ignorecase': 0, 'ignoreblanklines': 0, … format None new 1 new_path '/' old None old_path None options -U2 prev None prev_path '/' prev_rev None repos <trac.versioncontrol.cache.CachedRepository object at 0x07014D50> req <Request "GET u'/changeset/1'"> restricted False self <trac.versioncontrol.web_ui.changeset.ChangesetModule object at … style 'inline' xhr False
  • File "c:\python25\lib\site-packages\Trac-0.11dev_r5661-py2.5.egg\trac\versioncontrol\web_ui\changeset.py", line 595, in _render_html Code fragment:
    1. info = None
    2. changes.append(info) # the sequence should be immutable
    3. data.update({'has_diffs': has_diffs, 'changes': changes, 'xhr': xhr,
    4. 'filestats': filestats,
    5. 'files': files, 'location': self._get_location(files),
    6. 'longcol': 'Revision', 'shortcol': 'r'})
    7. if xhr: # render and return the content only
    8. stream = Chrome(self.env).render_template(req, 'changeset.html',
    9. data, fragment=True)
    Local variables: Name Value _changeset_title <function _changeset_title at 0x06F8D470> _content_changes <function _content_changes at 0x06F17030> _estimate_changes <function _estimate_changes at 0x06F174F0> _prop_changes <function _prop_changes at 0x06F17B30> annotated False browser <trac.versioncontrol.web_ui.browser.BrowserModule object at 0x05583F70> change 'add' changes [{'new': {'path': u, 'href': '/projects/sqdb/browser/?rev=1', 'rev': 1, … chgset <trac.versioncontrol.cache.CachedChangeset object at 0x07019F90> context <Context u'[root], changeset:1' <Request "GET u'/changeset/1'">> data {'changeset': <trac.versioncontrol.cache.CachedChangeset object at … diff_bytes 0 diff_files 0 diffs [] files [None] filestats {'edit': 0, 'delete': 0, 'add': 1, 'copy': 0, 'move': 0} get_changes <function get_changes at 0x06F8D370> has_diffs False info {'new': {'path': u, 'href': '/projects/sqdb/browser/?rev=1', 'rev': 1, … kind 'dir' new_node <trac.versioncontrol.svn_fs.SubversionNode object at 0x06FEBE70> next_href '/projects/sqdb/changeset/2' next_rev 2 node_info <function node_info at 0x06F174B0> old_node None oldest_rev 1 options {'ignorecase': 0, 'ignoreblanklines': 0, 'contextlines': 2, … path '/' props [] repos <trac.versioncontrol.cache.CachedRepository object at 0x07014D50> req <Request "GET u'/changeset/1'"> restricted False rev 1 revprops {} self <trac.versioncontrol.web_ui.changeset.ChangesetModule object at … show_diff True show_diffs True show_entry True title 'Changeset 1' xhr False youngest_rev 6
  • File "c:\python25\lib\site-packages\Trac-0.11dev_r5661-py2.5.egg\trac\versioncontrol\web_ui\changeset.py", line 732, in _get_location

System Information:

User Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
Trac: 0.11dev-r5661
Python: 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)]
setuptools: 0.6c6
MySQL: server: "5.0.41-community-nt", client: "5.0.27", thread-safe: 1|
MySQLdb: 1.2.2
Genshi: 0.4.1
Subversion: 1.4.3 (r23084)
jQuery: 1.1.2

Change History (0)

Note: See TracTickets for help on using tickets.