Ваш пример рабочего процесса неверен.
Под «удаленным сервером» вы подразумеваете центральный сервер для ваших репозиториев, где каждый может нажать / вытащить, правильно?
Если да, то эта часть не обязательна:
затем перейдите на удаленный сервер и выполните hg init
, hg clone path_to_my_ repo
и hg update
Вы должны установить центральный репозиторий на сервере ОДИН РАЗ в начале (который, вероятно, включает hg init
для его создания, но не остальные).
-> тогда каждый может просто подтолкнуть и вытащить это, и все.
После этого вам не нужно ничего делать на сервере (например, редактировать файлы по FTP, как вы пытались) и, конечно, не hg update
после каждого нажатия!
(hg update
создает рабочий каталог в хранилище на сервере, который вам не нужен, если вы хотите только извлекать и извлекать из этого хранилища)
Настройка сервера также включает в себя разрешения (необязательно права доступа к файлу на сервере - больше похоже на то, у кого есть права доступа push / pull для определенного репозитория).
Обзор различных возможных способов настройки сервера Mercurial см. В Публикация репозиториев в вики Mercurial.
(я не могу помочь вам напрямую - я использую Mercurial ежедневно, но я не знаю, как настроить сервер Mercurial, не говоря уже о Unix)
EDIT:
Честно говоря, я не уверен, что понимаю ваш рабочий процесс.
Почему "ssh сервер, клонирующий репо"? Я не понимаю, почему вы хотите снова клонировать ваш центральный репозиторий на том же сервере.
Обычный базовый рабочий процесс выглядит следующим образом:
Вы работаете локально, пишете код и фиксируете его в своем локальном хранилище.
Где-то у вас есть центральное хранилище для вашего проекта (будь то на Github / Bitbucket или на вашем собственном сервере - вот что я имел в виду, когда говорил «центральный сервер»). После фиксации вы нажимаете на это, и теперь ваши изменения находятся в центральном хранилище.
Ваши коллеги делают то же самое, поэтому вы можете снова извлечь данные из центрального хранилища, чтобы получить изменения, сделанные вашими коллегами (и они также могут вытянуть, чтобы получить ваши изменения).
Тогда вы сказали это:
Сначала мы будем извлекать (клонировать в первый раз) файлы на поддомене (dev), каждый день перед выходом, а когда проект будет завершен, мы будем делать то же самое на сервере, клонируя репо на живом сервере.
Это просто для развертывания вашего проекта, верно? Я думаю, что неправильно понял, когда впервые прочитал ваш вопрос.
Таким образом, клонирование поддомена «dev» предназначено не для того, чтобы иметь еще один репозиторий для push / pull, а просто для развертывания тестовой среды. Правильно?
Если да, то все в порядке. Но для этого вам не нужно использовать FTP / SSH на сервере, где находится центральный репозиторий.
Вы можете просто создать новый репозиторий один раз на сервере dev (hg init
), а затем регулярно hg pull
из центрального репозитория и hg update
для обновления рабочей копии на сервере dev. Это все на сервере разработки, нет необходимости делать это на сервере, где находится центральный репозиторий.