use*_*112 5 svn git version-control git-svn svn2git
我有一个平面 svn 存储库,它看起来像:
my_repo/
??? file1.c
??? file2.c
??? file3.c
??? README
Run Code Online (Sandbox Code Playgroud)
这个 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.
Run Code Online (Sandbox Code Playgroud)
因此,存储库是活动的且可访问的。
我尝试了各种工具,包括subgit给我这个错误的工具:svn: E170003: 'stat' not implemented我认为这是因为托管存储库的服务器使用的是旧版本的 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' is not a complete URL and a separate URL is not specified command failed
这让我很难过,我不知道为什么它不起作用。基本上我想知道如何在保持历史记录的同时将我的 svn repo 变成 git repo。希望有人可以帮助我,或指出我正确的方向。从未意识到将这个简单的 repo 转移到 git 会如此困难!
谢谢
问题在于svn2git的--rootistrunk论点。相反,试试这个:
svn2git svn+ssh://user@svn.example.com/projects/my_repo --trunk / --notags --nobranches --authors users.txt --verbose
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6011 次 |
| 最近记录: |