У меня есть задача переместить проект из SVN в Git, и я следил за учебником в https://git-scm.com/book/it/v2/Git-and-Other-Systems-Migrating-to-Git. Хороший момент: это сработало! Печальный момент, урок кажется устаревшим, когда дело доходит до перемещения удаленных ссылок на теги и ветки.Git move from SVN: Где git 2.6 хранит ветви отслеживания svn?
В учебник состояния, что они хранятся в
.git/refs/remotes/origin/tags/*
однако, в моем SVN клон, этот каталог пуст. Кажется, что они хранятся в
.git/svn/refs/remotes/origin/tags/*
же для филиалов, я ожидал, что они в
.git/refs/remotes/
но нашел их в
.git/svn/refs/remotes/
Итак, мой вопрос вы сейчас: безопасно следовать учебнику, но заменять соответствующие пути с одним, я нашел?
Edit 1:
Если предположить, что это действительно безопасно, я скопировал ссылки на их новое место назначения. К сожалению, это не работает для меня:
$ git tag --list
$
Даже если папка .git/ref/tags/
не пуста. Там я нахожу папки с именами меток со следующими файлами:
-rw-r--r-- 1 delo 1049089 96 Nov 12 10:00 .rev_map.9585454d-0aa9-4b53-3453-ca0f383a6637
-rw-r--r-- 1 delo 1049089 247K Nov 12 10:00 index
-rw-r--r-- 1 delo 1049089 24 Nov 12 10:00 unhandled.log
То же самое касается ветвей. Я думаю, это не то, что должно быть ...
Как это исправить?
Этот учебник, кажется, устаревают, а также. «$ Tag» будет называться 'origin/tags/1.0.0', а не' 1.0.0'. Однако он дал понять, как это исправить. –
Да, это не последнее, но концепция остается в силе. Вы также можете разделить исходный/тег, выполнив: 'sed '/ origin \/tags \ ///'' – dan
, когда вы разделите 'origin/tags', вы должны добавить его в' refs/remote/$ tag' поэтому он становится: 'ref/remote/origin/tags/$ tag', иначе вы получите' fatal: не удалось разрешить 'refs/remotes/MyTag' как действительный ref'. Так что теперь я получил теги. К сожалению, веткам не так-то просто, поскольку нет путей 'branch /'. Филиалы расположены непосредственно под 'origin /'. Есть идеи? –