Можно ли автоматически делать выписки из любого VCS? - PullRequest
2 голосов
/ 18 августа 2008

Давайте возьмем среду веб-разработки, где разработчики извлекают проект на свои локальные машины, работают над ним и регистрируют изменения в разработке.
Эти изменения дополнительно тестируются при разработке и переносятся в живую на регулярной основе (например, еженедельно, ежемесячно и т. Д.).
Возможно ли автоматическое перемещение последней версии с тегами (а не последней регистрации, поскольку это может быть не стабильно на 100%), например, 8 утра по понедельникам, с использованием сценария или встроенной функции VCS

Ответы [ 6 ]

2 голосов
/ 18 августа 2008

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

Если вам не требуются все эти шаги, вы можете легко сделать то же самое с помощью некоторого сценария оболочки или подобного (то есть извлечь из системы контроля версий и скопировать в рабочую папку на сервере).

1 голос
/ 18 августа 2008

У меня есть только два опыта работы с SVN и Mercurial. Для Mercurial вы указываете, с какой ветки вы хотите обновить (скажем, по умолчанию), а затем, когда вы объединяете ветку с дефолтом, вы можете просто запустить сервер:

hg update

Который обновляет ваш репозиторий до последней версии ветки, на которую вы его установили.

SVN - та же концепция, вы только проверяете, какую ветку вы хотите изначально

svn co http://host/repository/branchname/

тогда ваш сервер обновляет это с помощью задания cron, ala

svn up

Теоретически, любая VCS, которая поддерживает ветвление (все хорошие делают: git, mercurial, SVN и т. Д.), Должна быть в состоянии сделать что-то похожее на это.

1 голос
/ 18 августа 2008

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

1 голос
/ 18 августа 2008

Конечно, но конкретный продукт может зависеть от используемой вами VCS.

То, что вы, возможно, захотите сделать, - это иметь несколько разных веток и мигрировать по мере вашего продвижения. Например, Разработка -> Стабильный Дев -> Бета -> Производство. Затем вы можете просто автоматически обновить до последней версии Stable-Dev и Beta для своих тестировщиков и всегда иметь возможность развернуть новую версию Production без промедления.

0 голосов
/ 18 августа 2008

В качестве продолжения

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

Если бы я делал что-то подобное, я бы получил что-то вроде SVN, ANT и библиотеки Subversion Ant (http://ant.apache.org/antlibs/svn/index.html) - хотя ваш доход может отличаться.

0 голосов
/ 18 августа 2008

Я сомневаюсь, что многие VCS предоставляют эту возможность напрямую, однако сценарий должен быть очень простым. Либо проверка на основе даты или филиала.

...