Как обновить файлы сайта в репозитории с файлами, которые были изменены в неверсированной копии - PullRequest
1 голос
/ 20 января 2010

Я создал SVN-репозиторий для разработки, содержащей веб-сайт. Файлы сайта были импортированы с использованием svn import несколько дней назад.

У меня также есть тот же веб-сайт в не версионном состоянии на том же сервере, который является зеркалом или сайт на нашем работающем производственном сервере. Это в случае сбоя нашего живого сервера, мы можем быстро перезагрузить все сайты через FTP. Отражение обрабатывается rsync и работает отлично.

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

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

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

Что я пробовал

Я попытался создать рабочую копию сайта в том виде, в каком он находится в репозитории. Затем используйте rsync между рабочей копией и не версионной зеркальной копией. Единственная проблема заключается в том, что все папки .svn/ удалены из рабочей копии, поскольку они не существуют в зеркальной (не версионной) версии.

Есть ли способ заставить rsync сохранить каталоги .svn/ в рабочей копии, даже если они не существуют на исходном сайте?

Или есть ли лучший способ обновить любые измененные файлы в хранилище?

Ответы [ 2 ]

1 голос
/ 20 января 2010

rsync -azcC --exclude=.svn /path/to/unversioned/source/ /path/to/working/copy/

1 голос
/ 20 января 2010

Разве вы не можете просто скопировать измененное исходное дерево поверх рабочей копии, а затем зафиксировать его?

Также вы можете передать --exclude ".svn" в rsync. Прочитайте о исключении rsync здесь .

В rsync есть также параметр --cvs-exclude, но вам нужно проверить, поддерживает ли ваша версия rsync svn с ним, так как патч довольно новый.

...