Некоторое время я вручную обновлял ревизии на сервере с помощью следующей команды:
$ cd /custom/www-data/
$ source /custom/www-data/.rvm/scripts/rvm
$ ./script/rails runner "Repository.fetch_changesets" -e production
fatal: bad object beacccb6c1107dfd0c62e4dd5d7ffbded9a93af5
Подозреваю, что это какой-то git commit.
Я пытаюсь найти этот uuid в папке репозиториев с помощью рекурсивного grep:
grep -rl 'beacccb6c1107dfd0c62e4dd5d7ffbded9a93af5' / данные / репозитории
В папке репозиториев, но не удалось.
Как отлаживать Repository.fetch_changesets, запущенные из ./script/rails runner?
Я использую redmine-2.3.4 с ruby 2.0.0-p247.
Как я нашел в источнике:
# Redmine is able to be clever and only fetch changesets
# going forward from the most recent one it knows about.
Если мы используем ртуть, Redmine автоматически обнаруживает головы. Если мы используем git, мы должны указать, какую голову мы хотим использовать.
Чтобы изменить заголовок в таблице репозиториев, я использовал следующий SQL:
UPDATE redmine.repositories SET extra_info="---
heads:
- 42ab65e323d6bcc7dbec14f0fa45d220ef5db501
db_consistent:
ordering: 1"
WHERE id=116;
В соответствии с http://www.redmine.org/issues/12505
Вы можете узнать, в каком репозитории это bad object
с помощью следующей команды:
$ mysql redmine
mysql> select * from repositories where extra_info like '%beacccb6c1107dfd0c62e4dd5d7ffbded9a93af5%'\G
Теперь вы можете удалить и снова добавить этот репозиторий, и теперь все должно быть в порядке.