Изменение структуры каталогов в Subversion
Вопрос
Как мне создать ветку в subversion, которая "глубже", чем просто каталог "branches"?
У меня есть стандартный trunk
, tags
и branches
структура, и я хочу создать ветку, которая на несколько каталогов глубже тега 'branches'.
Используя стандартный метод перемещения svn, это дает мне папка не найдена ошибка.Я также попытался скопировать его в папку "ветви", проверил его, и "svn переместил" его в древовидную структуру, которую я хотел, но также получил сообщение об ошибке "рабочая копия области администрирования отсутствует".
Что мне нужно сделать, чтобы создать это?
Для иллюстрации давайте предположим, что я хочу создать ветку, которая будет переходить непосредственно в "branches / version_1 /project / subproject" (которая еще не существует)?
Решение
svn copy --parents http://url/to/subproject http://url/to/repository/branches/version_1/project/subproject
Это должно создать каталог, в который вы хотите поместить подпроект (--parents
означает "создайте промежуточные каталоги для меня").
Другие советы
Поскольку subversion на самом деле не рассматривает ветви как что-то особенное, кроме большего количества каталогов, вы всегда можете просто создать дерево каталогов, которое вы хотите (с помощью svn mkdir ), а затем скопировать нужный код в расположение дерева.
Или просто используйте флаг --parents, упомянутый @BlairC.
Я поддерживаю использование TortoiseSVN, просто щелкните правой кнопкой мыши по каталогу и перейдите в TortoiseSVN-> Ветка / тег...для быстрого создания филиала в указанном каталоге.Обязательно укажите URL-адрес таким, каким вы хотите, чтобы он был в результирующем диалоговом окне "Копировать (ветвь / тег)".
SVN
на самом деле он не управляет вашими филиалами.Он просто делает оптовую копию.Вам решать, как вы хотите этим управлять.
Если вы используете TortoiseSVN
, вы можете использовать его Обозреватель репозитория делать такие вещи.Делает все это красивым WYSIWYG
просто.