Два проекта CVS в один проект SVN

У меня есть два проекта CVS, которые я поддерживаю в Eclipse. Я проверяю первый проект, а для второго я использую опцию «checkout in existing project», поэтому я могу поддерживать два проекта CVS в одном проекте Eclipse. Таким образом я могу пометить оба проекта одним и тем же тегом и т. Д.

И знайте, пришло время начать использовать SVN. Мне удалось создать два отдельных файла дампа CVS, и когда я использовал svnadmin для загрузки их в репозиторий SVN, я не смог сохранить структуру, которая была у меня в CVS!

Итак, когда я импортирую оба дампа по отдельности в SVN, я получаю следующую структуру:

ProjA - ответвитель тегов ствол

ProjB bracnches теги ствол

В CVS мне удалось сделать ProjB дочерней папкой магистрали ProjA!

Есть ли способ реализовать это с помощью SVN?


person mikipero    schedule 22.04.2010    source источник


Ответы (3)


Концепция проекта Subversion - это «то, что вы помечаете и разветвляете как единое целое». Одновременно тегировать или разветвлять отдельные проекты сложно, независимо от того, находятся ли они в отдельных репозиториях Subversion или являются подпроектами в одном репозитории. Другие современные системы контроля версий, с которыми я знаком, имеют такое же ограничение.

Итак, я предполагаю, что вопрос заключается в следующем: если вы хотите пометить или разветвить эти «проекты» одновременно, действительно ли они являются отдельными проектами, или вам лучше рассмотреть их подкаталоги в одном «главном» проекте? Если они являются частями одного проекта, то пометить или разветвить их одновременно - тривиально, хотя, конечно, становится сложнее помечать или разветвлять их по отдельности.

Я предлагаю следующее практическое правило: проект - это набор файлов, которые будут выпущены вместе с одним номером версии. Если ваши «проекты» обычно выпускаются под одним номером версии, то рассматривайте их как подкаталоги одного проекта. Если они будут выпускаться отдельно с разными номерами версий, то относитесь к ним как к отдельным независимым проектам.

person mhagger    schedule 25.04.2010
comment
Я попытаюсь получить весь главный проект из CVS, и тогда тегирование будет простым, но проблема в том, что я использую сценарий уточнения для получения дампа CVS, и, поскольку проект очень большой, доработка не может решить с ним, поэтому я попытался уточнить с отдельными вложенными папками. (по одному). Только доработка могла справиться с моим проектом (cvs2svn не удалось). - person mikipero; 26.04.2010

Единственное, что вы можете сделать, если это действительно отдельные проекты, - это использовать svn: externals, что позволит вам сделать ссылку на один из репозиториев (и автоматически загружать контент из) другого репозитория.

person Michael Aaron Safyan    schedule 22.04.2010
comment
Я пробовал это, но проблема в том, что я использую теги функции subclipse под затмением, и когда я устанавливаю внешнее значение ProjB для ProjA, в файлах ProjA я вижу теги, которые я ранее создал (используя настроить теги / ветки), но во всех файлах ProjB тегов нет !! Я пытался установить теги ProjB externaly (проверяя только ProjB и настраивая теги), но я не получаю результатов при установке внешних свойств. Кроме того, когда я помечаю новый проект ProjA внешним ProjB, я не могу получить то, что хочу. - person mikipero; 26.04.2010

В SVN вы можете просто перемещать файлы и папки туда, где вы хотите.

Найдите команду svn move.

person sbi    schedule 22.04.2010
comment
Я не могу с помощью команды перемещения выполнить то, что я не могу, потому что, если я не могу получить только папку магистрали ProjB в качестве подкаталога магистрали ProjA - person mikipero; 26.04.2010
comment
move -m svn: // server / test / sqloracle svn: // server / test1 / popiscdc / trunk / sqloracle Не удалось найти репозиторий svn: Репозиторий не найден в 'svn: // server' - - person mikipero; 26.04.2010
comment
@komunca: Вы писали: Итак, когда я импортирую оба дампа по отдельности в SVN, я получаю следующую структуру: [...] В CVS мне удалось сделать ProjB дочерней папкой магистрали ProjA! Я предполагал, что у вас уже есть оба проекта в репо SVN. После импортирования их можно просто переместить один в другой - если это действительно его подпроект. (См. Отличный ответ Махаггера на этот вопрос.) - person sbi; 26.04.2010