- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
迁移到 Git
如果在其他版本控制系统中保存了某项⽬的代码⽽后决定转⽽使⽤ Git ,那么 项⽬
必须经历某种形式的迁移。本节将介绍 Git 中包含的⼀些针对常见系统的导⼊脚本,
并将展⽰编写⾃定义的导⼊脚本的⽅法。
导⼊
你将学习到如何从专业重量级的版本控制系统中导⼊数据—— Subversion 和 Perforce
—— 因为据我所知这⼆者的⽤户是 (向 Git )转换的主要群体,⽽且 Git 为此⼆者附
带了⾼质量的转换⼯具。
Subversion
读过前⼀节有关 git svn 的内容以后,你应 能轻⽽易举的根据其中的指导来 git svn
clone ⼀个仓库了;然后,停⽌ Subversion 的使⽤,向⼀个新 Git server 推送,并开始
使⽤它。想保留历史记录,所花的时间应 不过就是从 Subversion 服务器拉取数据的
时间 (可能要等上好⼀会就是了)。
然⽽,这样的导⼊并不完美;⽽且还要花那么多时间,不如⼲脆⼀次把它做对 !⾸当
其冲的任务是作者信息。在 Subversion ,每个提交者在都在主机上有⼀个⽤户名,记
录在提交信息中。上节例⼦中多处显⽰了 schacon ,⽐如 blame 的输出以及 git svn
log 。如果想让这条信息更好的映射到 Git 作者数据⾥,则需要 从 Subversion ⽤户名到
Git 作者的⼀个映射关系。建⽴⼀个叫做 user .txt 的⽂件,⽤如下格式表⽰映射关系:
schacon = Scott Chacon schacon@
selse = Someo Nelse selse@
通过 命令可以获得 SVN 作者的列表:
$ svn log ^/ --xml | grep -P ^author | sort -u | \
perl -pe s/author(.*?)\/author/$1 = / users.txt
它将输出 XML 格式的⽇志——你可以找到作者,建⽴⼀个单独的列表,然后从 XML
中抽取出需要的信息。 (显⽽易见,本⽅法要求主机上安装了grep ,sort 和 perl .)然
后把输出重定向到 user .txt ⽂件,然后就可以在每⼀项的后⾯添加相应的 Git ⽤户数
据。
为 git svn 提供 ⽂件可以然它更精确的映射作者数据。你还可以在 clone 或者 init后
⾯添加 --no-meta ata 来阻⽌ git svn 包含那些 Subversion 的附加信息。这样 import 命
令就变成了:
$ git svn clone /svn/ \
--authors-file=users.txt --no-metadata -s my_project
现在 my_project ⽬录下导⼊的 Subversion 应 ⽐原来整洁多了。原来的 commit 看上
去是这样:
commit 37efa680e8473b615de980fa935944215428a35a
Author: schacon schacon@4c93b258-373f-11de-be05-5f7
Date: Sun May 3 00:12:22 2009 +0000
fixed install - go to trunk
git-svn-id: /svn/trunk@94
be05-5f7
现在是这样:
commit 03a8785f44c8ea5cdb0e8834b7c8e6c469be2ff2
Author: Scott Chacon schacon@
Date: Sun May 3 00:12:22 2009 +0000
fixed install - go to trunk
不仅作者⼀项⼲净了不少,git-svn-id 也就此消失了。
你还需要⼀点 post-import (导⼊后) 清理⼯作。最起码的,应 清理⼀下 git svn 创建
的那些怪异的索引结构。⾸先要移动标签,把它们从奇怪的远程分⽀变成实际的标
签,然后把剩下的分⽀移动到本地。
要把标签变成合适的 Git 标签,运⾏
$ git for-each-ref refs/remotes/tags | cut -d / -f 4- | grep -
v @ | while read tagname; do git ta
您可能关注的文档
最近下载
- 2011CPXY-J229 TXV-天信防水卷材防水涂料.docx VIP
- 2006CPXY-J169 新元素板业新元素板业.docx VIP
- DB23T 3531-2023 人工林营建碳增汇技术指南.pdf VIP
- Revit与Navisworks实用疑难200问1.pdf VIP
- 2011CPXY-J227 可耐福穿孔纸面石膏板.docx VIP
- 2004CPXY-J152 振邦建筑用氟碳涂料系列产品.docx VIP
- 2004CPXY-J151 TIETUO(贴妥)版系列自粘防水卷材.docx VIP
- 2015CPXY-J335 铠美创水泥基渗透结晶型防腐防水材料.docx VIP
- 2014CPXY-R20 晓珍FM PVC风管 晓珍FM PVC风管.docx VIP
- 2004CPXY-R06 “龙牌”钢制板式散热器.docx VIP
原创力文档


文档评论(0)