внедрение контроля версий для веб-разработки - PullRequest
6 голосов
/ 09 сентября 2010

Я пытаюсь перейти на контроль версий, так как мои проекты становятся все больше.В настоящее время моя разработка идет примерно так:

  • У меня есть "живая" версия, размещенная в Интернете
  • У меня есть локальная версия, а также локальный веб-сервер
  • Я редактирую локальную версию и выполняю тестирование на своем локальном веб-сервере
  • . Наконец, я запускаю Unison , который обновляет живую версию из моей локальной версии (а также обновляет мою локальную версию любымизменения в живую версию)

Моя локальная платформа Gentoo, Linux .Я немного изучил SVN, но думаю, что он может не соответствовать моим потребностям, поскольку мой локальный веб-сервер (и Unison) будет иметь доступ только к проверенному в данный момент коду и так далее.Возможно, я ошибаюсь, но я не очень много знаю об этом.

Может кто-нибудь подскажет, как настроить какой-то контроль версий в существующем коде, что приведет к тому, что последняя версия станет доступной длялокальный веб-сервер, и который не сокращает время доступа к неотредактированным файлам?(Я не хочу, чтобы Unison загружал каждый файл каждый раз, когда я вносил изменения)

Ответы [ 4 ]

2 голосов
/ 10 сентября 2010

Я использую Subversion для этого, и он работает хорошо.

Обычно я разворачиваюсь, пока у меня не будет чего-то очищенного для релиза.

На этом этапе я создамветка с именем что-то вроде релиза.Я запрыгну на производственную систему и проверю мою недавно созданную ветку.Для нескольких проектов у меня будет промежуточная зона, которая работает в производственной системе.

Например, у меня может быть дерево каталогов, которое выглядит следующим образом:

/web/sites/release-1
/web/sites/release-2
/web/sites/release-3
/web/sites/release-4
/web/sites/stage ==> release-4
/web/sites/live ==> release-3

"stage" и "live" - ​​это символические ссылки, и это то, что Apache имеет для DocumentRoot для virtualhosts www.example.com и stage.example.com)

Эта настройка позволяет мне довольно тщательно тестировать вещи в реальной производственной среде, а затем обрезать их путем замены символических ссылок.

Разветвлением перед развертываниемЯ могу сделать аварийные исправления на производстве в том редком случае, когда мне нужно это сделать.Затем я могу объединить эти изменения со стволом, когда это будет удобно и уместно.

Последний совет: если вы используете рабочие копии проектов subversion в производственной среде, вам нужно не допустить, чтобы apache позволял людям просматриватьКаталоги .svn в вашем проекте:

в httpd.conf:

<Directory ~ "\.svn">
    Order allow,deny
    Deny from all
</Directory>
0 голосов
/ 09 сентября 2010

Mercurial стиль:

> cd ~/code
> hg init
> hg add *
> hg commit -m "Initial checkin"

Это даст вам рабочий ртутный репозиторий. Прочитайте ссылку для получения дополнительной информации о том, как ее использовать.

Вы можете клонировать с вашего локального веб-сервера и с вашего живого веб-сервера, чтобы поддерживать актуальность.

0 голосов
/ 09 сентября 2010

Чтобы расширить ответ @ Натона. Вы хотите сделать:

cd ~/code # this is where your code lives now
# set your local webserver to run from *this* directory
hg init
hg add *
hg commit -m "Initial checkin"
hg clone ~/code ~/staging
cd ~/staging
# set Unison to run from *this* directory

Занимайтесь разработкой в ​​~ / code, проверяя его на локальном сервере. Фиксируйте, когда захотите. Когда вы получите что-то, что работает, пометьте это. Затем выполните:

cd ~/staging
hg pull
hg update your-tag-name
# run unison.

У меня сложилось впечатление, что вы также хотите, чтобы ваш локальный сервер работал из промежуточной области, но это кажется плохой идеей, поскольку вы хотите использовать его для проверки своей работы в процессе работы. Если вы хотите что-то вроде среды QA, вы можете запустить второй веб-сервер из промежуточной стадии, но я бы сделал это только в дополнение к dev.

0 голосов
/ 09 сентября 2010

Вот мои текущие настройки, я уверен, что вы могли бы сделать что-то подобное:

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

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