Я начал клонирование репозитория SVN с помощью операции git -svn clone. Примерно через 6 часов после импорта (это большое репо) мой компьютер пошел и спал на меня. Есть ли способ возобновить работу, не переработав всю начальную работу?
Возобновление git -svn clone
Ответ 1
Команда git svn fetch
для возобновления git svn clone
подтверждается несколькими источниками:
- Git SVN и Gnome запись в блоге
(Между прочим, если во время начального шага клонирования ваше соединение разрывается или вам нужно остановить его, то для возобновления клонирования вам просто нужно выполнить указанную выше команду, чтобы возобновить загрузку истории).
Кажется, в
git-svn
произошла утечка памяти. Размер процессаgit-svn
медленно увеличивался, и примерно через две недели онgit-svn
резидентного размера 1,2 ГБ, и в этот момент ОС отказалась дать ему возможность работать.
Дело в том, что это было замаскированное благословение.
Я смог возобновить прерванный клон с помощью простого "git svn fetch
", и он работал намного быстрее с теперь значительно меньшим количеством кучи.
Это сработало настолько хорошо, что я привык прерывать и перезапускать процесс каждый вечер и каждое утро. Через несколько дней это было сделано.
Вы начинаете свои приключения с
git-svn
, клонируя существующее хранилище Subversion:
git svn clone url://path/to/repo -s
Флаг
-s
предполагает, что в вашем хранилище используется соглашение "ствол, ветки, теги". Если нет, вы должны указать вручную, какие каталоги представляют ветки и теги, если вы хотите, чтобы Git знал о них.Это займет много времени, так как он будет извлекать каждую ревизию из SVN и фиксировать ее локально. Если по какой-либо причине это останавливается, вы можете продолжить с помощью
git svn fetch
.
Ответ 2
Я нашел сообщение в блоге, которое дало мне (я надеюсь) правильный ответ.
По-видимому, запуск git svn fetch
эффективно завершает операцию клонирования. Здесь надеемся!
Ответ 3
Как VonC, CaptainAwesomePants и Archi все сказали git svn fetch
делает трюк. Я делал git svn clone url... --authors-file=path/to/file
, и клон не удался, потому что одного из авторов не было в файле авторов. Я добавил автора в файл и запустил git svn fetch
, и он продолжил с того места, где он остановился, и позже просмотрел журнал git, кажется, что он использовал недавно добавленного автора, чтобы заменить имя автора фиксации, чтобы все было мило.
Ответ 4
От не менее git 2.1.0 вы можете возобновить, просто переиздав git svn clone
Однако это приведет к дублированию некоторых записей в вашем .git/config, удалите их, и все будет хорошо.