Несколько месяцев назад я копался в Subversion и GIT и был разочарован. Они прекрасно справляются с SOURCE CODE, но не с другими аспектами. Например, веб-сайт под управлением версиями должен управлять владельцем файла / каталога, доступом к файлу / каталогу для чтения и записи, списками контроля доступа, временными метками, содержимым базы данных. и внешние ссылки. Существует ли система контроля версий, которая может выполнить возврат так же хорошо, как перезагрузка из резервной копии, созданной за месяц?
17
Ответы:
Вы запутались в роли системы контроля версий. Он не был и никогда не предназначался для резервного копирования работающего веб-сайта. Он очень хорошо справляется с управлением статическим контентом, поэтому он контролируется. При правильном использовании тегов и автоматических проверок даже быстро меняющиеся сайты могут быть сохранены в системе контроля версий.
Система контроля версий сможет рассказать вам, как вы узнали, как сайт выглядел в прошлом месяце, и как он выглядит сегодня (по крайней мере, для тех компонентов, которые находятся под контролем исходного кода). Он должен включать в себя все необходимое для перестройки сайта (кроме динамического контента). Как уже отмечалось, любые изменения в разрешениях и владельцах должны быть записаны в сценарии, и этот сценарий включен в систему контроля версий.
Права доступа к веб-сайтам, как правило, довольно просты. (По сути, вы должны убедиться, что веб-сервер может читать весь контент и писать его очень мало.) За исключением владения каталогом нескольких каталогов, которые должны быть доступны для записи с помощью веб-сервера, и, возможно, Git, может обрабатывать разрешения. Каталоги, доступные для записи веб-сервером, обычно содержат динамический контент (созданный и обновляемый с веб-сайта), который управляется отдельно от источника веб-сайтов.
Если бы меня попросили поработать с веб-сайтом со сложными правами доступа и списками ACL на вашем веб-сайте, у меня были бы серьезные опасения по поводу процесса, используемого для управления веб-сайтом. Внедрение системы контроля версий и перемещение ACL в нее было бы одним из решений, которое я бы серьезно рассмотрел.
Динамический контент, такой как записи блога или комментарии, обычно содержится в базе данных или другом хранилище данных, а не в управлении версиями, используемом для создания сайта. Хранилище данных может быть выполнено с возможностью обеспечения контроля версий его содержимого (как и это программное обеспечение). Многие вики используют систему контроля версий для отслеживания изменений.
РЕДАКТИРОВАТЬ:
Эти проблемы могут быть решены путем импорта сайта в систему контроля версий и изменения вашего процесса, чтобы главный сайт обновлялся через эту систему. (a), (b) и (c) обрабатываются непосредственно системой контроля версий. Вы можете пометить релизы, чтобы заставить (с) работать лучше. (d) обычно это не проблема, если система развертывания изменяет только ваш сайт. Я никогда не нуждался в ACL на контенте сайта.
(д) нужно запускать только при первоначальном создании и крупных изменениях. Он также может включать скрипт, который обновляет сайт из-за контроля версий и часто запускается. Эти сценарии, как правило, довольно просты, когда вы держите свой сайт в системе контроля неприятия.
Потому что это не нужно, если вы используете систему контроля версий.
И CVS, и Subversion отслеживают, что вам нужно отслеживать, если вы их используете. Они не будут отслеживать то, что вам нужно отслеживать, потому что вы не используете систему контроля версий, и при этом они не должны. Они отслеживают то, что вам нужно отслеживать, когда вы используете систему контроля версий.
Я работал с несколькими сайтами, которые управляли своим контентом с помощью контроля версий. У всех были разные требования к промежуточным сайтам, частоте развертывания и полноте обновлений. Как только сайты были в управлении версиями, они соответствовали остальным требованиям. Документация для CVS и Subversion содержит предложения о возможных методах обновления.
Возможно, вам понадобятся списки ACL для ограничения доступа к определенным областям содержимого с контролем версий. Однако я склонен работать на доверительной основе. Контроль версий позволяет легко увидеть, кто что сделал и когда. Если вы не переформатируете файлы, легко получить аннотированную историю файла, показывающую, кто, когда и какие строки добавил.
источник
Все из них и ни один из них.
Это плохая идея, чтобы получить контроль над источниками, чтобы управлять этими деталями напрямую, в соответствии с вашим вопросом.
Однако вы можете написать сценарий bash (* nix) или сценарий powershell (Windows), который достигает любой или всех этих целей. Этот скрипт может быть сохранен в системе контроля версий.
Затем вы можете сделать этот сценарий одним из артефактов сборки и запустить его как часть развертывания.
источник
ИМХО, система контроля версий сама по себе не предназначена для такого использования.
Но я стараюсь убедиться, что вы можете получить версию из системы контроля версий, вам нужно всего лишь запустить один файл сборки / файл powershell, и все снова работает.
Для этого вам необходимо:
источник
Я считаю, что вам нужно в вашем случае инструмент управления конфигурацией . Тот, который я использовал, это марионетка .
Цитирую вас:
Я сделал это одной строкой (убедитесь, что пользователь существует, убедитесь, что каталог существует и т. Д.) ...
Если это Windows ACL, то есть специальные инструменты CM для Windows ...
снова команда touch unix в одной строке скриптового сценария может сделать это за вас.
Это сборка во многих фреймворках, работа cron, которая гарантирует, что все будет иначе?
Ничего не знаю об этом.
Конечно, после того, как вы напишите свой код управления конфигурацией, вы можете захотеть поместить его (или получить его в соответствующих системах) в систему управления версиями. Ты не уйдешь от них :-).
источник
Существует совершенная система контроля версий, которая управляет всеми аспектами всех цифровых документов. Он называется Xanadu и был создан Теодором Холмом Нельсоном в 1960 году, еще до того, как такие вещи, как файловые системы, стали обычным явлением. Так что в теории все отлично решено. На практике Xanadu никогда не был реализован так, как предполагал Нельсон, но он вдохновил многие более специализированные системы, включая веб-системы и системы контроля версий. Работы Нельсона все еще заслуживают нового прочтения - и они могут ответить на вопрос, почему не существует общего VCS, который управляет всеми аспектами.
источник