我有一个 SVN 存储库,在我安装旧 Windows 时它在本地运行。重新安装 Windows 后,显然旧的 SVN 服务器安装已被删除,现在我不知道如何使用这个旧存储库?我还没有在旧服务器上尝试 svn create,因为我担心会丢失存储库中的所有内容?
我要么仍然能够使用任何 SVN 服务器软件来使用它,要么将其转换为 git。两者都可以!
任何帮助,将不胜感激。
答案1
- 在某处复制 SVN 仓库
为了安全起见,创建一个转储
svnadmin dump “C:\PATH\TO\REPO” > “C:\svnrepo.dump”
像以前一样创建一个新的 repo(例如
svnadmin create "C:\SomeRepo"
)将转储加载到新的存储库
svnadmin 加载“C:\SomRepo”<“C:\svnrepo.dump”
我手边没有 Windows,因此无法验证 '<' '>' 的用法,但基本上就是这样。请注意,除非 svnadmin.exe 位于您的 %PATH 中,否则您可能必须提供系统中 svnadmin.exe 的完整路径。
答案2
Manwe 已经为您的问题提供了很好的答案(让您回到能够再次访问 SVN 存储库的地步)。
我会更进一步说后如果你这样做,你绝对应该认真考虑切换到 git。你将拥有一个可用的 SVN 存储库,因此你可以使用 git 附带的工具来吸收 SVN 存储库并创建一个新的 git 存储库,如果你的开发git-svnserver
人员还不能进行迁移,你还可以使用 git 附带的工具来模拟 SVN。
迁移到 git 有以下优势:
每个开发人员都有一份完整的存储库副本。他们可以在本地提交,并在服务器宕机时延迟推送。
(因此,如果您重新安装 Windows 并像这次发生的情况一样失去服务器几天,开发仍可继续)每个开发人员都有存储库的完整副本。这些实际上是分布式备份。
(不要依赖它,但在危机中,任何签出都可以被声明为“原始”存储库)。git 是只是更好的比 SVN
(好吧,最后一个观点是我的看法,但几乎每个和我合作过的开发人员都同意这一点 —— Linus 使用 git 进行了正确的版本控制。一旦你习惯了这些命令,使用它真的是一种乐趣。)
关于从 SVN 迁移到 git 的更多阅读:git ready: 从 SVN 转换。Google
还会抛出大量与Converting from SVN to git
或 类似的查询相关的结果。
我还考虑“成功的 git 分支模型”对于从 CVS(以及在较小程度上从 SVN)转移的人来说是必读内容——git 中的分支是一件好事(而且无痛)。