Возможно git push
или git bundle
не включать метаданные svn.
Но, согласно git svn
intro , вы можете попытаться восстановить эти метаданные SVN.
(отказ от ответственности: не тестировался напрямую)
Восстановление метаданных git-svn
Если вы скопировали хранилище откуда-то еще (например, из repo.utsl.gen.nz
) через git-clone
, или если вы просто взорвали его, у вас не будет метаданных SVN - просто коммиты.
В этом случае вам нужно перестроить ваши метаданные SVN, например, просто чтобы поддерживать транк в актуальном состоянии - git-svn
перестроит свои метаданные при запуске git-svn fetch
.
$ git update-ref refs/remotes/trunk origin/svn/trunk
$ git svn init https://svn.perl.org/parrot/trunk
Using higher level of URL: https://svn.perl.org/parrot/trunk => https://svn.perl.org/parrot
$ git svn fetch
Rebuilding .git/svn/git-svn/.rev_db.d31e2699-5ff4-0310-a27c-f18f2fbe73fe ...
r17220 = 78ad11bf2f61b35e1cb32a978ab546d198be8a2e
r17219 = 605264b06d84670ec402d7a7a21c0016cae3a928
r17218 = a8ceba9c503d2be8e8e69a3df454017322906cf5
...
Главное, что нужно помнить при перестройке метаданных git-svn
, - это сделать так, чтобы ссылки выглядели так же, как они выглядят из нового импорта; Вы можете сделать это, используя git update-ref
, как указано выше, скопировав файлы ссылок внутри .git/refs/
, или используя git pack-refs
, затем отредактировав .git/packed-refs
.
Чтобы проверить, что вы правильно поняли, используйте git show-ref
- возможно, сравните со свежим клоном SVN HEAD
.