Несоответствие файлов центрального сервера Mercurial (с использованием 'diff to local') - PullRequest
1 голос
/ 04 мая 2010

оповещение новичка!

ОК, у меня есть рабочий центральный репозиторий Mercurial, с которым я работаю уже несколько недель.

Все было замечательно, пока я не столкнулся с действительно странной проблемой: мой центральный сервер не синхронизирован с самим собой? У меня есть только один файл, который сейчас не синхронизирован, но мне действительно нужно знать, как это произошло, чтобы предотвратить его появление в будущем.

Сценарий:

1) создал хранилище Mercurial на сервере, используя существующий каталог проекта. В каталоге содержался файл «mypage.aspx».

2) На своей рабочей станции я клонировал центральное хранилище

3) Я внес изменения в mypage.aspx

4) hg commit, затем hg push с моей рабочей станции на центральный сервер

5) теперь, если я посмотрю на mypage.aspx в хранилище сервера с помощью обозревателя хранилища TortoiseHg, я увижу историю изменений для mypage.aspx - первоначальная регистрация и одно редактирование. Однако, когда я выбираю «Diff to local», он показывает, что текущая версия на диске сервера является исходной версией, а не отредактированной версией!

Я еще не экспериментировал с ветвлением, поэтому я уверен, что у меня нет проблем с ветвлением.

'hg status' на сервере или клиенте не возвращает ожидающих изменений.

Если я создаю клон репозитория сервера в новом месте, я вижу ту же историю изменений, что и ожидал, но файл на диске не содержит мои правки.

Итак, подведем итог:

Центральный репозиторий = исходный файл, но показывает изменение в истории изменений (плохо)

Локальный репозиторий 'A' = обновленный файл, показывает изменения в истории изменений (хорошо)

Локальный репозиторий 'B' = оригинальный файл, но показывает изменения в истории изменений (плохо)

Помогите пожалуйста!

Спасибо

David

Ответы [ 2 ]

3 голосов
/ 04 мая 2010

Похоже, вы смотрите на рабочую копию в центральном репо. Как и в вашем локальном репо, есть рабочая копия. Запуск hg update (или «Обновление до подсказки ветви» в TortoiseHg) должен синхронизировать рабочую копию центрального репо с самой последней.

1 голос
/ 04 мая 2010

Это нормально, так как хранилище на сервере состоит из двух компонентов: собственно хранилище наборов изменений (в подкаталоге .hg) и рабочая копия. Когда вы отправляете изменения из локального репозитория на своей рабочей станции в репозиторий сервера, он обновляет файлы репозитория на сервере (в подкаталоге .hg), но не изменяет файлы рабочей копии (вне поддиректория .hg): потребует явной операции обновления на сервере для изменения рабочей копии.

Если серверный репозиторий используется только в качестве репозитория, и вы выполняете всю свою реальную работу в клонах, то вам, вероятно, лучше использовать «пустой репозиторий» на сервере (просто удалите файлы рабочей копии и просто сохранить только сам подкаталог .hg).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...