Миграцията от svn (сървърна версия 1.6.11) към git (версия 2.9.2) на Windows 10 изглежда не работи както е описано (искам да запазя всички svn-тагове и клонове).
Първи опит:
Следвах урока, предоставен на https://www.atlassian.com/git/tutorials/migrating-convert.
Резултат: всички клонове се изтриват, когато се изпълни следната команда:
java -Dfile.encoding=utf-8 -jar ~/svn-migration-scripts.jar clean-git
--force
Следващ опит:
Следвах стъпките, описани в https://git-scm.com/book/it/v2/Git-and-Other-Systems-Migrating-to-Git:
поръчка на проекта:
git svn clone --stdlayout --authors-file=authors.txt --no-metadata http://<the-svn-url-without-trunk> <module-directory>
След като проверите командата
git tag -l
произвежда празен изход.git branch -a
произвежда следния резултат (както се очаква):*master remotes/origin/tags/de-vgwort-jerry-configuration-1.0.0 remotes/origin/tags/de-vgwort-jerry-configuration-1.0.1 remotes/origin/tags/de-vgwort-jerry-configuration-1.0.2 remotes/origin/tags/de-vgwort-jerry-configuration-1.1.0 remotes/origin/tags/de-vgwort-jerry-configuration-1.2.0 remotes/origin/tags/de-vgwort-jerry-configuration-1.3.0 remotes/origin/tags/de-vgwort-jerry-configuration-1.4.0 remotes/origin/tags/de-vgwort-jerry-configuration-1.4.1 remotes/origin/tags/de-vgwort-jerry-configuration-1.5.0 remotes/origin/trunk
Следващата стъпка според документацията:
To move the tags to be proper Git tags, run
$ cp -Rf .git/refs/remotes/origin/tags/* .git/refs/tags/
$ rm -Rf .git/refs/remotes/origin/tags
Проблемът:
Пътя .git/refs/remotes/origin/tags/
празно е. Всички SVN-тагове изглежда са разположени на
.git/svn/refs/remotes/origin/tags
Директорията .git/svn/refs/remotes/origin/tags
съдържа поддиректория за всеки маркер. Опитах се да преместя тези директории .git/refs/tags/
но това води до следния изход при изпълнение git branch -a
:
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.0.0/index
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.0.0/unhandled.log
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.0.1/index
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.0.1/unhandled.log
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.0.2/index
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.0.2/unhandled.log
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.1.0/index
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.1.0/unhandled.log
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.2.0/index
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.2.0/unhandled.log
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.3.0/index
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.3.0/unhandled.log
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.4.0/index
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.4.0/unhandled.log
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.4.1/index
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.4.1/unhandled.log
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.5.0/index
warning: ignoring broken ref refs/tags/de-vgwort-jerry-configuration-1.5.0/unhandled.log
* master
remotes/origin/tags/de-vgwort-jerry-configuration-1.0.0
remotes/origin/tags/de-vgwort-jerry-configuration-1.0.1
remotes/origin/tags/de-vgwort-jerry-configuration-1.0.2
remotes/origin/tags/de-vgwort-jerry-configuration-1.1.0
remotes/origin/tags/de-vgwort-jerry-configuration-1.2.0
remotes/origin/tags/de-vgwort-jerry-configuration-1.3.0
remotes/origin/tags/de-vgwort-jerry-configuration-1.4.0
remotes/origin/tags/de-vgwort-jerry-configuration-1.4.1
remotes/origin/tags/de-vgwort-jerry-configuration-1.5.0
remotes/origin/trunk
Следващ опит
Използвайте svn2git от https://github.com/nirvdrum/svn2git, Но изглежда, че този инструмент също не работи. След стартиране
svn2git <svn-url-without-trunk> --authors ..authors.txt
командата git branch -a
произведе следния резултат:
* master
remotes/svn/trunk
=> Този резултат е доста безполезен.
Какво ми липсва тук? Има ли документация, приложима за Windows и най-новата версия на git 2.9.2?
Отговори:
1 за отговор № 1За еднопосочен внос можете да опитате subgit import
SubGit има безплатна оферта за внос и като цяло е по-пълна от git svn
.