Лучший способ использовать svn для веб-разработки

  • Вы можете получить доступ к глобальным ключевым словам без ключевого слова global
  • . Чтобы иметь возможность их изменять, вам нужно явно указать, что ключевое слово глобально. В противном случае ключевое слово будет объявлено в локальной области.

Пример:

words = [...] 

def contains (word): 
    global words             # <- not really needed
    return (word in words) 

def add (word): 
    global words             # must specify that we're working with a global keyword
    if word not in words: 
        words += [word]
16
задан OscarRyz 26 June 2009 в 02:04
поделиться

8 ответов

Если Вы проверяете свой проект от Подверсии на Вашем сервере для развертывания его, то Вы, вероятно, хотите их в соответствии с тем же проектом зонтика.

необходимо рассмотреть использование сценария развертывания (Муравей, Грабли, Perl) к автоматически SCP/FTP изменения от машины разработки вместо того, чтобы проверить из Подверсии на сервере.

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

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

4
ответ дан 30 November 2019 в 22:17
поделиться

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

Также включают двоичные файлы (такие как изображения), которые являются зависимостями и что Вы не хотите или не можете повторно создать от руки легко. Например, не помещайте сто PSD, потому что это могло бы быть длинно для регенерации точного индексированного GIF из них. Но Вы, вероятно, захотите включать свой PSD в дополнение к GIF. Включайте DLL купленных собственных библиотек и так далее... Наконец, я сказал бы, чтобы также добавить любые конфигурационные файлы, которые подают заявку, ведут себя, как это: Apache vhost, .htaccess, php.ini, и т.д.

я думаю, что секрет должен действительно быть завершением как возможным к одному или двум щелчкам далеко тестирования предыдущей версии. Дополнительные резервные копии являются большими (и необходимо также скопировать репозиторий SVN), но Вы не хотите воссоздавать из памяти, на что версия 6 была похожа с дат модификации файлов в Вашей резервной папке.

1
ответ дан 30 November 2019 в 22:17
поделиться

Я поместил все в управление версиями, в котором будет нуждаться программист. Теперь Ваш случай, который мог бы потребовать документов в формате Word и psd файлов. По моему опыту, документы в формате Word обычно создаются (и для) управление проектами, и я на самом деле волновал установку репозитория документов для того (мы использовали Дерево Знаний ). Для графических исходных файлов я рекомендовал бы или отдельный репозиторий или по крайней мере другой проект так, чтобы Вы не должны были включать anthying, который не необходим для разработки/развертывания Вашего приложения.

одна вещь я часто вижу пропущенный, сценарии конфигурации. Очевидно, Вы захотите быть осторожными относительно не допускания производственных паролей, но Вы захотите примеры и инструкции по простому тексту так, чтобы любая технология IT смогла выяснить, как настроить вещи. Но удостоверьтесь, что у Вас есть файлы конфигурации для Вашего приложения, апача, базы данных - все части.

единственная самая большая справка к нашему развертыванию принимала полностью автоматизированную систему для развертывания наших серверов. Для направляющих мы используем фантастическое Capistrano, и для окон мы прокрутили наше собственное использование svn и Python. Я действительно не рекомендую прокрутить Ваше собственное, требуется много времени и усилия. Однако это сохранило нас очень в конце.

, Даже если бы Вы не используете направляющие, я предложил бы провести некоторое исследование в , как Capistrano работает , он работает хорошо и решил много проблем, с которыми мы имели дело.

1
ответ дан 30 November 2019 в 22:17
поделиться

Я присваиваю версию, управляют всем, что может измениться. Для меня это включает:

  • Код
  • веб-контент (HTML и изображения)
  • Сторонние библиотеки (импортировал .jar файлы)
  • Документы
  • Конфигурационные файлы Сервера
  • Даже сами сценарии развертывания (МУРАВЕЙ и .bat)

я предпочитаю папку для "проекта" с подпапками для каждого типа содержания. Тот путь, если я только редактирую код, я не должен проверять большую папку документов.

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

0
ответ дан 30 November 2019 в 22:17
поделиться

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

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

Hope, которая дает Вам общее представление,

2
ответ дан 30 November 2019 в 22:17
поделиться

Существует несколько проблем веб-разработки, для которых svn является хорошим универсальным решением:

1: управление версиями: svn поддерживает прошлые версии, как сохраняют наборы, т.е. каждая фиксация получает свой собственный ссылочный идентификатор, который касается всех файлов, обновленных в той фиксации. Используемый тщательно, это позволяет Вам контролировать все файлы, которые затронуты исправлением ошибки, например, что-то это потерянный cvs.

2: легкое ветвление: это позволяет Вам работать над новой возможностью вместе с продолжающейся работой maintainence, не повреждая поставлющуюся систему, затем объединять новый материал назад в основную соединительную линию, однажды полностью протестированную. Даже для магазина с одним программистом это стоит инвестиций в подъем svn и выполнение. Сначала Вы не теряете ранее рабочую систему, второе перемещение между этим и новой разработкой почти тривиально легко по сравнению с архивацией полных деревьев продукта, треть, Ваш клиентский опыт не повреждается повторениями разработки и четвертый, это может использоваться, чтобы поиграть в песочнице параллельную работу нескольких программистов.

3: не путайте svn управление версиями с архивацией. Они - совсем другие вещи. Включайте свой репозиторий SVN в Вашу архивацию стандарта / резервный режим.

4: svn знает, как сохранить дельты для двоичных файлов, в отличие от более старых систем как cvs, так хранение, все на Вашем проекте под svn стоит сделать. Сохраните svn дерево тем же как Ваша доставка продукта, затем развертывание является просто вопросом ssh к Вашему серверу сайта и работающий svn обновление в HTML, и папки cgi-мусорного-ведра (удостоверьтесь, что Apache настроен для отклонения всех к .svn папкам управления).

5: базы данных являются немного менее интегрированной проблемой, но сохраняют часть Вашего дерева для архивов экспорта дб.

6: теперь, когда необходимо воссоздать прошлое состояние по любой причине, все необходимые инструменты и другие файлы должны помочь сделать это. Обратите внимание, что svn по сути не решает фрагментированную проблему репозитория полностью: HTML/, cgi-мусорное-ведро-/, и состояния дб, является непересекающимся и нуждается в ручной корреляции, если Вы не держите их вместе под папкой зонтика.

7: Вам будут нужны apache2 и openSSL и действительный сертификат для движения с svn на svn сервере. У Вас, вероятно, уже есть это sionce, Вы уже сделали установку.

, Если у Вас был даже один плохой клиентский опыт от работы в выходе файлов прогресса на живой сайт, затем хороший svn режим заплатил бы за себя в предотвращении просто этого. Большая часть IDE и редакторы также включает svn инструменты управления, таким образом, необходимо не обязательно выйти к командной строке. Существует также Средство поиска OS X и плагины Windows Explorer от http://www.tigris.org/ (среди многих других больших инструментов).

1
ответ дан 30 November 2019 в 22:17
поделиться
  • Помнят, что Подверсия не только для резервного копирования файлов, это для записи снимка среды в различных моментах времени, таким образом, можно восстановить к предыдущему состоянию в случае необходимости. Таким образом, если Вам нужен он, и это когда-либо изменяется, затем это должно быть в Подверсии (если это не файл, сгенерированный из других файлов в Подверсии).

  • Для нормального проекта программного обеспечения, распространено иметь/trunk/и/releases/каталоги. Для веб-проектов мне нравится иметь/devel/и/live/каталоги с/docroot/каталогом под каждым, который содержит содержание DocumentRoot веб-сервера. Все файлы не для публикации (рабочие файлы, исходный код, программы, и т.д.) выходят на улицу из/docroot/.

  • Для публикации работы от Подверсии до веб-сервера используйте "svn экспорт http://url/live/docroot /path/to/web/docroot", который выведет все файлы (без .svn каталогов).

  • Вся работа сделана в соответствии с/devel/каталогом. Когда Вы довольны изменениями (надо надеяться, у Вас есть место для внутренней публикации сайта дьявола для тестирования), используйте "svn слияние" для копирования изменений от репозитория дьявола до живого репозитория.

9
ответ дан 30 November 2019 в 22:17
поделиться

В первую очередь, попытайтесь понять понятия позади систем управления версиями и рабочих процессов, присоединенных к нему (импорт, контроль, фиксация, обновление). Особенно, как интегрировать их в Вашем процессе разработки и процессе развертывания. Вот очень простой рабочий процесс в качестве примера (для простоты, не процесса автоматизированного развертывания):

  1. Импорт Ваши файлы проекта в репозиторий подверсии
  2. Контроль рабочая копия на Вашей машине разработки
  3. Вносит изменения и фиксирует их
  4. , Имеют рабочую копию (svn контроль) на Вашем сервере. Идеально, у Вас есть ssh доступ к Вашему серверу, таким образом, можно выйти, это управляет на сервере. Чтобы это работал, Ваш репозиторий SVN должен быть доступным с Вашего сервера (например, установить svn сервер через http или svn протокол). Если у Вас нет ssh доступа, просто загрузите экспорт svn через ftp.
  5. Обновление файлы на Вашем сервере (svn обновление или загрузка ftp)

Что касается соединительной линии, ответвлений и тегов: Это просто папки в Вашем репозитории SVN, который необходимо создать, если Вы хотите следовать конвенциям:

  • соединительная линия: ответвления версии
  • Разработки: Выпуски, например, СТАБИЛЬНЫЕ 1.0. Ваш рабочий сервер обычно работает на рабочей копии ответвления выпуска
  • теги: Определенные вехи в истории разработки

, Например, можно создать выпуск branche vor стабильная версия 1, путем создания папки STABLE 1,0 внутренних ответвления и скопировать файлы в него.

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

существует очень хорошая книга о подверсии и понятиях позади нее от прагматически настроенных программистов, вызванных "Прагматическое Управление версиями с помощью Подверсии" ( http://www.pragprog.com/titles/svn/pragmatic-version-control-using-subversion ).

2
ответ дан 30 November 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: