Заменить весь каталог SVN - PullRequest
2 голосов
/ 13 февраля 2011

У меня есть проект SVN, над которым я работаю, он слишком запутанный, ресурсы названы ужасно, файлы проектов полны ошибочной информации и ссылок, которые практически невозможно найти и уничтожить. Кроме того, файловые архивы нуждаются в серьезной перестройке, чтобы иметь какой-либо понятный смысл. Я сделал это так, потому что у меня было намерение исправить проблемы с НОВЫМ проектом, названным так же, и перенести только «Хороший» код и ресурсы в красивые аккуратные папки и каталоги.

Так что моя проблема в том, что у меня есть проект "FOOBAR", который полностью уничтожен. У меня на рабочем столе «FOOBAR_FIXED», который не находится под контролем ревизии, но это то, что я сейчас хочу на моем «FOOBAR» SVN.

Как бы я заменил все слова «FOOBAR» на «FOOBAR_FIXED»? Без необходимости вручную удалять все объекты, фиксировать, а затем снова вручную добавлять все объекты и повторно подтверждать?

Ответы [ 2 ]

2 голосов
/ 13 февраля 2011

Вы описываете это как другой проект, так что, вероятно, это должен быть другой проект. Но если вы хотите заменить текущий и действительно хотите сделать это за один коммит, вместо того, чтобы делать реорганизацию вне svn, вы должны были сделать новую ветвь ствола, внести туда изменения, а затем скопировать / объединить убрал ветку обратно в багажник. Но теперь, когда вы это сделали, вот как я могу к этому подойти.

  1. Экспорт сундука. (Не оформить заказ. Экспорт. Нам нужна версия без информации об отслеживании SVN.)

  2. Используйте инструмент diff для сравнения экспортированной магистрали и фиксированной версии магистрали и экспортируйте различия в патч.

  3. Оформить багажник. И примените патч к проверенной версии.

  4. Используйте svn status для поиска файлов, которые были полностью удалены, и используйте svn rm для записи удалений и файлов, которые были добавлены, и используйте svn add для их добавления. (Я считаю, что команды в системе Linux будут svn status | grep "^!" | cut -f 2 | xargs svn rm для записи удаления старых файлов, хотя у меня могут быть неправильные параметры для cut. Я оставлю версию для добавления новых файлов в качестве упражнения, но это Если старый будет отличаться на один символ и изменить svn rm на svn add)

Надеюсь, это сработает. Вы должны обязательно выполнить любые тесты снова, чтобы убедиться, что все правильно.

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

0 голосов
/ 13 февраля 2011

Если это такая безнадежная причина, просто запустите новый репозиторий и сохраните старый для справки.

Половина может быть в том, чтобы переименовать trunk в trunk.bad и запустить новый trunk.

...