2010-12-16 11 views
4

Я получаю следующую ошибку при попытке клонирования из производственного репо.Mercurial abort: index ... поврежден

abort: index data/HR3/globals.php.i is corrupted! 

После чего меркурий быстро уходит от меня и не может клонировать. Я попытался удалить файл с вопросом из производственного репо, и это не удалось. Я также попытался удалить каталог .hg в производственном репо и повторное добавление и запись всех файлов. Это приводит к той же ошибке.

Просто fyi, я пытаюсь клонировать текущую производственную копию нашего приложения на нашем тестовом сервере. Наш тестовый сервер работает в Virtual Box.

UPDATE

Я исправил проблему, удалив файл глобал, а затем удалите каталог .hg и повторный запуск «рт.ст. инициализация» и «добавить рт.» и "hg commit".

Теперь я получаю ошибку внутреннего сервера, когда пытаюсь клонировать. Ниже приведена команда clone, которую я использовал.

sudo hg clone http://10.1.1.25/ www 

Как ни странно, ртутный говорит мне, что «реальный» URL является «10.1.1.25/HR3/index.php», который является наиболее определенно не мой ртутный хранилище. Я не знаю, почему это делается. Я проверил в своих журналах сервера, и следующая ошибка - это то, что Apache убрал.

[Thu Dec 16 12:25:30 2010] [error] [client 10.1.1.102] PHP Parse error: syntax error, unexpected T_STRING in /var/www/.hg/store/data/_h_r3/includes/_b_n_a_s/_b_n_a_s-_h_r_s201.php.i on line 22 

Видимо команда клон вызывает Mercurial пнуть PHP и сделать это пытаться разобрать что-то в хранилище данных Mercurial в?

РЕЗОЛЮЦИЯ

Я подозреваю, что это было вызвано тем, что у меня есть файл index.php в корневой директории моего репозитория, который делает редирект. Если вы попытаетесь перейти непосредственно к http: 10.1.1.25 в нашей сети, вы автоматически направляетесь на страницу индекса, которая не является страницей index.php в корневом каталоге. Почему-то я думаю, что это заставляло php начинать и пытаться разбирать элементы в магазине mercurial. Я решил эту проблему, клонируя по ssh.

+0

Ваше название имеет «Mercurial», но вы говорите о папке «.git». Который из них? – 2010-12-16 19:43:09

+0

Упс, я имел в виду .hg. Недавно я переключился с git на mercurial, поэтому иногда я смущаюсь. Я отредактирую. – 2010-12-16 19:47:23

+0

Убедитесь, что версии Mercurial на сервере и клиенте аналогичны. Возможно, вы пытаетесь клонировать от старого клиента, который ничего не понимает в репозитории. – 2010-12-16 20:28:57

ответ

2

кажется, что вы публикуете свой репозиторий со статическим-клиента способом, с того же сервера, как ваш проект развития жизни. Этот метод работает только в том случае, если веб-сервер не путается с $ URL/.hg, который, как вам кажется, кажется. проверьте, можете ли вы загрузить папку .hg с wget -r -np $URL/.hg в новой папке и запустить там hg verify.

Oddly enough, mercurial tells me that the "real" url is "10.1.1.25/HR3/index.php" which is most definitely not my mercurial repository.

Я полагаю, что ваш веб-сервер перенаправляет некоторые Mercurial-запросы на ваш url index.php.

Смежные вопросы