Почему "git cvsimport" возвращает только пустое Git-репо? - PullRequest
2 голосов
/ 27 января 2012

Я использую 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 моего коллеги?

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 27 января 2012

Я предлагаю использовать это http://cvs2svn.tigris.org/cvs2git.html. cvsps не поддерживается - не работает с ветками и просто старый не работает ИМХО

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...