我想学习使用git-svn
。我的磁盘上有一个svn本地存储库,我刚刚使用类似的东西检查过:
svn co http://myserver.com/mysvnrepo/trunk/ /mysvnrepo/
ls -a /mysvnrepo/
. .. .svn foo bar
这个/mysvnrepo/
很大,所以我想避免不惜一切代价重新下载或复制文件。
我想知道是否有办法git clone
这个本地仓库而不下载/复制任何东西(因为它已经存在)。
我有this这似乎是我正在寻找的,但是当我这样做时,它并不能完全满足我的期望。
cd /mysvnrepo/
git svn clone file://mysvnrepo/
ls /mysvnrepo/
. .. .git .svn foo bar
git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .svn/
# foo/
# bar/
我希望git
能够将foo
和bar
视为“版本化和最新”。
根据docs,似乎我需要使用git svn init
因为git svn clone
运行fetch
,我当然不想要。所以我试过
git svn init --trunk=file:///mysvnrepo/
......但没有运气。
我对git
完全不熟悉,所以我的困惑已经超出了图表......我做错了什么?
提前致谢
答案 0 :(得分:1)
您无法获取subversion快照并将其转换为git存储库。
听起来你正试图避免从svn中长时间初始化git存储库:这通常会尝试准备好你的整个历史记录。这可以通过另一种方式完成,方法是根据与您相关的历史记录限制获取最近的历史记录:
git svn clone -s -r 12334:HEAD https://svn.host.org/repo
12334是您感兴趣的最早的svn版本,并假设回购以标准的svn方式布局,带有分支和标签。