Создание ветки с помощью TortoiseSVN без структуры / trunk - PullRequest
0 голосов
/ 17 декабря 2011

Справочная информация: Наш исходный код сохранен в хранилище SVN на нашем собственном сервере.У нас есть команда А, работающая над основными функциями сайта.Мы планируем работать с командой B над аспектами проектирования, которые будут находиться в другом месте.

Давным-давно, при настройке репозитория SVN, я создал его со структурой, которая была наконец доступна по адресу:

svn://www.myserver.com/main/abc

Файлы исходного кода представлены на уровне 'abc' и в папках ниже этого.

Это работало хорошо для нас до сих пор, когда мне нужно создать ветвь.Выбор TortoiseSVN → Branch / Tag, кажется, дает мне возможность создать ветку по адресу:

svn://www.myserver.com/main/def

Однако, когда я попробовал это в последний раз, казалось, что создается папка WITHIN 'abc' с именем 'def', котораясовсем не то, что я ожидал.Я надеялся создать полностью отдельную копию хранилища, над которой могла бы работать команда B, и когда пришло время объединить их, это могло бы произойти как можно более гладко.

[Я понимаю, что при внесении измененийв 'abc' нам также нужно будет зафиксировать в 'def']

Ответы [ 2 ]

1 голос
/ 18 декабря 2011

Расширенная версия ответа Hvd

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

В своем описании текущего состояния репо вы упускаете одну важную вещь: где находится корень репозитория , на каком уровне? Обе ситуации "/ main /" и "abc /" разрешимы , но с разными шагами.

Вы можете легко обнаружить root даже удаленно, используя браузер репозитория TSVN. Можете ли вы получить доступ к svn: //www.myserver.com/main/ URL как к хранилищу, или вы получите ошибку?

Второй вопрос, связанный с корнем репо: «Какой URL-адрес TeamA теперь использует для доступа к репо?» Да, я читаю и понимаю

структура, которая была наконец доступна на svn: //www.myserver.com/main/abc

но это оставляет место для предположений:

  • выполняет TeamA извлечение из svn: //www.myserver.com/main/ и имеет каталог ABC внутри рабочей копии
  • выполняет TeamA извлечение из svn: //www.myserver.com/main/abc и сразу же освобождает место в корне

(первая версия и svn: //www.myserver.com/main от имени root из Q1 потребуют более позднего повторного извлечения хранилища, чтобы исключить общий корень с пространством TeamB)

Резюме

Найдите Repo-root, напишите нам, в любом случае мы опишем следующие шаги

1 голос
/ 17 декабря 2011

Ветка в SVN - это не что иное, как копия.Если вы используете интерфейс, который придает названию «ствол» и «ответвления» особое значение (и то, как вы его описываете, похоже, что TortoiseSVN делает это), попытайтесь избежать его функции ветвления и просто создать копию напрямую.Если вы проверяете svn: //www.myserver.com/main/, а затем копируете abc в def, все готово.Команда B может проверить svn: //www.myserver.com/main/def.

...