Я почав клонувати 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
почав імпортувати всі версії.