Виртуальные модули CVS и отображение каталогов в ртутные репозитории - PullRequest
1 голос
/ 10 ноября 2011

Мой вопрос похож на этот , но для Mercurial (конвертирование с использованием cvs2hg).Однако есть некоторые отличия.Это часть нашего CVSROOT/modules файла и хорошо показывает проблему:

PD1 -a PROD/PD1/Drivers Drivers/PD1/Firmware KernelHeaders Shared IppLibs
PD2 -a PROD/PD2/ Drivers/PD1 KernelHeaders Shared IppLibs

#PD2Linux Driver
PD2Linux PROD/PD2/Drivers/Linux/BuildFiles &PD2LinuxSource
PD2LinuxSource -d src &PD2 &PD2LibUSB
PD2LibUSB -d ThirdParty/libusb libusb

Как видите, структура драйвера сложная.Мы определенно стремимся рационализировать структуру драйвера, а не включать весь старый драйвер (PD1) в новый.

Насколько я понимаю, в Mercurial вы можете использовать расширение общего ресурса для создания подкаталога.mapping.

Мои вопросы

  • Есть ли способ в Mercurial перенести файлы, расположенные ниже в дереве каталогов (в данном случае файлы autoconf), в корневой каталог, как это сделанов первой строке драйвера PD2Linux?
  • Существует ли способ создания каталогов в соответствии с флагом -d? 1018 *
  • Как объединить наборы изменений, охватывающие PD1 и PD2?
    • например, если были внесены изменения в PD2, которые охватили оба драйвера и зарегистрировались в PD в CVS.Это очень долго, так как CVS не имеет наборов изменений.
    • Интересно, учитывает ли cvs2hg файл модулей CVS?
  • Atm. Я конвертирую каждый каталог PD отдельно (создавая cvsroot в каждом подкаталоге),лучше конвертировать их все вместе, а затем разделить на отдельные репозитории hg?

1 Ответ

1 голос
/ 30 января 2012

Вы пишете:

Насколько я понимаю, в Mercurial вы можете использовать расширение общего ресурса для сопоставления подкаталогов.

Не совсем. Расширение share позволяет связывать несколько рабочих копий с одним репозиторием - речь не идет о перераспределении (под) каталогов.

  • Есть ли способ в Mercurial перенести файлы, расположенные ниже в дереве каталогов (в данном случае файлы autoconf), в корень, как это делается в первой строке PD2Linux Driver

Ответ на этот и другие ваши вопросы: нет. Основная проблема заключается в том, что Mercurial (и другие распределенные инструменты контроля версий) требует, чтобы вы каждый раз извлекали полный репозиторий. Вы не можете просто клонировать repo/some/dir/, вы всегда должны клонировать repo/.

  • Atm Я конвертирую каждый каталог PD по отдельности (создавая cvsroot в каждом подкаталоге), лучше ли так конвертировать их все вместе, а затем разделить на отдельные репозитории hg?

Конечным результатом должны быть отдельные репозитории Mercurial - именно потому, что вам нужно клонировать полный репозиторий. Поэтому убедитесь, что между репозиториями и вашими драйверами установлено соответствие 1–1.

Один инструмент, который вам может пригодиться, это subrepositories . Под-репозиторий - это вложенный репозиторий, который Mercurial будет извлекать при клонировании внешнего репозитория. Поставляется с количеством предупреждений , но крупные компании используют их сегодня (я помог многим компаниям в создании подпунктов).

...