• Авторизация


Как я боролся с Гвидо 25-03-2009 03:57 к комментариям - к полной версии - понравилось!


У нас с Гвидо произошел спор. Он конечно пока об этом не знает, да и я не знал до последнего момента. Но как в последствии оказалось именно его участие решило одну неприятную проблему. Действующих лиц было много: - Google App Engine - Mandarin (за авторством Гвидо ван Россума) - Django - Subversion - App Engine helper for Django - Eclipse - Diff Но вместо былинного эпоса на 10 страниц скажу только о завязке и развязке. Завязка началась с того, что в GAE SDK входит Django слегка ветхой версии (0.96) в наш век прогресса не доставляет той радости которую могла бы. Но при этом open source версия продукта с названием сочного фрукта прекрасно обходится последней версией (да еще и из trunk'а) этого продукта. Пытаясь повторить подвиг, я сделал все по инструкции. Но вместо желанной страницы мне локальная версия начала выдавать совершенно непонятную версию об ошибке, заканчивающуюся очень странным приговором:
....
File "/Users/xen/workspace/GoogleApps/seopad/django/conf/global_settings.py", line 290, in 
    URL_VALIDATOR_USER_AGENT = "Django/%s (http://www.djangoproject.com)" % get_version()
  File "/Users/xen/workspace/GoogleApps/seopad/django/__init__.py", line 14, in get_version
    svn_rev = get_svn_revision()
  File "/Users/xen/workspace/GoogleApps/seopad/django/utils/version.py", line 23, in get_svn_revision
    entries = open(entries_path, 'r').read()
  File "/Users/xen/Applications/GoogleAppEngineLauncher.app/Contents/Resources/
GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/
tools/dev_appserver.py", line 915, in __init__
    raise IOError(errno.EACCES, 'file not accessible')
Понятное дело ошибка в убогом /django/utils/version.py который живет в прошлом (или все таки будущем?) и не знает о том, что формат файла django/.svn/entries тот еще мутант. И вообще это внутреннее дело системы контроля версий в каком формате хранить внутренние файлы. Первый соблазн был исправить файл, пусть возвращает "незнама шо" сразу. Но я почему-то решил, раз Гвидо запустил без этого, то и я могу. Все же чужой код как-никак святое и некрасивые хаки не наш путь. Тем более что Django в rietveld берется из транка. ...Вот diff гвидовского и чистого файла:
loremaster:seopad xen$ diff version.orig.py version.guido-kun.py
16a17
 >     return u'SVN-unknown'
Тоесть вместо всех этих парсингов сразу возвращается строка. Очень некрасиво. Кстати, наверное и обычные Django проекты не должны работать. FAIL? Или они уже исправили?
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Как я боролся с Гвидо | neo-dope - Дневник neo-dope | Лента друзей neo-dope / Полная версия Добавить в друзья Страницы: раньше»