Как настроить разрешения после клонирования hg на удаленном сервере? - PullRequest
0 голосов
/ 23 марта 2012

Я новичок в DVCS, но мне, наконец, удалось выяснить, как он работает, и сначала я хотел бы проверить, являются ли вышеуказанные шаги в моем рабочем процессе логичными:

Шаги: локально выполните: hg init, добавьте и измените файлы, hg add ., hg commit hg push path_to_my_ repo; затем зайдите на удаленный сервер и выполните hg init, hg clone path_to_my_ repo и hg update.

(клонировать непосредственно на dev.domain.com, когда содержимое репозитория извлекается в каталог, это нормально?!)

Проблема: я получаю свои файлы на удаленном сервере, они все есть, но Я не могу отредактировать ни один из них через мой FTP / SFTP клиент? Я не могу ничего редактировать в этих добавленных папках, поэтому проблема должна быть в разрешениях.

Я пробовал ls -al proj1 /:

drwxr-xr-x  3 root  root    4096 Mar 23 15:26 ./
drwxr-x--- 18 moove nobody  4096 Mar 23 15:26 ../
drwxr-xr-x  3 root  root    4096 Mar 23 15:26 .hg/
-rw-r--r--  1 root  root   40272 Mar 23 15:26 wp-app.php

И chown root: root proj1, но это не решило проблему.

Любые советы, пожалуйста?

1 Ответ

1 голос
/ 24 марта 2012

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

Если да, то эта часть не обязательна:

затем перейдите на удаленный сервер и выполните 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. Это все на сервере разработки, нет необходимости делать это на сервере, где находится центральный репозиторий.

...