Могу ли я перенести один файл из CVS в SVN? - PullRequest
0 голосов
/ 03 сентября 2010

В CVS-хранилище проекта сейчас находится файл, который необходимо переместить в другой проект с помощью SVN.И я хочу сохранить историю коммитов.

Есть ли способ сделать это?

1 Ответ

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

Если это новый репозиторий Subversion, то это тривиально: просто создайте поддельный CVS-репозиторий, содержащий один файл (как описано ниже), и конвертируйте его, используя cvs2svn .

Если хранилище Subversion уже существует, и новый файл должен быть началом нового подпроекта в этом хранилище, вы можете выполнить преобразование в дамп-файл Subversion (используя опцию --vmpfile в cvs2svn), а затем загрузить его в существующийхранилище с использованием

$ svnadmin load --parent-dir=/newproject /path/to/svnrepo <dumpfile.out

Это создаст новый подпроект в Subversion, включающий каталоги / newproject / trunk, / newproject / branch и / newproject / tags и (например) транковую версию вашего файла.по адресу /newproject/trunk/myfile.

Обратите внимание, что история нового файла будет перенесена в виде одной серии коммитов Subversion поверх коммитов, которые уже находятся в вашемРепозиторий Subversion.Таким образом, коммиты Subversion, вероятно, будут не в хронологическом порядке, что нарушает поиск по дате в репозитории Subversion.

В любом случае, вам нужно будет начать с создания поддельного CVS-репозитория, содержащего один файл:

$ CVSREPO=$HOME/fakecvs
$ mkdir $CVSREPO
$ mkdir $CVSREPO/CVSROOT    # This directory is needed by cvs2svn but can be empty
$ mkdir $CVSREPO/proj
$ cp /path/to/myfile,v $CVSREPO/proj/

Затем выполните преобразование из пути $ CVSREPO / proj, используя cvs2svn :

$ cvs2svn [options...] $CVSREPO/proj
...