Я использую Mac OS X 10.7.2 с Git 1.7.8.2, установленным с использованием Homebrew, cvsps 2.2b1 и git-cvsimport.
Некоторое время назад я работал с хранилищем Subversion проекта веб-сайта, который я успешно преобразовал в репозиторий Git. Хотя я не работал над проектом, коллега, который не мог получить доступ к Subversion и использовать его, но имел последнюю проверку, сохранил свои изменения в хранилище CVS.
Я хотел бы преобразовать его коммиты CVS и применить их в моем репозитории Git. Но у меня нет опыта работы с CVS; так как раньше я работал только с Subversion и Git.
Пока я только пытаюсь конвертировать его репозиторий CVS в Git. (Возможно, позже я воспользуюсь git merge или git rebase, чтобы собрать конвертированные Subversion и CVS-репозитории в одно Git-репозиторий. Но я пока не на этом.)
Он прислал мне сжатый архив с его CVS "репо". Когда я распаковываю его, я получаю один каталог, соответствующий имени проекта, с файлами в нем, соответствующими каждому файлу проекта, но с ", v" в конце каждого имени для контроля версий. Я предполагаю, что полученный мной tar-архив - это всего лишь модуль для хранилища CVS, которого, на мой взгляд, должно быть достаточно.
Вот структура моих файлов:
- ~ / Sites / CVSROOT /
- имя_сайт /
- .cvsignore, v
- index.html, v
- изображения /
- ...
Команды, которые я использую для преобразования модуля CVS в репозиторий Git, следующие:
$ cd ~/Sites
$ rm -fr sitename # Make way for new git repo of same name.
$ git cvsimport -v -d ~/Sites -C sitename sitename
Вот что он выводит:
Initialized empty Git repository in /Users/remi/Sites/sitename/.git/
Running cvsps...
cvs_direct initialized to CVSROOT /Users/remi/Sites
cvs rlog: Logging sitename
cvs rlog: Logging sitename/.git
cvs rlog: Logging sitename/.git/hooks
cvs rlog: Logging sitename/.git/info
cvs rlog: Logging sitename/.git/objects
cvs rlog: Logging sitename/.git/objects/info
cvs rlog: Logging sitename/.git/objects/pack
cvs rlog: Logging sitename/.git/refs
cvs rlog: Logging sitename/.git/refs/heads
cvs rlog: Logging sitename/.git/refs/tags
DONE; creating master branch
fatal: refs/heads/origin: not a valid SHA1
fatal: master: not a valid SHA1
fatal: You are on a branch yet to be born
checkout failed: 32768
Когда я попадаю в каталог нового репозитория Git, выполнение git log
дает fatal: bad default revision 'HEAD'
.
Есть что-то, что я пропускаю? Есть ли другие файлы, которые мне нужны от сервера репо CVS моего коллеги?
Заранее спасибо за помощь!