如何将 SVN 存储库的本地克隆转换为 git

How can I convert a local clone of SVN repo to git

Although this sounds like a common question, I actually could not find any thread with the same issue I am having on #SO.

我有一个 svn 存储库的旧副本(从一个不再存在的存储库中检出 - 服务器刚刚退役)。我想检查那个回购协议的提交历史。我想因为在 repo 的根目录下有一个“.svn”文件夹,里面有 65+M 的数据,所以应该可以这样做。

到目前为止我尝试了什么(但没有用): 初始化一个新的 git 存储库并尝试将现有的存储库转换为 git

# Init empty git repo git init git svn rebase -l

# Init git-svn repo rm -rf .git git svn init http://same/url/as/the/one/used/before/decommissioning/the/server git svn rebase -l

我想做的事情有可能吗?我正在寻找的数据甚至可以离线使用吗?

I think this is impossible。本地 SVN 签出不包含足够的信息来充当存储库。没有历史信息——都在服务器上。

您需要来自 svnadmin dump 的实时服务器或转储。

工作副本不是存储库克隆。 Subversion 工作副本不包含修订历史。它是项目的轻量级本地副本,不打算用于迁移修订历史记录。您可以将工作副本的数据导入新的 git 存储库,但它不会包含任何更改历史记录。

  • 在 Subversion 术语中,repository 是一个服务器端数据库,被认为是单个 "source of truth"。它是一个中央存储,您可以使用 Web 浏览器访问它以查看更改历史记录并用于签出 工作副本 以处理版本化数据。

  • working copy是一个workbench为您的工作而改变。您可以使用它来操作存储库——修改数据并将更改提交到远程存储库。工作副本的大小通常比存储库本身小得多,而且通常比存储库本身更快,因为它只包含一个项目的分支或主干(即主干)。通过任意修改组合,您可以根据需要从同一存储库或项目中获得尽可能多的工作副本。