Subversion - как выполнить крупномасштабные изменения в структуре каталогов проекта без использования svn delete вручную - PullRequest
0 голосов
/ 25 февраля 2011

Скорее всего, на этот вопрос уже был дан ответ, но я не уверен, как его сформулировать!

У меня есть большой существующий репозиторий Subversion, соответствующий используемой структуре проектаопределенной IDE и содержащей различные файлы конфигурации, специфичные для этой IDE.Я хочу перенести проект в другую среду IDE, сохраняя при этом историю отдельных исходных файлов;это будет означать, среди прочего, несколько изменений в структуре папок (общая структура останется прежней), удаление файлов конфигурации и создание новых файлов конфигурации.

Пример:

Old
---

Root
  -src
    -old_ide.xml
  -old_ide_folder
  -docs
  -old_ide.xml

New
---

Root
  -src
  -new_ide_folder
  -docs
  -new_ide.xml

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

Самый простой способ (позволяющий технологии), насколько я вижу, состоит в том, чтобы просто удалить весь проект, создать новый проект с использованием тех же исходных файлов, а затем проверить это в /каким-то образом объединить его, но, очевидно, недавно запущенный проект не будет в рабочей копии Subversion, и я не думаю, что смогу это сделать.

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

Чтобы было ясно: связанные с IDE проблемы на самом деле не являются проблемой, я считаю, что я мог бы сделать это вручную в конкретном случае, но меня больше всего интересуетобщая проблема выполнения массового обновления структуры папок Subversion.

Ответы [ 2 ]

0 голосов
/ 25 мая 2014

Для клиентов SVN <= 1,6 </strong>: на этот вопрос нет простого ответа. Вероятно, лучшим подходом было бы использовать инструмент сравнения, чтобы упростить ручную работу, или использовать скрипт, который сравнивает рабочую копию с вашей новой структурой, а затем выполняет, файл за файлом, любые изменения, необходимые для преобразования.

Для клиентов SVN> = 1,7 : изменение в хранилище метаданных рабочей копии (одна папка верхнего уровня .svn вместо одной на исходную папку) означает, что вы на самом деле можете просто удалить всю старую структуру, скопируйте нового в работающего полицейского, и пусть SVN выяснит различия при фиксации. Я не проверял это, но я не понимаю, почему это не сработает.

0 голосов
/ 01 марта 2011

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

В противном случае, это просто вопрос извлечения существующего проекта в локальную рабочую копию и использования различных команд SVN (копирование, перемещение, удаление) для преобразования макета в то, что вы хотите. Я не уверен, почему вы хотите избежать удаления SVN - это именно то, что вы хотели бы иметь дело с такими вещами, как ваши специфичные для IDE конфигурационные файлы. Как только ваша рабочая копия станет такой, как вы хотите, сделайте коммит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...