2011-06-15 3 views
1

Голый со мной здесь, поскольку это кажется несуществующей проблемой в Интернете, кроме меня, испытывающего это.Mercurial не сохраняет нажатой набор изменений

Первоначально я устанавливал Mercurial на нашем ящике Ubuntu 10.04. У нас есть несколько проектов, и нам нужен надежный источник контроля версий. Я использовал Mercurial и люблю его. Сначала я начал с установки Mercurial и после нескольких руководств к T. Основное руководство, за которым я последовал и имел начальный успех, было http://phpfour.com/blog/2011/05/setting-up-central-mercurial-server-in-ubuntu/. Это руководство отлично работало для меня, мне пришлось отредактировать несколько вещей, чтобы использовать новый hgwebdir. cgi вместо hgweb.cgi, чтобы я мог использовать коллекции в config.

Вот мои файлы конфигурации, которые имеют отношение:

hgweb.config

[collections] 
/var/hg/repos = /srv/hg/repos 

hgwebdir.cgi только стандартный файл

Мой по умолчанию Apache виртуальный хост-файл: «/ и т.д./apache2/sites-available/default "

Хорошо, позвольте мне объяснить немного. Я изначально настроил это, как я сказал ранее, следуя приведенному выше руководству. Он работал в первый раз мгновенно. У меня было все, работа, сайт шел, толкание работало, тянуло, работало, обновлялось, все, на 100% безупречно.

Мне нужно поменять местами на сервере, изменив несколько вещей, и спустя несколько часов на репозиторий повлияло одно из изменений. После почти 12 часов изучения журналов и так я решил, что пришло время просто свежести. Я перезагрузил всю коробку свежей, ничего не менял и все по умолчанию.

Хорошо, имейте в виду, когда я говорю, что хранилище «не работает», так как это своего рода неопределенное описание, я объясню это; Сайт работал, я мог зайти на сайт www.mydomain.com/hg и посмотреть мои репозитории, я также мог совершать коммиты и отбрасывать обратно в центральный репозиторий на сервере, он показал все это в моих установках JIRA/Crucible/FishEye как каталог www.mydomain.com/hg моего сайта. Круто, так что ты думаешь, это сработало! Неправильно! Я мог бы нажимать, делать все изменения, которые я хотел, и видеть их изменения на сайте, но при просмотре файлов, которые предположительно должны были измениться; Затем я заметил, что они совсем не обновлялись.

Спустя несколько часов думая, что это было из-за некоторых изменений, которые я сделал; Я решаю вернуться. Переустановите Mercurial и настройте его во второй раз. Веб-сайты работают, могут нажимать, тянуть, обновлять, все. Однако файлы вообще не меняются !.

У меня есть папки моего хранилища, настроенные на chown -R www-data «RepoName» и даже chmod 777 на все, после того как разрешения по умолчанию не работают. Ясно, что владелец должен быть apache, чтобы он мог читать/записывать и выполнять эти файлы, когда необходимо внести изменения. Самое смешное в том, что каждый раз, когда я делаю изменения и нажимаю набор изменений на центральный DVCS, он фактически вносит изменения в папку .hg, но никогда не добавляет никаких необработанных файлов или вносит изменения в любые существующие файлы, которые планировались изменить в набор изменений, нажатый на сервер.

Я не знаю, в каком направлении идти в этот момент, я проверил несколько руководств и даже попытался настроить вещи в двух разных моделях безрезультатно. Если у кого-то вообще есть какие-то рекомендации по этому поводу, я бы оценил это больше, чем вы знаете. Это, кажется, серьезная проблема, и я бы хотел ее разрешить, потому что я не могу быть единственным человеком с этой проблемой.Я хочу сказать, что я просто хочу переключить решения по управлению версиями, но я работал, как только это было волшебным, и теперь он просто полностью сломан.

ответ

2

Помогло ли это, если вы запустите hg update в репозитории на сервере?

Если да, то вам необходимо установить changegroup hook на сервере:

[hooks] 
changegroup = hg update 

Решающим деталь, что hg pushне обновляет рабочий каталог принимающего хранилища.

+0

Martin, Вы буквально мой герой. У меня нет ни малейшего понятия, как вы знали это или что вы сделали, чтобы найти его, но это просто потрясающе. Я безостановочно возился с этим часами в часах. эта строка, которую вы указали выше, должна быть помещена в/etc/mercurial/hgrc? или где-нибудь еще, например, hgweb.config? – jhartzell

+0

Хорошо, поэтому его нужно поместить в файл/etc/mercurial/hgrc. Все это работает. Большое вам спасибо, вы действительно не знаете, сколько вы помогли. Если я когда-нибудь смогу помочь вам, пожалуйста, не стесняйтесь спрашивать. – jhartzell

+0

jhartzell: приветствую вас - это было, скорее всего, счастливое предположение, так как я видел этот вопрос раньше :-) Если вы хотите мне помочь, и если вы знаете какой-либо другой язык, кроме английского, пожалуйста, взгляните на перевод моего руководства Mercurial здесь: http://mercurial.aragost.com/kick-start/en/about/ –

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