Я использую Mercurial уже около года, и у меня не было проблем.
Сегодня я впервые столкнулся с проблемой.
Когда я пытаюсь нажать на удаленном сервере с
$ hg push
, я получаю следующий ответ
searching for changes
remote: abort: No space left on device
abort: unexpected response: empty string
Я погуглил эту проблему и обнаружил, что она задокументирована, и нашел следующую выдержку из Mercurial FAQ :
4.28.Я получаю «Нет свободного места» или «Дисковая квота превышена» при загрузке
Я получаю «Нет свободного места» или «Дисковая квота превышена» при загрузке, но есть много места или / и у меня естьнет ограничения квоты на устройстве, где находится удаленный репозиторий hg.
Проблема, вероятно, связана с тем, что mercurial использует / tmp (или один из каталогов, определяемых переменными среды $ TMPDIR, $ TEMP или $ TMP)распаковать полученный пакет на провод.Распаковка может затем достигнуть пределов устройства.
Конечно, вы можете установить $ TMPDIR в другое место на удаленном компьютере в файле конфигурации оболочки по умолчанию, но он может быть потенциально использован другими процессами, кроме mercurial.Другое решение - установить глобальный .hgrc на удаленном устройстве.Смотрите описание того, как установить хук для изменения каталога tmp на пульте при нажатии.
Я создал хук в моем файле /etc/mercurial/hgrc
, который выглядит следующим образом
[hooks]
pre-serve.tmpdir = python:hgenviron.settmpdir
, и затем я должен создать hgenviron.py
import os
#see http://docs.python.org/lib/module-tempfile.html
def settmpdir(ui, repo, hooktype, node=None, source=None, **kwargs):
os.environ["TMPDIR"] = "/home/tmp"
У меня проблема в том, что я не знаю, как добавить этот файл в $PYTHONPATH
в fedora
Моя операционная система Fedora 12 x86_64
У меня Python 2.6
У меня естьmercurial 1.6.4
ОБНОВЛЕНИЕ:
Я только что добавил hgenviron.py
в /usr/lib/python2.6/site-packages/hg/hgenviron.py
и
PYTHONPATH=$PYTHONPATH:/usr/lib/python2.6/site-packages/hg/hgenviron.py
export PYTHONPATH
в .sh
файлв /etc/profile.d
вместе с крючком в /etc/mercurial/
.
Однако я все еще получаю ошибку:
remote: abort: pre-serve.tmpdir hook is invalid (import of "hgenviron" failed) abort:
no suitable response from remote hg!