社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

community wiki 2 revs Ruslan M

community wiki 2 revs Ruslan M 最近创建的主题
community wiki 2 revs Ruslan M 最近回复了
8 年前
回复了 community wiki 2 revs Ruslan M 创建的主题 » 如何将具有历史记录的SVN存储库迁移到新的Git存储库?

实现这一目标有不同的方法。我已经尝试了其中的一些方法,发现真正有效的方法是在Windows操作系统上安装Git和SVN。

先决条件:

  1. Windows上的Git(我用过这个) https://git-scm.com/
  2. 安装了控制台工具的SVN(我使用了Tortoise SVN)
  3. 转储SVN存储库的文件。 svnadmin dump /path/to/repository > repo_name.svn_dump

实现最终目标的步骤(将所有具有历史记录的存储库移动到Git,首先是本地Git,然后是远程存储库)

  1. 在目录repo_name_文件夹中创建空存储库(使用控制台工具或Tortoissesvn) cd REPO_NAME_PARENT_FOLDER ,将dumpfile.dump放入repo_name_parent_文件夹

  2. svnadmin load REPO_NAME_FOLDER < dumpfile.dump 等待这个操作,可能会很长时间

  3. 这个命令是无声的,所以打开第二个命令窗口: svnserve -d -R --root REPO_NAME_FOLDER 为什么不直接使用文件:///……?因为下一个命令将失败 Unable to open ... to URL: 谢谢你的回答 https://stackoverflow.com/a/6300968/4953065

  4. 创建新文件夹源Git文件夹

  5. cd SOURCE_GIT_FOLDER
  6. git svn clone svn://localhost/wait等待此操作。

最后,我们得到了什么?

让我们检查我们的本地存储库:

git log

看到你以前的承诺了吗?如果是-好

因此,现在您已经拥有了功能齐全的本地Git存储库,其中包含了您的源代码和旧的SVN历史记录。 现在,如果要将其移动到某个服务器,请使用以下命令:

git remote add origin https://fullurlpathtoyourrepo/reponame.git
git push -u origin --all # pushes up the repo and its refs for the first time
git push -u origin --tags # pushes up any tags

在我的例子中,我不需要tags命令,因为我的repo没有tags。

祝你好运!