Миграция с CVS на Mercurial: разделение проектов - PullRequest
2 голосов
/ 24 сентября 2010

У нас есть хранилище CVS с многолетней историей разработки и 3 проекта в одном проекте (папка CVS). Это должны быть разные репозитории в репозитории Mercurial. Они имеют следующую схему:

Проект
--- Подпроект 1
--- Подпроект 2
--- Подпроект 3

  1. Есть ли способ автоматизировать это во время процесса cvs2hg?
  2. Если нет, то каким будет процесс Mercurial для разделения каждого подпроекта при сохранении истории (если это возможно).

Ответы [ 2 ]

6 голосов
/ 24 сентября 2010

Лучший способ сделать это - преобразовать весь репозиторий из CVS в Mercurial, а затем использовать команду hg convert с --filemap, чтобы преобразовать это одно хранилище Mercurial в несколько хранилищ Mercurial.).Ваша файловая карта будет выглядеть примерно так:

include SubProject1
rename SubProject1 .

Это отбросит все, чего нет в подпроекте 1, а затем переместит подпроект один наверх (обратите внимание на конечную точку).запустите его с файловой картой для каждого из ваших подпроектов, каждый раз с полным репо в качестве входных данных, вы получите именно то, что вам нужно.

Некоторые люди создали сценарии оболочки для этого, но еслиэто действительно только 3 из них, это должно быть довольно быстро.

2 голосов
/ 25 сентября 2010

Просто запустите cvs2hg три раза, каждый раз указывая его на подкаталог проекта в вашем CVS-хранилище; например.,

cvs2hg [OTHER-OPTIONS...] $CVSROOT/Project/SubProject1

Запишите результаты в три отдельных хранилища Mercurial.

...