#svn
#svn
Вопрос:
Есть ли простой способ заменить репозиторий svn архивированным дампом?
У меня есть foo.tar, который содержит будущую версию репозитория svn. Чтобы передать это в репозиторий svn, все, что мне нужно сделать, это перезаписать содержимое foo.tar, а svn удалить все файлы, которых нет в foo.tar, а затем зафиксировать?
Есть ли лучший способ сделать это?
Комментарии:
1. Вы говорите об
svn delete
иcommit
. Эти термины указывают на то, что у вас есть рабочая копия svn, а не репозиторий . Не могли бы вы уточнить, какой из них вы имеете в виду?2. Привет, да, я использую рабочую копию, а не централизованный репозиторий. Однако у меня есть доступ к центральному репозиторию.
Ответ №1:
Простое удаление с помощью Explorer фактически не приведет к удалению файлов в репозитории. Удаление всех файлов с помощью svn может быть излишним. Я бы установил даты всех файлов в WC на некоторую нулевую дату, затем скопировал все файлы из tar, затем нашел и удалил с помощью svn все файлы, которые сохранили свою нулевую дату.
Комментарии:
1. Спасибо, я думаю, что это хороший подход. Я также не уверен, как svn обработает «удаление svn», а затем файл будет перезаписан? В идеале он должен обрабатывать его как модификацию, но я не уверен, достаточно ли он умен или будет обрабатывать его как удаление и добавление?
2. Я использую TortoiseSVN для своих операций svn, поэтому мои предположения могут быть неверными, но… Когда файл удаляется с помощью svn, он больше не существует в WC. Файл, который вы видите там, теперь просто обычный файл. Не имеет значения, изменен ли он, не изменен, удален или что-то еще.
Ответ №2:
Нет, лучшего способа сделать это нет.
- Проверьте свой проект
- Удалите все файлы в проводнике (сохраните папки и содержимое .svn)
- Извлеките свой архив в эту папку
- Проверьте каждый файл / папку и зафиксируйте
Примечание:
добавленный элемент будет помечен как добавленный, если вы их проверите.
Удаленный элемент будет помечен как удаленный, если вы их проверите (сообщается как отсутствующий).
Комментарии:
1. Привет! Я все понимаю, кроме того, что вы подразумеваете под «проверкой каждого файла / папки и фиксацией»?
2. Как только вы откроете панель фиксации, вы проверите все файлы / папки. Итак, вы нажимаете на флажки 😉 Это добавит новые файлы и удалит отсутствующие файлы.
3. Хорошо, я думаю, вы, должно быть, используете какой-то визуальный инструмент. Я использую инструмент svn из командной строки, поэтому не уверен, что это значит там 🙂 Спасибо!