При конвертации из cvs в Mercurial - PullRequest
1 голос
/ 15 апреля 2011

У меня есть гигантский CVS-репозиторий, который я хотел бы преобразовать в несколько репозиториев hg. Этот вопрос похож, но я использую hg convert, и у меня есть несколько каталогов в cvs, которые должны находиться в данном репозитории hg.Вот пример:

/sw
 .../dir1
 .../dir2
 .../dir3
 .../dir4
 .../dir5

Я хочу dir1, dir2 и dir4 в моем репозитории hg, но dir3 может гнить с dir5 в отдельном, который никто никогда не будет использовать.

I 'мы конвертировали все это с hg convert --branchsort sw, где sw - это проверка в песочнице, содержащая только те каталоги, которые мне нужны.Это дает мне репозиторий на 1.7GB со всеми 4 каталогами.Репозиторий CVS составляет 2,3 ГБ, а песочница - всего 159 МБ.Репозиторий hg имеет историю, уходящую в 1997 год, и это потрясающе, но кое-что из этого есть из продуктов, которые были сняты с производства.Они не должны быть в обычной песочнице для разработчиков.

Итак, есть ли способ выбрать каталоги CVS для добавления в мой новый репозиторий hg?

Ответы [ 2 ]

4 голосов
/ 15 апреля 2011

Вы должны следовать моему совету по тому вопросу, с которым вы связаны Конвертируйте все вместе, а затем используйте преобразования hg -> hg, чтобы выбрать нужные вам части в каждом репо, используя карту файлов. Любые ревизии, которые будут пустыми (содержат только файлы, которые вы исключаете из этого разговора), будут пропущены.

Кроме того, преобразования hg в hg выполняются намного быстрее, поэтому вы можете выполнить медленное преобразование CVS только один раз, а затем снова и снова выполнять части hg в hg, пока не будете удовлетворены результатами.

1 голос
/ 15 апреля 2011

Есть ли у вас доступ к хранилищу хранилища CVS?

Если да, то вы сможете создать полную копию репозитория, удалить все файлы / каталоги, которые вы не хотите преобразовывать, а затем запустить hg convert с рабочим каталогом, извлеченным из этого локального репозитория.

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

...