2009-06-26 5 views
1

Я понимаю, что этот вопрос задан на 100 раз, но ни один из них, который я нашел, действительно не отвечает на мои вопросы.Проверка файлов/контроль версий на сайте PHP

У нас есть несколько разработчиков в нескольких местах, работающих над одним и тем же проектом. Некоторые используют Windows, некоторые используют Mac, наш сервер - Linux, и каждый разработчик использует другое приложение разработки (Dreamweaver, Eclipse и т. Д.). Каждый разработчик использует некоторую форму Apache/PHP/MYSQL на своем собственном компьютере с версиями, идентичными нашему серверу.

На сервере у нас есть сайт (без ошибок) и наш сайт для тестирования (у каждого есть своя база данных mysql). Как только все будет работать на нашем тестовом сайте, мы скопируем измененные файлы на сайт.

Что мы ищем это

  • каким-то образом, чтобы позволить разработчикам «проверить» файлы с сайта тестирования, а затем «проверить в» после того, как они сделали с ними работать.

  • Мы хотим, чтобы иметь возможность регистрировать дату/время проверки и проверьте в.

  • Мы также хотели бы иметь возможность копировать выбранные папки/файлы на живой сайт после того, как мы закончили тестирование.

Разработчики имеют разную степень знания командной строки, от всех до экспертов.

Возможно ли версия SVN для GUI?

Я также должен добавить, что это необязательно быть бесплатным вариантом, если эти требования приходят с платным решением, которое также будет хорошо.

Любая информация будет оценена по достоинству.

+0

@razass: Мы работали над всеми этими проблемами и имеем хороший «протокол» на месте. Свяжитесь со мной, если вы хотите, чтобы я просмотрел с вами. http://blog.gahooa.com/about - контактная информация. – gahooa

ответ

1

Есть два простых трюков для развертывания в вашей «живой» сайт:

1) Используйте клиент SVN на вашем «живой» сайт, чтобы проверить свое программное обеспечение.Когда есть изменения для развертывания, запустите команду SVN UPDATE. (обязательно сообщите веб-серверу, чтобы он не служил файлам в папках .svn!)

2) На вашем «живом» сайте есть две корневые папки. Когда придет время для развертывания, SVN EXPORT во вторую папку. В конфигурации вашего веб-сервера измените корень документа на вторую папку и перезапустите веб-сервер. Если в развертывании есть какая-то непредвиденная проблема, просто вернитесь к первой папке.

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

И найдите себе junkie сценария, который может автоматизировать все развертывание для вас или использовать что-то вроде springloops.com. Устранение ручных процессов развертывания, вероятно, сделает вас счастливее в долгосрочной перспективе (это 3 часа дня, вы считаете, что исправили проблему последнего развертывания, поэтому ложитесь спать. Когда вы просыпаетесь в 12:30 и понимаете, что ваш сайт было все утро ... это случается).

Для графических интерфейсов используйте scplugin для Mac OS X, TortoiseSVN для Windows. В Eclipse используйте один из плагинов eclipse svn.

0

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

У Eclipse есть плагины для SVN, есть клиенты Mac и ПК, которые прекрасно работают. Я спросил о setup with graphic designers в виду несколько месяцев назад и получил некоторые полезные ответы.

+0

Будет ли SVN отслеживать даты заезда и выезда? – user103219

+0

SVN поможет вам отследить, кто внес изменения, когда. Прочитайте об управлении версиями в целом, это инструмент, который любая серьезная команда разработчиков должна использовать. – acrosman

+0

Dreamweaver CS4 Также имеет встроенную функциональность SVN :) –

0

Вы понимаете, что этот вопрос задан очень часто. Просто попробуйте любую из основных систем контроля версий. Subversion, Git, Mercurial, TFS, что угодно. Они все будут работать над тем, что вы пытаетесь сделать.

Однако ситуация с «центральным хранилищем», находящаяся на «сервере тестирования», не обязательно будет удерживаться; вам просто нужно будет сделать еще одну проверку с центрального сервера.

0

Как отметил акросман, существует много инструментов с открытым исходным кодом (например, черепаха, подзаголовок (затмение), субверсия (Eclipse)). Я думаю, что Subversion никогда не является плохим выбором и экспортировать текущую версию главы на сервер разработки, можно легко сделать с помощью скрипта Hook, запускаемого после каждого фиксации. Подобным же образом работает каротаж. Самой досадной частью для меня было сохранение тестовых баз данных и файлов конфигурации в хранилище.

+0

Где я могу найти некоторую информацию об этом «скрипте-крючке», я видел это несколько раз. – user103219

+0

Книга Subversion очень хороша и должна содержать всю необходимую вам информацию http://svnbook.red-bean.com/ или этот короткий способ: http://articles.techrepublic.com.com/5100-10878_11-6137162. HTML – Daff

1

Другие опции интерфейса SVN для Mac включают Versions или Cornerstone, оба из которых хорошо работают. Если кто-то использует Coda для разработки, он также имеет встроенную поддержку SVN.

Другие аспекты вопроса уже были услышаны.

0

Мы имеем следующие настройки ...

несколько пользователей в нескольких офисах, каждый из которых работает либо Windows (С Tortoise SVN) и WAMP или OSX (с Syncro Subversion Client). Для обеих систем есть другие клиенты, но мы выбрали их.

У каждого есть VPN-доступ к нашему центральному серверу разработки.

Поскольку они работают в своих локальных системах, они регулярно проверяют обновления сервера SVN (разработки) и получают обновления. На сервере разработки у нас есть сценарий, который запускается каждые x минут, который выполняет проверку на веб-корне (только если есть новые обновления). Этот скрипт также обновляет один файл с текущим номером версии SVN, который мы затем показываем на сайте разработки, чтобы все знали, что работает, и когда оно было недавно обновлено.

Он работает в течение нескольких лет для нас и оказался наиболее полезным.

Смежные вопросы