我有一个扁平的 SVN 代码库,它看起来像这样:
my_repo/
├── file1.c
├── file2.c
├── file3.c
└── README
该存储库没有分支或标签,我要尝试的是将其转换为Git存储库并保留提交历史记录。
我尝试过:
git svn clone --trunk=/ -A users.txt svn+ssh://user@svn.example.com/projects/my_repo dest_dir 我认为这应该有效,但是当我进入dest_dir并执行git svn fetch时,它似乎没有获取任何内容。 使用git log会产生以下结果:
fatal: bad default revision 'HEAD'
如果我使用svn checkout svn+ssh://user@svn.example.com/projects/my_repo,则返回:
A my_repo/file1.c
A my_repo/file2.c
A my_repo/file3.c
A my_repo/README
Checked out revision 57.
因此,存储库是有效的且可访问的。
我尝试了各种工具,包括subgit,但是它给我这个错误:svn: E170003: 'stat'未实现,我认为这是因为托管存储库的服务器正在使用旧版本的subversion。我无法控制服务器因此无法执行更新操作。
我还尝试使用svn2git,并使用以下命令:
svn2git svn+ssh://user@svn.example.com/projects/my_repo --rootistrunk -authors users.txt --verbose 但这又给我了另一个错误:
E:'svn+ssh:/user@svn.example.com/projects/my_repo'不是完整的URL,也没有指定单独的URL,命令失败
这让我感到困惑,我不知道为什么它不起作用。基本上,我想知道如何在保留历史记录的同时将我的svn存储库转换为git存储库。希望有人能帮我或指点我方向。从没想到这么难将这个简单的存储库转换为git!
谢谢
git svn clone
没有出错吗?它应该是可以工作的。另外,在执行了git svn clone
之后,如果你进入目录并运行git svn fetch
,会发生什么呢? - janossvnsync
工具将所有SVN修订版本获取到本地机器,然后尝试将此本地存储库导入Git。 - vadishev