我有一个扁平的 svn 存储库,如下所示:
my_repo/
├── file1.c
├── file2.c
├── file3.c
└── README
这个 repo 没有分支或标签,我要做的就是将它转换为 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' not implemented
我认为这是因为托管存储库的服务器使用的是旧版本的颠覆。我无法控制服务器,因此无法执行更新。
我也尝试过使用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' is not a complete URL and a separate URL is not specified command failed
这难倒了我,我不知道为什么它不起作用。基本上我想知道如何在保持历史记录的同时将我的 svn 存储库变成 git 存储库。希望有人可以帮助我,或者指出我正确的方向。从未意识到将这个简单的 repo 转移到 git 会如此困难!
谢谢