Edgewall Software

Opened 17 years ago

Last modified 7 months ago

#5515 new defect

Empty changeset causes exception — at Version 1

Reported by: hinton_phil@… Owned by: Christian Boos
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 (last modified by Christian Boos)

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:
       427. if not env and env_error:
       428. raise HTTPInternalError(env_error)
       429. try:
       430. try:
       431. dispatcher = RequestDispatcher(env)
       432. dispatcher.dispatch(req)
       433. except RequestDone:
       434. pass
       435. return req._response or []
       436. finally:
       437. 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:
       212. 'Do you have cookies enabled?')
       213.  
       214. # Process the request and render the template
       215. try:
       216. try:
       217. resp = chosen_handler.process_request(req)
       218. if resp:
       219. if len(resp) == 2: # Clearsilver
       220. chrome.populate_hdf(req)
       221. template, content_type = \
       222. 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:
       314. self._render_diff(req, filename, repos, data)
       315. elif format == 'zip':
       316. self._render_zip(req, filename, repos, data)
       317.  
       318. # -- HTML format
       319. self._render_html(req, repos, chgset, restricted, xhr, data)
       320.
       321. if chgset:
       322. diff_params = 'new=%s' % new
       323. else:
       324. 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:
       590. info = None
       591. changes.append(info) # the sequence should be immutable
       592.  
       593. data.update({'has_diffs': has_diffs, 'changes': changes, 'xhr': xhr,
       594. 'filestats': filestats,
       595. 'files': files, 'location': self._get_location(files),
       596. 'longcol': 'Revision', 'shortcol': 'r'})
       597.  
       598. if xhr: # render and return the content only
       599. stream = Chrome(self.env).render_template(req, 'changeset.html',
       600. 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 (1)

comment:1 by Christian Boos, 17 years ago

Component: generalchangeset view
Description: modified (diff)
Milestone: 0.11
Owner: changed from Jonas Borgström to Christian Boos
Version: devel
files 	[None]
Note: See TracTickets for help on using tickets.