当前位置: 首页 > 编程笔记 >

使用Atlassian转换实用程序从SVN迁移到Git

邢财
2023-03-14
本文向大家介绍使用Atlassian转换实用程序从SVN迁移到Git,包括了使用Atlassian转换实用程序从SVN迁移到Git的使用技巧和注意事项,需要的朋友参考一下

示例

在此处下载Atlassian转换实用程序。该实用程序需要Java,因此请确保在计划进行转换的计算机上安装了Java Runtime Environment JRE。

使用命令java -jar svn-migration-scripts.jar verify检查您的计算机是否缺少完成转换所需的任何程序。具体来说,此命令检查Git,Subversion和git-svn实用程序。它还验证您是否在区分大小写的文件系统上执行迁移。迁移到Git应该在区分大小写的文件系统上完成,以避免损坏存储库。

接下来,您需要生成一个作者文件。Subversion仅按提交者的用户名跟踪更改。但是,Git使用两条信息来区分用户:真实姓名和电子邮件地址。以下命令将生成一个文本文件,该文件将Subversion用户名映射到其Git等效项:

java -jar svn-migration-scripts.jar authors <svn-repo> authors.txt

<svn-repo>您要转换的Subversion版本库的URL在哪里。运行此命令后,贡献者的标识信息将映射到中authors.txt。电子邮件地址的格式为<username>@mycompany.com。在authors文件中,您将需要手动将每个人的默认名称(默认情况下已成为其用户名)更改为其实际名称。在继续操作之前,请确保还要检查所有电子邮件地址的正确性。

以下命令将一个svn存储库克隆为一个Git:

git svn clone --stdlayout --authors-file=authors.txt <svn-repo> <git-repo-name>

其中,<svn-repo>是与上面使用的相同的存储库URL,并且<git-repo-name>是当前目录中将存储库克隆到的文件夹名称。使用此命令之前,有一些注意事项:

    list-paddingleft-2">
  • 在--stdlayout上面标志告诉Git的,你正在使用一个标准的布局trunk,branches和tags文件夹。具有非标准布局的Subversion存储库要求您指定trunk文件夹,任何/所有branch文件夹和tags文件夹的位置。可以通过以下示例完成此操作:git svn clone --trunk=/trunk --branches=/branches --branches=/bugfixes --tags=/tags --authors-file=authors.txt <svn-repo> <git-repo-name>。

  • 完成此命令可能需要花费几个小时,具体取决于存储库的大小。

  • 为了减少大型存储库的转换时间,可以直接在托管Subversion存储库的服务器上运行转换,以消除网络开销。

git svn clone将Subversion分支(和主干)导入为包含Subversion标签的远程分支(以开头的远程分支tags/)。要将它们转换为实际的分支和标记,请按照提供的顺序在Linux机器上运行以下命令。运行它们之后,git branch -a应显示正确的分支名称,并git tag -l应显示存储库标签。

git for-each-ref refs/remotes/origin/tags | cut -d / -f 5- | grep -v @ | while read tagname; do git tag $tagname origin/tags/$tagname; git branch -r -d origin/tags/$tagname; done
git for-each-ref refs/remotes | cut -d / -f 4- | grep -v @ | while read branchname; do git branch "$branchname" "refs/remotes/origin/$branchname"; git branch -r -d "origin/$branchname"; done

从svn到Git的转换现在完成了!只需push将您的本地存储库发送到服务器,您就可以继续使用Git进行贡献,并拥有svn的完整版本历史记录。

 类似资料:
  • 我用xcode11运行我的应用程序,并且可以发布它。但是,我看到了苹果发布的下面这则公告; “从2021年4月开始,所有提交到应用商店的iOS和iPadOS应用都必须使用Xcode 12和iOS 14 SDK构建。” 我到底该怎么做?如果我下载Xcode12并运行我的应用程序,SDK会自动更新吗?安装iOS 14 SDK该怎么做? 或者我需要为我现有的豆荚“豆荚更新”吗?在我的项目“iOS部署目标

  • 我想把我的项目换成基于spring的产品。 我的第一步是将我的java web应用程序从一个生成的WAR文件转换成一个独立的可执行jar,它由Spring引导驱动。 让我们从GITHUB获取一个开源Web应用示例。vaadinspringweb应用程序 网络。xml文件可以在这里找到。 根上下文文件可以在这里找到。 我希望有一些指导我执行转换。 我还提交了Spring启动项目中的一个问题。

  • Subversion版本库到Git版本库的转换,最好的方法就是git-svn。而git-svn的使用方法在前面“Git和SVN协同模型”一章已经详细介绍过。本章的内容将不再对git-svn的用法做过多的重复,只在这里强调一下版本库迁移时的注意事项,相关git-svn内容还请参照前面的内容。 在迁移之前要确认一个问题,Subversion转换到Git库之后,Subversion还继续使用么?意思是说

  • 我刚刚从eclipse转移到IntelliJ。我有一个Spring启动项目,在eclipse中运行完美。但是当我试图在IntelliJ上运行它时,我得到了“进程完成并退出代码1”,我已经尝试了所有接下来的解决方案: https://stackoverflow.com/search?q=eclipseintellijSpring靴 但什么都不管用。有什么建议吗?Spring启动配置

  • 我试图用以下xml文件在tomcat 8中部署一个应用程序: 我读了很多关于资源方法的迁移,并将xml文件更改为: 该应用程序启动正常,但没有从jar文件中导入类。我肯定我错过了一些东西,找不到一个好的例子来说明如何做到这一点。请帮助。 我的JSP无法编译,正在抛出 组织。阿帕奇。贾斯珀。JaspereException:无法为JSP编译类:在生成的java文件:[/usr/local/apach

  • 我正在将flutter应用程序从Firebase实时数据库迁移到Firestore。我在聊天应用程序中更新这段代码时遇到麻烦,因为firestore没有FireBaseAnimatedList。 旧代码: 现在只有错误是在动画中。我有错误: