проблема мерзавца - PullRequest
       15

проблема мерзавца

4 голосов
/ 11 ноября 2009

Можно ли клонировать git-репозиторий, имеющий более одной ревизии? Мы попытались это сделать, и после 1000-го коммита он делает GC и выходит, оставляя клон в непригодном для использования состоянии.

r998 = a5cb4f6a377b0ca80cd95d73b0e32f0552b9cdfd (git-svn)
M   trunk/asdf/asdf.java
r999 = a87b06ae8aa497bb28c294b7ff8668ce2e4c8fcc (git-svn)
D   tags/sdafasdf/asdfasdf.java
r1000 = 20b383d138499eee4f121079ae059458f3facc94 (git-svn)
Auto packing your repository for optimum performance. You may also
run "git gc" manually. See "git help gc" for more information.
Counting objects: 18103, done.
Compressing objects:  61% (10590/17116)      7116)   
Compressing objects: 100% (17116/17116), done.
Writing objects: 100% (18103/18103), done.
Total 18103 (delta 9301), reused 0 (delta 0)
Removing duplicate objects: 100% (256/256), done.
root@host:~#

Попытка продолжить извлечение путем повторного ввода команды приводит к следующему:

root@host:~/repo# git svn clone https://host/svn/repo
Remote ref refs/remote/git-svn is tracked by
  "svn-remote.svn.fetch=:refs/remotes/git-svn"
and
  "svn-remote.svn.fetch=:refs/remotes/git-svn"
Please resolve this ambiguity in your git configuration file before continuing

Ответы [ 3 ]

5 голосов
/ 17 ноября 2009

Отработан ответ. Должна быть какая-то ошибка при использовании версии git, которая поставляется с Ubuntu. Следующая строка появилась дважды во вновь созданном файле .git / config:

svn-remote.svn.fetch=:refs/remotes/git-svn
svn-remote.svn.fetch=:refs/remotes/git-svn

Удаление дубликата позволило мне набрать git svn fetch, который, похоже, продолжает проверку.

1 голос
/ 11 ноября 2009

Это случилось со мной много. Я просто снова повторил ту же самую команду git, и она продолжилась с того места, где она остановилась. В конце концов он доходит до конца и все работает.

Редактировать: Если эта проблема возникает при запуске git svn clone ..., то вы хотите заменить clone на fetch при повторном запуске команды.

1 голос
/ 11 ноября 2009

Да. Это должно работать просто отлично. Я клонировал репозиторий проекта Mono (более 140 тыс. Ревизий), используя следующие команды:

$ mkdir mono
$ cd mono
$ git init
$ git svn init svn+ssh://foo@mono-cvs.ximian.com/source
$ git config svn-remote.svn.fetch trunk/mono:refs/remotes/git-svn/trunk
$ git config svn-remote.svn.branches branches/*/mono:refs/remotes/git-svn/branches/*
$ git config svn-remote.svn.tags tags/*/mono:refs/remotes/git-svn/tags/*
$ git fetch git://repo.or.cz/mono.git refs/heads/master:refs/remotes/git-svn/trunk refs/heads/branches/*:refs/remotes/git-svn/branches/* refs/tags/*:refs/remotes/git-svn/tags/*
$ git reset --hard git-svn/trunk

и все прошло хорошо. Это похоже на то, что вы делаете?

...