Mercurial — большой файл xxxx недоступен из http://foo/blah/blah

#mercurial #large-files

#mercurial #большие файлы

Вопрос:

Я клонировал большое репозиторий Mercurial, внес некоторые изменения, а затем перенес его на другой сервер.

Некоторые новые разработчики переходят к проекту и пытаются клонировать репозиторий с нового сервера, используя

hg clone -r «branchname» http://ourserver/scm/hg/repo

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

hg lfpull —rev «все ()»

Что приводит к множеству подобных ошибок:

Foo/Bar/afile.7z: большой файл xxxx недоступен из http://ourserver/scm/hg/repo

Если я захожу в веб-интерфейс Mercurial, просматриваю файл и загружаю его по ссылке «raw», я получаю файл с правильным именем файла, но он содержит только то, что, как я предполагаю, является идентификатором. Например, один PDF-файл содержит только:

f91476a8c2cc0a164c0880d128ca80776a8a934e

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

Ответ №1:

Просто идея:

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

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

Комментарии:

1. Хммм … мой администратор клянется, что largefiles включен. Я пропингую его снова. Спасибо.

2. Как мне подтвердить, что поддержка больших файлов включена на сервере?

3. @DavidLively: «В каждом локальном репозитории есть локальное хранилище больших файлов в «.hg / largefiles». » Центральный репозиторий также является локальным репозиторием … или просто проверьте .hgrc