id summary reporter owner description type status priority component severity resolution keywords cc release 4109 AttributeError: 'module' object has no attribute 'mknod' thesorcerer "Hi, I get this error when I try to use svnsync-plugin on XP Python Traceback Most recent call last: * File ""C:\Python25\Lib\site-packages\trac\web\main.py"", line 432, in _dispatch_request Code fragment: 427. try: 428. if not env and env_error: 429. raise HTTPInternalError(env_error) 430. try: 431. dispatcher = RequestDispatcher(env) 432. dispatcher.dispatch(req) 433. except RequestDone: 434. pass 435. resp = req._response or [] 436. 437. except HTTPException, e: Local variables: Name Value after [u' except RequestDone:', u' pass', u' resp = ... before [u' try:', u' if not env and env_error:', u' raise ... dispatcher e AttributeError(""'module' object has no attribute 'mknod'"",) env env_error None exc_info (, AttributeError(""'module' object has ... filename 'C:\\Python25\\Lib\\site-packages\\trac\\web\\main.py' frames [{'function': '_dispatch_request', 'lines_before': [u' try:', u' ... has_admin True line u' dispatcher.dispatch(req)' lineno 431 message u""AttributeError: 'module' object has no attribute 'mknod'"" req resp [] tb tb_hide None traceback 'Traceback (most recent call last):\n File ... * File ""C:\Python25\Lib\site-packages\trac\web\main.py"", line 174, in dispatch Code fragment: 169. if not req.path_info or req.path_info == '/': 170. chosen_handler = self.default_handler 171. # pre-process any incoming request, whether a handler 172. # was found or not 173. chosen_handler = self._pre_process_request(req, 174. chosen_handler) 175. except TracError, e: 176. raise HTTPInternalError(e) 177. if not chosen_handler: 178. if req.path_info.endswith('/'): 179. # Strip trailing / and redirect Local variables: Name Value chosen_handler chrome err (, AttributeError(""'module' object has ... handler req self * File ""C:\Python25\Lib\site-packages\trac\web\main.py"", line 295, in _pre_process_request Code fragment: 290. req.outcookie['trac_form_token']['secure'] = True 291. return req.outcookie['trac_form_token'].value 292. 293. def _pre_process_request(self, req, chosen_handler): 294. for filter_ in self.filters: 295. chosen_handler = filter_.pre_process_request(req, chosen_handler) 296. return chosen_handler 297. 298. def _post_process_request(self, req, *args): 299. nbargs = len(args) 300. resp = args Local variables: Name Value chosen_handler filter_ req self * File ""C:\Python25\Lib\site-packages\trac\versioncontrol\api.py"", line 86, in pre_process_request Code fragment: 81. 82. def pre_process_request(self, req, handler): 83. from trac.web.chrome import Chrome, add_warning 84. if handler is not Chrome(self.env): 85. try: 86. self.get_repository(req.authname).sync() 87. except TracError, e: 88. add_warning(req, _(""Can't synchronize with the repository "" 89. ""(%(error)s). Look in the Trac log for more "" 90. ""information."", error=e.message)) 91. Local variables: Name Value Chrome add_warning handler req self * File ""C:\Python25\Lib\site-packages\trac\versioncontrol\api.py"", line 157, in get_repository Code fragment: 152. repos = self._cache[tid] 153. else: 154. rtype, rdir = self.repository_type, self.repository_dir 155. if not os.path.isabs(rdir): 156. rdir = os.path.join(self.env.path, rdir) 157. repos = self._connector.get_repository(rtype, rdir, authname) 158. self._cache[tid] = repos 159. return repos 160. finally: 161. self._lock.release() 162. Local variables: Name Value authname 'anonymous' candidates [(8, ), ... connector db prio 8 rdir u'C:\\ETAP_svnsyncrep' repos_type 'svnsync' rtype u'svnsync' self tid 2508 * File ""c:\python25\lib\site-packages\svnsyncplugin-0.1.2-py2.5.egg\svnsyncplugin\svnsyncplugin.py"", line 35, in get_repository Code fragment: 30. def get_repository(self, repos_type, repos_dir, authname): 31. assert repos_type == 'svnsync' 32. 33. # sync the repository 34. directory = self.env.config.get('trac', 'repository_dir') 35. svnsync.sync(directory, self.repository_url, logger=self.env.log.info) 36. 37. repos = SubversionRepository(repos_dir, None, self.log) 38. return repos 39. 40. ### methods particular to SvnsyncConnector Local variables: Name Value authname 'anonymous' directory u'C:\\ETAP_svnsyncrep' repos_dir u'C:\\ETAP_svnsyncrep' repos_type u'svnsync' self * File ""c:\python25\lib\site-packages\svnsyncplugin-0.1.2-py2.5.egg\svnsyncplugin\svnsync.py"", line 82, in sync Code fragment: 77. if logger: 78. logger('repository changed! %s -> %s' % (url, repository.strip())) 79. logger('resyncing to new repository') 80. import shutil 81. shutil.rmtree(directory) 82. sync(directory, repository, username, logger=logger) 83. 84. return sh('svnsync', 'sync', repo, logger=logger) 85. 86. if __name__ == '__main__': 87. import optparse Local variables: Name Value directory u'C:\\ETAP_svnsyncrep' logger > propget ('', ""svn: Unable to open an ra_local session to URL\r\nsvn: Unable to ... repo u'file:///C:/ETAP_svnsyncrep' repository u'P:\\ETAP_TDP1_2\\.repository' shutil url '' username 'svnsync' * File ""c:\python25\lib\site-packages\svnsyncplugin-0.1.2-py2.5.egg\svnsyncplugin\svnsync.py"", line 66, in sync Code fragment: 61. 62. def sync(directory, repository, username='svnsync', logger=None): 63. 64. # create the mirror if it doesn't exist 65. if not os.path.exists(directory): 66. retval = create(directory, repository, username, logger=logger) 67. if retval[-1] != 0: 68. return retval 69. 70. repo = file_uri(directory) 71. Local variables: Name Value directory u'C:\\ETAP_svnsyncrep' logger > repository u'P:\\ETAP_TDP1_2\\.repository' username 'svnsync' * File ""c:\python25\lib\site-packages\svnsyncplugin-0.1.2-py2.5.egg\svnsyncplugin\svnsync.py"", line 49, in create Code fragment: 44. 45. filename = 'pre-revprop-change' 46. if os in windows: 47. filename += '.bat' 48. filename = os.path.join(directory, 'hooks', filename) 49. os.mknod(filename, 0770) 50. f = file(filename, 'w') 51. if os in windows: 52. print >> f, '' 53. else: 54. print >> f, '#!/bin/sh' Local variables: Name Value directory u'C:\\ETAP_svnsyncrep' filename u'C:\\ETAP_svnsyncrep\\hooks\\pre-revprop-change' logger > repository u'P:\\ETAP_TDP1_2\\.repository' username 'svnsync' File ""C:\Python25\Lib\site-packages\trac\web\main.py"", line 432, in _dispatch_request dispatcher.dispatch(req) File ""C:\Python25\Lib\site-packages\trac\web\main.py"", line 174, in dispatch chosen_handler) File ""C:\Python25\Lib\site-packages\trac\web\main.py"", line 295, in _pre_process_request chosen_handler = filter_.pre_process_request(req, chosen_handler) File ""C:\Python25\Lib\site-packages\trac\versioncontrol\api.py"", line 86, in pre_process_request self.get_repository(req.authname).sync() File ""C:\Python25\Lib\site-packages\trac\versioncontrol\api.py"", line 157, in get_repository repos = self._connector.get_repository(rtype, rdir, authname) File ""c:\python25\lib\site-packages\svnsyncplugin-0.1.2-py2.5.egg\svnsyncplugin\svnsyncplugin.py"", line 35, in get_repository svnsync.sync(directory, self.repository_url, logger=self.env.log.info) File ""c:\python25\lib\site-packages\svnsyncplugin-0.1.2-py2.5.egg\svnsyncplugin\svnsync.py"", line 82, in sync sync(directory, repository, username, logger=logger) File ""c:\python25\lib\site-packages\svnsyncplugin-0.1.2-py2.5.egg\svnsyncplugin\svnsync.py"", line 66, in sync retval = create(directory, repository, username, logger=logger) File ""c:\python25\lib\site-packages\svnsyncplugin-0.1.2-py2.5.egg\svnsyncplugin\svnsync.py"", line 49, in create os.mknod(filename, 0770) System Information: Trac: 0.11.2 Python: 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] setuptools: 0.6c9 SQLite: 3.3.4 pysqlite: 2.3.2 Genshi: 0.5 Pygments: 0.11.1 jQuery: 1.2.6 " defect new normal SvnsyncPlugin normal 0.11