Проблема с репозиторием git bare после обновления trac с 0.11 до 0.12 - PullRequest
3 голосов
/ 03 марта 2011

Я недавно обновил свою систему Trac, чтобы мы могли обрабатывать несколько репозиториев.Я начал получать некоторые ошибки браузера и отследил их до GitPlugin (когда я отключаю его, все ошибки исчезают, хотя, конечно, и отслеживание контроля версий тоже).

На каждой странице, которую я получаю:

'Warning:  Error with navigation contributor "BrowserModule"'

и на странице шкалы времени я получаю:

 Trac detected an internal error:

TypeError: 'NoneType' object is unsubscriptable

Журнал дает мне это для страницы шкалы времени из 'main':

Internal Server Error: Traceback (most recent call last): File "/usr/local
/lib/python2.6/dist-packages/Trac-0.12-py2.6.egg/trac/web/main.py", line 513, in 
_dispatch_request dispatcher.dispatch(req) File "/usr/local/lib/python2.6/dist-packages
/Trac-0.12-py2.6.egg/trac/web/main.py", line 235, in dispatch resp = 
chosen_handler.process_request(req) File "/usr/local/lib/python2.6/dist-packages/Trac-
0.12-py2.6.egg/trac/timeline/web_ui.py", line 142, in process_request available_filters += 
event_provider.get_timeline_filters(req) or [] File "/usr/local/lib/python2.6/dist-packages
/Trac-0.12-py2.6.egg/trac/versioncontrol/web_ui/changeset.py", line 861, in 
get_timeline_filters repositories = rm.get_real_repositories() File "/usr/local
/lib/python2.6/dist-packages/Trac-0.12-py2.6.egg/trac/versioncontrol/api.py", line 588, in 
get_real_repositories repos = self.get_repository(reponame) File "/usr/local/lib/python2.6
/dist-packages/Trac-0.12-py2.6.egg/trac/versioncontrol/api.py", line 526, in 
get_repository repos = connector.get_repository(rtype, rdir, repoinfo.copy()) File 
"/usr/lib/python2.6/dist-packages/tracext/git/git_fs.py", line 159, in get_repository 
shortrev_len=self._shortrev_len) File "/usr/lib/python2.6/dist-packages/tracext
/git/git_fs.py", line 177, in __init__ Repository.__init__(self, "git:"+path, None, log)
 File "/usr/local/lib/python2.6/dist-packages/Trac-0.12-py2.6.egg/trac/versioncontrol
/api.py", line 730, in __init__ self.reponame = params['name'] TypeError: 'NoneType' 
object is unsubscriptable

и это длявсе страницы из Chrome:

Error with navigation contributor BrowserModule: TypeError: 'NoneType' object is unsubscriptable

Я настроил несколько тестовых сред перед обновлением этой системы, и они оба работали с несколькими репозиториями и git, но с двумя ключевыми отличиями: они начинались как 0.12 ирепозитории не являются голыми репозиториями.

У меня такой вопрос: я что-то напутал при обновлении и мне нужно было начать с новой среды, нужно ли мне переключать свои репозитории на не-голые, или я что-то упустил полностью и мне нужно что-то сделать?еще

1 Ответ

6 голосов
/ 25 марта 2011

Хорошо, так что мне удалось найти работоспособное решение.

Зайдите на сервер и создайте новый каталог.

git клонируйте пустой удаленный репозиторий в этом новом каталоге.

перейдите в старый репозиторий и измените хук пост-получения (в разделе .git / hooks) на:

#!/bin/sh
pushd /path/to/new/repo > /dev/null
unset $(git rev-parse --local-env-vars)
git pull -q
popd > /dev/null

Если пост-получения нет, просто создайте файл симя этого файла.

Теперь перейдите в ваш файл trac.ini и укажите все ссылки на репозиторий на новый каталог репозитория и poof!это работает.

Примечание: люди, которые толкают, все еще толкают к старому хранилищу.Этот скрипт просто вызывает извлечение из «нового» хранилища.

...