#svn
#svn
Вопрос:
У нас есть репозиторий SVN, который хранится онлайн со всеми нашими тикетами, вики-сайтами и т.д. Для целей развертывания нам нужно использовать второй репозиторий SVN, над которым у нас нет контроля: мы не можем использовать svndump, svnload, svnsync и т.д. В принципе, мы можем обновлять и фиксировать.
Во время развертывания я хотел бы экспортировать рабочую копию из репозитория Dev, а затем зафиксировать ее в промежуточном оперативном репозитории. Пожалуйста, смотрите следующий эскиз, чтобы получить приблизительное представление о том, что мне нужно сделать.
Есть ли команда SVN, выполняющая именно это? Я мог бы использовать команду svn export, но тогда мне пришлось бы добавлять все новые файлы вручную, я полагаю. Кроме того, я хотел бы избежать экспорта всех файлов, когда изменено лишь несколько. Поэтому я хотел бы избежать повторного создания рабочей копии S каждый раз, когда я хочу развернуть сайт.
Или, может быть, есть гораздо более простое решение?
С наилучшими пожеланиями
Ответ №1:
Я бы предложил такой подход:
- создайте рабочую копию через
svn co s l_repo
(начальная проверка, может быть выполнена вручную) - экспортируйте свой репозиторий разработки через
svn export
в эту рабочую копию, перезаписав все файлы в нем - добавляйте все новые файлы через
svn add --force
- зафиксируйте вашу рабочую копию в s l репозитории
Легко написанный сценарий, и вы можете запускать его с помощью пакетного задания каждую ночь.
Комментарии:
1. Спасибо за ваш ответ. Однако, если я экспортирую, я перенесу все файлы, в то время как изменено только несколько. На самом деле у нас есть много файлов, которые не меняются с одной версии на другую…
2. Я говорил о процессе экспорта. Он будет повторно экспортировать все файлы при каждом развертывании. Это может занять некоторое время… Однако это просто в целях оптимизации и не будет иметь большого значения. Но если бы мы могли просто экспортировать измененные файлы, а затем зафиксировать их, это было бы идеально. Хотя не уверен, возможно ли это.