Может кто-нибудь объяснить мне шаги по настройке системы контроля версий в Linux - PullRequest
1 голос
/ 30 мая 2011

Я очень стараюсь, и я не ругаюсь, чтобы понять, как работает этот контроль версий в моем сценарии

У меня есть VPS-сервер, на котором я размещаю php-сайты.У пользователей есть домашние каталоги в /home/users.

В настоящее время пользователи редактируют файлы через FTP, и я не контролирую, что они делают.Я хочу настроить систему контроля версий на VPS, я не знаю, как начать.Я имею в виду

Я объясню, что я хочу, я могу ошибаться, но, пожалуйста, исправьте меня.

  1. Как я могу установить VCS на моем VPS-сервере, чтобы все каталоги в/ home / пользователи контролируются версией.Я не знаю, возможно ли это или нет.Я хочу, чтобы конечное место сохранения или репо было /home/user/public_html, чтобы при фиксации пользователя мой сайт изменился.Теперь я не знаю, работает ли VCS таким образом или нет.

  2. Теперь, как мои клиентские компьютеры подключат этот сервер VCS

  3. Это так?возможно иметь контроль версий для одного пользователя, я имею в виду /home/user1/public_html, а не для других

  4. Теперь у пользователей все еще будут детали FTP, они не могут изменять файлы через FTP, даже если я использую VCS

Пожалуйста, проясните мои сомнения, я действительно хочу изучать системы VCS

Ответы [ 4 ]

3 голосов
/ 30 мая 2011
  • Да, это должно быть осуществимо. Ожидайте сохранения некоторых дополнительных данных, так как будет сохранена вся история плюс отдельная копия текущей версии для сохраненного.
  • Вы должны решить, какую систему контроля версий вы хотите использовать. Наиболее распространенные варианты:

    • 1008 * Subversion *
    • 1010 * Гит *
    • Mercurial
    • Базар

    Если вы или ваши пользователи уже имеете опыт работы с ним, возможно, это лучший выбор.

    Вы хотите:

    1. Установите выбранную систему контроля версий и создайте хук после фиксации для проверки каждой версии в целевых каталогах.
    2. Клиенты перейдут в репозиторий. Все системы поддерживают доступ через ограниченный ssh ​​(пользователи входят в систему с открытым ключом, и ключ установлен в .ssh / authorized_keys, чтобы разрешить только одну конкретную команду). В некоторых из них также есть метод на основе HTTP (специальный модуль Apache для Subversion, скрипт CGI для Mercurial, Bazaar и Git).
    3. Да; скрипт ловушки проверит то, что вы говорите. Вы можете реализовать его, чтобы оформить заказ для всех пользователей, перечисленных пользователей, пользователей в группе, что бы вам ни понадобилось.
    4. Выключить FTP-сервер.
2 голосов
/ 30 мая 2011

Обычно рабочий процесс заключается в том, что у вас есть хранилище со всеми ревизиями и изменениями. При этом используется специальный формат, нет никакого прямого доступа к этим файлам. Доступ к репо обычно осуществляется через интерфейс WebDAV (работает как модуль apache) или работает на автономном сервере (с собственным протоколом).

Пользователи фиксируют свои изменения в репозитории, а затем могут экспортировать последнюю версию (или одну из них по своему выбору) в общедоступный каталог * public_html *. Это вовлекает их во взаимодействие с VCS и знание (и заботу) об этом.

Более простая установка может состоять в том, что * public_html * содержит рабочую копию , и они взаимодействуют с ней через обычный FTP. (Вы должны убедиться, что файлы VCS, например, папки .svn, не могут быть доступны широкой публике). Таким образом, вы можете предоставлять функции VCS (в основном, фиксацию и откат) вашим пользователям через веб-интерфейс (вы пишете небольшой скрипт PHP, который выполняет commit и update для вас) .

Инкрементные резервные копии: совершенно другая история

Как я понял, вам, вероятно, нужно нечто большее, например, инкрементные резервные копии, например rsync . Каждый раз, когда пользователь закрывает FTP-соединение, вы можете инициализировать резервную копию rsync. Он имеет гибкие опции, вы можете иметь все изменения за последние X дней или последние сеансы X FTP, чтобы пользователь мог откатиться после случайной загрузки. (Может использоваться с удаленным или локальным хранилищем для резервных копий).

0 голосов
/ 30 мая 2011

Посмотрите, как работает Branchable . У них есть определенная веб-инфраструктура (ikiwiki), но основной принцип поддержания веб-сайтов в управлении версиями (git) одинаков, и все используемое ими программное обеспечение является открытым исходным кодом, включая сценарии, которые связывают все это вместе, так что вы можете посмотреть как это работает.

0 голосов
/ 30 мая 2011
  1. VCS (система управления версиями) - это просто класс программного обеспечения: вам нужно выбрать один, прежде чем вы сможете его реализовать. В вашем случае вы, вероятно, хотите subversion или одну из DVCS (распределенной системы контроля версий) (git или mercurial).

  2. Звучит так, как будто вам нужна какая-то автоматизированная система развертывания для ваших сайтов, что, безусловно, возможно.

  3. Отключить ftp очень просто: просто остановите работу ftp-сервера: ftp небезопасен, а сами серверы часто опасны.

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