Git从SVN转移:git 2.6在哪里存储svn跟踪分支?

时间:2015-11-12 08:20:23

标签: git svn git-svn

我的任务是将项目从SVN移动到Git,然后我按照https://git-scm.com/book/it/v2/Git-and-Other-Systems-Migrating-to-Git中的教程进行操作。好点:它奏效了!遗憾的是,在移动标签和分支的远程引用时,教程似乎已经过时了。

教程指出,它们存储在

.git/refs/remotes/origin/tags/*

但是,在我的svn clone中,此目录为空。它们似乎存储在

.git/svn/refs/remotes/origin/tags/*

分支相同,我希望它们在

.git/refs/remotes/

但在

中找到了它们

.git/svn/refs/remotes/

所以,我现在向你提出的问题是:按照教程安全,但用相应的路径替换,我找到了吗?

修改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

分支相同。我想,这不应该是它应该是......

我该如何解决?

1 个答案:

答案 0 :(得分:0)

我觉得这很安全。请注意,您可以在移动它们之前始终创建备份。

另一种方法是使用this教程中的步骤。

基本上,你可以这样做:

for tag in `git branch -r | grep "tags/" | sed 's/ tags\///'`; do
  git tag -a -m"Converting SVN tags" $tag refs/remotes/$tag
done