Как применить изменения без доступа к SVN Server

StackOverflow https://stackoverflow.com/questions/2916443

  •  04-10-2019
  •  | 
  •  

Вопрос

Мы используем SVN для разработки крупного веб-приложения, и мы делаем периодические обновления до производства. Производственный сервер не имеет доступа к SVN (по соображениям безопасности).

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

Это было полезно?

Решение

Ну, позвольте мне дать выстрел. Вы можете анализировать вывод команды обновления SVN и генерировать инструкции копирования, которые копируют только файлы, которые были изменены?

http://svnbook.red-bean.com/en/1.1/CH03S05.html.

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

U foo

File Foo был обновлен (принятые изменения с сервера).

A foo

File или Directory Foo добавлен в вашу рабочую копию.

D foo

File или Directory Foo был удален из рабочей копии.

R foo

Файл или каталог foo был заменен в рабочей копии; То есть Foo был удален, а был добавлен новый элемент с тем же именем. Хотя они могут иметь то же имя, хранилище считает их различными объектами с отчетными историями.

G foo

File Foo получил новые изменения с репозитория, но ваша локальная копия файла имела ваши модификации. Либо изменения не пересекаются, либо изменения были точно такими же, как ваши локальные модификации, поэтому Subversion успешно объединил изменения репозитория в файл без проблем.

C foo

Файл foo получил противоречивые изменения с сервера. Изменения с сервера напрямую перекрывают ваши собственные изменения в файл. Не надо паниковать, хотя. Этот перекрытие должно быть разрешено человеком (вы); Мы обсуждаем эту ситуацию позже в этой главе.

Или если вы предпочитаете полубочное решение, вы можете использовать Tiff Tool, как Winmerge или Араксис слияние синхронизировать обе каталоги.

РЕДАКТИРОВАТЬ:

Я не думаю, что «Обновление SVN» будет работать точно, но то, на что я остановился:

  • соревнование проверить текущего (старого) ревизии продукта
  • соревнование выключатель к ревизии, который готов к продукции (новый)

Я написал сценарий для захвата вывода «коммутатора». Он переводит вас и операции на «добавляет» на ZIP-архив. Он переводит операции D для удаления команд для выполнения на производственном сервере. На производственном сервере нам просто нужно расстегнуть архив и запустить команды удаления.

Другие советы

Сделайте заказ в каталог на вашей стороне стеклянной стены, сделайте его доступным с продукции. Используйте какую-то утилиту Diff / Sync для синхронизации двух, минусных папок _SVN или любые другие файлы, которые будут закреплены на основе производственной среды.

Или используйте zip (или другой архив) файлов с "изменениями mm / dd / yyyy" и примените его к каталогу Protcate.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top