Я почав клонувати SVN-сховище за допомогою операції клонування git-svn. Приблизно через 6 годин імпорту (це велика репо) мій комп'ютер пішов і спав на мені. Чи є спосіб відновити роботу, не повторюючи всі початкові роботи?
Я почав клонувати SVN-сховище за допомогою операції клонування git-svn. Приблизно через 6 годин імпорту (це велика репо) мій комп'ютер пішов і спав на мені. Чи є спосіб відновити роботу, не повторюючи всі початкові роботи?
Відповіді:
git svn fetchКоманду відновити git svn cloneпідтверджується кількома джерелами:
(До речі, якщо під час початкового кроку клонування ваше з'єднання вмирає або вам потрібно припинити його, то для відновлення клону вам просто потрібно виконати вищевказану команду, щоб відновити завантаження історії).
Здається, витік пам'яті
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.
git svn clone, перервавши процес. Біг git svn cloneзнову з'явився, щоб відновити клонування в процесі. Хтось ще робив це?
Я знайшов допис у блозі, який забезпечив правильну відповідь (надіюсь).
Мабуть, біг git svn fetchефективно завершує операцію з клонуванням. Ось сподівання!
git svn rebaseпісля завершення операції і мати головну гілку, що відображає стовбур
Як сказали VonC, CaptainAwesomePants та Archi, це все git svn fetchробить трюк. Я робив git svn clone url... --authors-file=path/to/fileа клон не вдався, оскільки одного з авторів не було у файлі авторів. Я додав автора до файлу і побіг, git svn fetchі він продовжився з того місця, де він зупинився, і пізніше переглянувши журнал git, здається, що він використовував щойно доданого автора для заміни імені автора фіксації, щоб все було солодким.
Щонайменше з git 2.1.0 ви можете відновити, просто перевидавши git svn clone
Однак це повторить деякі записи у вашому .git / config, видаліть їх, і все буде добре
From at least git 2.1.0...Будь-яка ідея, чи існувала ця функція на git 1.9.1?
git svn fetchспричинив невідповідність контрольної суми для мене - і її неможливо було скинути, оскільки, очевидно, не було HEAD: / - але це працює добре, просто довелося видалити svn-remote.fetchз.git/config
git svn cloneтакож повинні бути надані (у відповідних випадках)git svn fetch. Наприклад, я встановив-r HEADдляgit svn cloneотримати тільки перегляд ГОЛОВА SVN. Щоб відновити роботу, яgit svn fetchпочав імпортувати всі версії.