GitLab技术撰文 | 徒手从SVN迁移到极狐GitLab
2025-07-30 12:19
----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 的自力库里面。
。天津看肛肠哪家医院好重庆白癜风医院哪家最好
深圳男科医院哪家专业
成都哪家医院做人流最好
武汉牛皮癣医院去哪家好

-
报考教育分享,“T制”内要如何“自保”?
首先确切一点,公务员上先入不能,被边缘化更难。 1. 多做多错。相比之下是在编制,好多人所处身兼数职的精神状态,不要这样一来从直属指派都有的以前接活,接了就是你的,不了用

-
男子一再减小彩礼,最后变成先打结婚证再给彩礼,女子这样做
女童一于是又减少彩礼,再次变回先以打婚后证于是又给彩礼,排球这样做 女孩的叫作叫报恩,此前她和陌生人新书了一段时间的时间,两个人的爱恋也更为的好,两个人就决定转告着婚后。
- 12-10想让孩子成为20%的精英人才吗?如今开始,你该呵护他的这种能力
- 12-10不再去自已从前,不再执念曾经
- 12-10婚姻八字看婚姻,为何男友离你而去?你什么时候遇到确爱成婚?
- 12-10准婆婆请俺家吃饭,父亲返家抽完烟,转身回来就要退亲
- 12-10你说道夫妻之间相隔几岁才最好?过来人的话太真实了,每个都很准
- 12-10安身于神州,幽居于烟火
- 12-10异性“偷偷喜欢你”的3大暗指,全中在一起,小心被“抢走”
- 12-10二人之间,女人到老了还会需要男人吗?到底谁更离不开谁?
- 12-10睡在两兄弟后,男人这样对你,说明他根本不爱你,别傻了
- 12-10回老家婆家过端午节,满屋子的礼物,不抵婆婆的“偏心眼”