Проблемы с git после cvsimport - PullRequest
       0

Проблемы с git после cvsimport

1 голос
/ 03 октября 2011

В настоящее время я пытаюсь перенести наш репозиторий cvs в git, чтобы все старые данные были необходимы, но у меня возникли некоторые проблемы.

Импорт работает.

Сначала создайте локальное резюме, используяcvs init in CVSREPOLOCAL

Скопируйте туда projectname со старого диска, тогда

git cvsimport -d /home/git/CVS_REPOLOCAL projectname -C projectname.git

Гитоз также настроен на запись в projectname

[group projectname]
members joe jim tom bart
writable = projectname

на локальном компьютере:

git clone ssh://git@server/projectnane.git

измените файл и выполните:

git commit -a
[master 8a3d0f7] test
1 files changed, 1 insertions(+), 1 deletions(-)

gitk показывает мои изменения в качестве нового мастера

... но при попытке сделать изменения доступными для всех остальных в проекте:

git push
Counting objects: 7, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 432 bytes, done.
Total 4 (delta 2), reused 0 (delta 0)
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error: 
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error: 
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To ssh://git@k.....git
 ! [remote rejected] master -> master (branch is currently checked out)

Есть ли способ сохранить старые импортированные данные и при этом получить ssh-гитоз для нескольких пользователей?

У меня был один запущенный, но без импорта cvs, поэтому не решение: (

1 Ответ

0 голосов
/ 03 октября 2011

У вас есть три варианта:

  1. Используйте один репозиторий для импорта, а другой - пустой (без рабочей копии) для центрального хранилища. Вставьте код с того места, куда вы импортировали cvs, в пустой. Я бы посчитал это самым чистым вариантом. Я бы даже посоветовал выполнить импорт на вашей рабочей станции, а не на сервере, и отменить его после завершения работы коммутатора.
  2. Отсоединить головку от хранилища (git checkout HEAD@{0}) или проверить другую ветку (git checkout -b cvsimport).
  3. На самом деле реализовать хук, упомянутый в сообщении об ошибке, но это несколько сложно, и я не думаю, что вам действительно понадобится дерево работы снова.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...