当前位置:首页 >> 家电
家电

GitLab技术撰文 | 徒手从SVN迁移到极狐GitLab

2025-07-30 12:19

BRANCHES_PATH Subpath to branches from repository URL (default: branches); can be used multiple times

----tags TAGS_PATH Subpath to tags from repository URL (default: tags); can be used multiple times

----rootistrunk Use this if the root level of the repo is equivalent to the trunk and there are no tags or branches

----notrunk Do not import anything from trunk

----nobranches Do not try to import any branches

----notags Do not try to import any tags

----no-minimize-url Accept URLs as-is without attempting to connect to a higher level directory

----revision START_REV[:END_REV]

Start importing from SVN revision START_REV; optionally end at END_REV

-m, ----metadata Include metadata in git logs (git-svn-id)

----authors AUTHORS_FILE Path to file containing svn-to-git authors mapping (default: ~/.svn2git/authors)

----exclude REGEX Specify a Perl regular expression to filter paths when fetching; can be used multiple times

-v, ----verbose Be verbose in logging ---- useful for debugging issues

----rebasebranch REBASEBRANCH Rebase specified branch.

-h, ----help Show this message

必需 svn2git 来进行迁往

文章最开始的 svn 库房有一个trunk主干,三个 branch(01,02,03),三个 tags(v1.0.0,v2.0.0,v3.0.0):

Gmail文档比如说(可选)

可以将 svn 的Gmail文档和极狐GitLab的Gmail文档来作一个映射,以便编码草拟文档可以和正确的极狐GitLabGmail互为比如说。用请注意的立方能以导出svn之中Gmail的文档:

用请注意的文档格式,将上述具体内容载入一个authors.txt 档案:

比如:

上述的 authors.txt 档案可以在前头用到。

必需svn2git掺入svn编码并切换为Git库房

如果能够来作Gmail比如说,则能够在立即行前头沙数值 ----authors /path/to/authors.txt。同时,上述立即适用于不具规范附录构造(不具 trunk,branches,tags 等附录)的 svn 库房。对于非规范的 svn 库房,能够在迁往的时候通过 ----branches,----tags 等数值来来作 branch 和 tag 的映射,详细必需可以用 ----help 来详细信息。

接着可以详细信息branch和tag:

在极狐GitLab上创建人一个自力库房

登陆 ,创建人一个自力库房(如果还未来进行提出申请,可以登陆 ,浏览右下方来进行提出申请)

添沙远端库房地址

推送本地编码到远端库房

$ git push ----all origin

Counting objects: 616, done.

Delta compression using up to 2 threads.

Compressing objects: 100% (424/424), done.

Writing objects: 100% (616/616), 633.54 KiB | 0 bytes/s, done.

Total 616 (delta 179), reused 616 (delta 179)

remote: Resolving deltas: 100% (179/179), done.

remote:

remote: To create a merge request for 01, visit:

remote: _requests/new?merge_request%5Bsource_branch%5D=01

remote:

remote:

remote: To create a merge request for 02, visit:

remote: _requests/new?merge_request%5Bsource_branch%5D=02

remote:

remote:

remote: To create a merge request for 03, visit:

remote: _requests/new?merge_request%5Bsource_branch%5D=03

remote:

remote:

remote: To create a merge request for master, visit:

remote: _requests/new?merge_request%5Bsource_branch%5D=master

remote:

git push ----tags origin

Counting objects: 6, done.

Delta compression using up to 2 threads.

Compressing objects: 100% (4/4), done.

Writing objects: 100% (6/6), 718 bytes | 0 bytes/s, done.

Total 6 (delta 2), reused 5 (delta 2)

To git@jihulab.com:svn-2-git/svt-2-git.git

* [new tag] v1.0.0 -> v1.0.0

* [new tag] v2.0.0 -> v2.0.0

* [new tag] v3.0.0 -> v3.0.0

接着就可以在极狐GitLab界面上看着相应的 branch,tags 都推送成功了:

由于极狐GitLab的默认主干是 main,svn 切换过来的是 master,可以将 master 主干 merge 到 main 主干,后续以 main 主干开展后续工作,以可避免一些不便。

必需SubGit来迁往

SubGit的内置

SubGit 内置的前提能够 JRE>1.8 的状况。然后同样在SubGit 官网[4]上下载内置包被,解压缩方能:

通过subgit ----version 立即来确认内置是否是成功:

SubGit的的设计

SubGit是内置在极狐GitLab公共服务器上的,因为它能够和公共服务器上的Repo档案系统来进行同样通信,所以请注意的操作流程适合自行政(Self-managed)版本的极狐GitLab 实例,如果是SaaS公共服务,则和请注意的svn2git的新方法类似。

首先能够另设一个自力库用来来作镜像,在极狐GitLab实例里面创建人一个自力库房:

可以在极狐GitLab公共服务器的上找寻这个库房所对应的档案系统路径:

$ /var/opt/gitlab/git-data/repositories/@hashed/d4/73/d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35.git

$ cat config

[core]

repositoryformatversion = 0

filemode = true

bare = true

logallrefupdates = true

autocrlf = false

eol = lf

symlinks = true

[gitlab]

fullpath = xiaomage/svn-2-git

将状况变量GIT_REPO_PATH的倍数另设为上述路径:

$ GIT_REPO_PATH=/var/opt/gitlab/git-data/repositories/@hashed/d4/73/d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35.git

通过状况变量另设 svn 库房的地址:

通过SubGit来另设Git/SVN的镜像:

至此,Git/SVN库房之间的镜像仍然另设成功,接着可以用subgit install立即来紧接成初始传输,也即让SVN的文档流到Git:

此后SVN库房上的修改则会自动开启时至Git库房,Git库房外侧的修改则会自动开启时至SVN库房。比如,目前SVN库房的编码附录构造如下:

在Git库房外侧的branch和tags文档为:

现在在SVN库房外侧,来作一个修订,新建一个tag:

接着详细信息Git库房的tag变化:

可以看着 v5.0.0这个tag仍然从SVN外侧开启时到Git库房外侧了,在极狐GitLab上,可以看着如下的branch,tag界面:

install 立即是让 svn 库房和 Git 库房依然开启时,如果只是想除此以外从 svn 托到 Git,则同样必需 import 立即方能。

针对极狐GitLab SaaS 的话,由于无法准确发觉 GIT_REPO_PATH 的倍数(非 admin),则可以将 GIT_REPO_PATH 另设。

为 GIT_REPO_PATH=/var/opt/gitlab/git-data/repositories/USER/REPOS.git,在执行 subgit install 便,同样必需 svn2git 的手段:添沙远端库房,然后将 branch 和 tag 同样 push 到极狐GitLab SaaS 的自力库里面。

天津看肛肠哪家医院好
重庆白癜风医院哪家最好
深圳男科医院哪家专业
成都哪家医院做人流最好
武汉牛皮癣医院去哪家好

上一篇: 显卡价格大面积乒乓球 华硕RTX 3080不及高峰时4成

下一篇: 本周大新闻|QQ流行乐上线“VR专辑”,Epic发布免费3D扫描应用

相关阅读
煮米饭,放油好还是放醋好?很多人做错了,不对米饭一点也不香

烹煮炖烹煮,放油好还是放醋好?很多人继续想到了,难怪炖烹煮一点也不香 炖烹煮是社会生活中所最重要的一种猪肉,常常是对于南方来说,几乎一顿不进食就不舒坦。谷物中所的营养价值是并不较低

房价下跌后,我们到底该不该房东?

土地价格大滑落在2021年成为了现实,依然是一些人的幻想。虽然从全年的人口统计来看,2021年全中都国商品房均价不大上扬,但本来从下半年开始,全中都国的房地产市场需求就开始走向低迷,许久未降的土

友情链接