Экспортируйте каталог SVN из одного репозитория и зафиксируйте в другом

#svn

#svn

Вопрос:

У нас есть репозиторий SVN, который хранится онлайн со всеми нашими тикетами, вики-сайтами и т.д. Для целей развертывания нам нужно использовать второй репозиторий SVN, над которым у нас нет контроля: мы не можем использовать svndump, svnload, svnsync и т.д. В принципе, мы можем обновлять и фиксировать.

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

Рабочий процесс SVN

Есть ли команда SVN, выполняющая именно это? Я мог бы использовать команду svn export, но тогда мне пришлось бы добавлять все новые файлы вручную, я полагаю. Кроме того, я хотел бы избежать экспорта всех файлов, когда изменено лишь несколько. Поэтому я хотел бы избежать повторного создания рабочей копии S каждый раз, когда я хочу развернуть сайт.

Или, может быть, есть гораздо более простое решение?

С наилучшими пожеланиями

Ответ №1:

Я бы предложил такой подход:

  • создайте рабочую копию через svn co s l_repo (начальная проверка, может быть выполнена вручную)
  • экспортируйте свой репозиторий разработки через svn export в эту рабочую копию, перезаписав все файлы в нем
  • добавляйте все новые файлы через svn add --force
  • зафиксируйте вашу рабочую копию в s l репозитории

Легко написанный сценарий, и вы можете запускать его с помощью пакетного задания каждую ночь.

Комментарии:

1. Спасибо за ваш ответ. Однако, если я экспортирую, я перенесу все файлы, в то время как изменено только несколько. На самом деле у нас есть много файлов, которые не меняются с одной версии на другую…

2. Я говорил о процессе экспорта. Он будет повторно экспортировать все файлы при каждом развертывании. Это может занять некоторое время… Однако это просто в целях оптимизации и не будет иметь большого значения. Но если бы мы могли просто экспортировать измененные файлы, а затем зафиксировать их, это было бы идеально. Хотя не уверен, возможно ли это.