我正在尝试使用Git作为SVN存储库的前端,以便能够使用Git的简单分支,存储等优秀功能.
问题是SVN存储库非常大(8,000转)并且包含许多分支和标记(旧的和新的).
它是一个接近标准的布局,配置包含fetch,branches和tags指令.
由于最旧的分支和标记引用了修订版10,因此它意味着每个都svn fetch从修订版10和转发中读取整个存储库历史记录,这可能需要数小时的慢速连接.
如果我只跟踪主干,那么它很好,但我仍然想让git意识到新的分支和标签.
我通常会查看我所在git log -1的分支并从评论中获取SVN修订版,因此我可以做git svn fetch -r7915:HEAD或类似.我猜那是什么git svn fetch --parent.但为什么我需要这样做呢?
我在Windows上,并使用TortoiseGit,它有很好的支持git-svn,但由于TortoiseGit只运行git svn fetch我有点卡住.
难道我做错了什么?我希望svn fetch在第一次svn clone -s完成时能够快速运行.
我知道如何在subversion中使用标签.每次进入发布里程碑时,我都会创建一个标记.
我不太明白他们是如何工作的.
标签只是一个副本,是由我指定的修订版制成的吗?或者更像是一个参考,在内部颠覆只是说一个标签GO TO /trunk/project/ Revision 5或什么的.
创建tag(svn copy)的命令似乎意味着它是一个副本,但我看到其他人写道,subversion并没有真正复制任何东西.
假设我只转储存储库的HEAD修订版.除了标签,我不关心任何历史.这些标签是否与Head版本的其余部分一起转储?
最后,这一切只是编程魔术,我真的不想知道.
我应该将它们用作单独的版本吗?我是否将它们检入树干或树枝?这一切都在红皮书中,我浪费了你的时间吗?