社区
版本控制
帖子详情
如何将CVS中的项目迁移到svn中?
yuanye348623610
2014-03-28 09:52:45
如何将局域网中windows server 服务器上CVS中的项目迁移到远程Linux服务器的svn中?要求保留CVS中的历史记录。
...全文
349
1
打赏
收藏
如何将CVS中的项目迁移到svn中?
如何将局域网中windows server 服务器上CVS中的项目迁移到远程Linux服务器的svn中?要求保留CVS中的历史记录。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
青松2
2014-03-29
打赏
举报
回复
CVS迁移到SVN 博客分类: 挨踢 CVSSVNLinuxsubversionPython 去年刚入职现所在公司时,做过一个CVS->SVN迁移,SVN库大概1.8G左右,花了不少时间处理。由于急着迁移并未做好笔记,导致这次迁移另外一个1.5G的项目有点束手无策,好歹之前有经验也有教训,特做下笔记。 环境说明: CVS在一台linux服务器上,SVN在另外一台linux服务器上,项目大概1.5G左右(多年项目,积累了较多tag及文档)。 辅助环境:XP,Ubuntu 需要工具:python,cvs2svn (python支撑cvs2svn运行,一般发行版linux都已经包含python) 步骤: 1、先通知参与项目人员,将必要的代码提交,因为自迁移工作开始,CVS的使命也基本完成了,如果漏了一些最新本地副本的提交将人为导致迁移出现一些问题。 2、为加快迁移速度,多年沉积下来的版本控制里,像release备份,一些图片等文档,没必要迁移历史,确定哪些不必要迁移(后续人工处理)。这一步将项目所在的CVS库目录tar打包,不需要进行压缩(文件过多,压缩花的时间得偿失)。打包的目的是方便取到本地,清除一些不必要迁移的数据,暂时移除一些不需要迁移历史的数据。 3、将tar取到本地并处理好后,就需要将它放到linux(windows下也能完成,但个人更喜欢在linux操作)。从windows下将tar放到linux上,并解压缩,有可能会有中文文件乱码情况,这里的解决方法有几种:1)使用rar包。2)修改linux系统上的字符编码为gbk/gb2312,如果在linux上看到的中文目录或文件名正常了,那就可以进行接下来的操作了。 4、也是最重要的一步,将CVS库导出成SVN DUMP文件。 4.1、为保证迁移到SVN的中文目录及中文文件名都正常,可以从解压的CVS文件夹里,复制一个包含中文目录及中文文件名的目录出来,并在它下面建立一个名为CVSROOT的目录,然后使用cvs2svn导出成SVN DUMP文件。假设这个测试的CVS目录名为/home/cvst/test,它下面包含中文目录及文件名,那在test下建立CVSROOT空目录,运行命令: sudo /usr/mysoft/Python/python cvs2svn --dumpfile=/home/littlechang/testChs.dump /home/cvst/test --encoding=gb2312 这里是假设dump文件放在/home/littlechang 下,正常情况控制台会出现日志,注意看日志中第一个处理步骤pass1 中处理到中文文件名及目录是否正常,如果不正常,请在命令的最后再加上 --encoding=utf-8 即两个encoding参数,继续进行测试,如果不行再换编码直到成功。 4.1输出的日志样例见本文尾。 4.2、完成中文测试通过后,得到了testChs.dump文件,这时为安全起见,将它加载到svn中去。假设新svn库在/home/svn/myProject(命令:svnadmin create /home/svn/myProject)下,注意这个版本库里不要包含trunk,branchs,tags 三个目录,如有请清除(例如可在tortoisesvn中将其删除)。 使用命令:svnadmin load /home/svn/myProject</home/littlechang/testChs.dump 运行后,会提示开始处理,如不出现异常信息则表示成功。 4.2输出的日志样例见本文尾。 4.1输出日志样例: Time for pass1 (CollectRevsPass): 267.4 seconds. ----- pass 2 (CleanMetadataPass) ----- Converting metadata to UTF8... Done Time for pass2 (CleanMetadataPass): 0.075 seconds. ----- pass 3 (CollateSymbolsPass) ----- Checking for forced tags with commits... Done Time for pass3 (CollateSymbolsPass): 0.053 seconds. ----- pass 4 (FilterSymbolsPass) ----- Filtering out excluded symbols and summarizing items... Done Time for pass4 (FilterSymbolsPass): 97.07 seconds. ----- pass 5 (SortRevisionSummaryPass) ----- Sorting CVS revision summaries... Done Time for pass5 (SortRevisionSummaryPass): 0.163 seconds. ----- pass 6 (SortSymbolSummaryPass) ----- Sorting CVS symbol summaries... Done Time for pass6 (SortSymbolSummaryPass): 2.268 seconds. ----- pass 7 (InitializeChangesetsPass) ----- Creating preliminary commit sets... Done Time for pass7 (InitializeChangesetsPass): 103.9 seconds. ----- pass 8 (BreakRevisionChangesetCyclesPass) ----- Breaking revision changeset dependency cycles... Done Time for pass8 (BreakRevisionChangesetCyclesPass): 20.86 seconds. ----- pass 9 (RevisionTopologicalSortPass) ----- Generating CVSRevisions in commit order... Done Time for pass9 (RevisionTopologicalSortPass): 20.90 seconds. ----- pass 10 (BreakSymbolChangesetCyclesPass) ----- Breaking symbol changeset dependency cycles... Done Time for pass10 (BreakSymbolChangesetCyclesPass): 55.48 seconds. ----- pass 11 (BreakAllChangesetCyclesPass) ----- Breaking CVSSymbol dependency loops... Done Time for pass11 (BreakAllChangesetCyclesPass): 74.64 seconds. ----- pass 12 (TopologicalSortPass) ----- Generating CVSRevisions in commit order... Done Time for pass12 (TopologicalSortPass): 74.56 seconds. ----- pass 13 (CreateRevsPass) ----- Mapping CVS revisions to Subversion commits... Creating Subversion r1 (Project initialization) Creating Subversion r2 (commit) …… 一直到cvs的最大版本号,期间可以看到tag号也被提交。(cvs,svn tag机制不同) Creating Subversion r4717 (commit) Done Time for pass13 (CreateRevsPass): 64.68 seconds. ----- pass 14 (SortSymbolsPass) ----- Sorting symbolic name source revisions... Done Time for pass14 (SortSymbolsPass): 4.683 seconds. ----- pass 15 (IndexSymbolsPass) ----- Determining offsets for all symbolic names... Done. Time for pass15 (IndexSymbolsPass): 3.554 seconds. ----- pass 16 (OutputPass) ----- Starting Subversion Dumpfile. Starting Subversion r1 / 4717 Starting Subversion r2 / 4717 ……一直到最大版本号 Starting Subversion r4717 / 4717 Done. Time for pass16 (OutputPass): 431.2 seconds. cvs2svn Statistics: ------------------ Total CVS Files: 11061 Total CVS Revisions: 19671 Total CVS Branches: 2852 Total CVS Tags: 1340371 Total Unique Tags: 346 Total Unique Branches: 2 CVS Repos Size in KB: 564984 Total SVN Commits: 4717 First Revision Date: Tue Aug 1 13:43:51 2006 Last Revision Date: Fri Sep 10 17:54:27 2010 ------------------ Timings (seconds): ------------------ 250 pass1 CollectRevsPass 0 pass2 CleanMetadataPass 0 pass3 CollateSymbolsPass 97 pass4 FilterSymbolsPass 0 pass5 SortRevisionSummaryPass 2 pass6 SortSymbolSummaryPass 102 pass7 InitializeChangesetsPass 21 pass8 BreakRevisionChangesetCyclesPass 21 pass9 RevisionTopologicalSortPass 56 pass10 BreakSymbolChangesetCyclesPass 76 pass11 BreakAllChangesetCyclesPass 77 pass12 TopologicalSortPass 67 pass13 CreateRevsPass 5 pass14 SortSymbolsPass 3 pass15 IndexSymbolsPass 431 pass16 OutputPass 1208 total 4.2输出日志样例: ……省略一些小版本日志输出 这里是svnadmin在将我们dump 文件加载到版本库,它会从第1个版本号开始提交,直到最后一个版本号。 <<< Started new transaction, based on original revision 4713 * editing path : trunk/webapps/base/op/product/productList4promotionBind.jsp ... done. * editing path : trunk/javasrc/baseproject/com/kanmenzhu/LoginAction.java ... done. ------- Committed new rev 4719 (loaded from original rev 4713) >>> <<< Started new transaction, based on original revision 4714 * editing path : trunk/javasrc/baseproject/com/kanmenzhu/UserService.java ... done. ------- Committed new rev 4720 (loaded from original rev 4714) >>> <<< Started new transaction, based on original revision 4715 …… ------- Committed new rev 4723 (loaded from original rev 4717) >>> 当最大版本号提交完毕,也就意味着迁移工作的基本完毕。 ==================分隔线============================== 在完成4.1,4.2的测试后(之所以要测试,因为如果直接将整个CVS库进行操作,如果中途失败,开销的时间得不偿失,用小目录测试结果一样),访问新的SVN库,查看历史记录等是否正常。如果正常,则对整个CVS库进行迁移,迁移成功的结果应该是: 历史记录完整,包含提交人信息;CVS上的branchs,tags 信息被添加到SVN 的branchs,tags中。 5、完成以上操作后,将之前暂时移出来不需要历史记录的文档进行还原,即提交到新的SVN库。
服务器
svn
上的
项目
下载到eclipse
资源名称:服务器
svn
上的
项目
下载到eclipse内容简介:
SVN
是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、
CVS
,它采用了分支管理系统,它的设计目标就是取代
CVS
。互联网上很多版本控制服务已从
CVS
迁移
到Subversion。说得简单一点
SVN
就是用于多个人共同开发同一个
项目
,共用资源的目的。 服务器
svn
上的
项目
下载到eclipse 资源太大,传百度网盘了,链接在附件
中
,有需要的同学自取。
Svn
服务端客户端
中
文插件
SVN
是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、
CVS
,它采用了分支管理系统,它的设计目标就是取代
CVS
。互联网上很多版本控制服务已从
CVS
迁移
到Subversion。说得简单一点
SVN
就是用于多个人共同开发同一个
项目
,共用资源的目的。
通俗易懂的
SVN
入门教程(含配套资料)
本教程为授权出品教程
SVN
(Subversion)是目前使用广泛的版本控制软件,作为
CVS
的继任者,它在很多方面都具有鲜明的特色,提供了更好的操作体验,很好的解决了在实际的企业开发过程
中
诸如:数据备份、代码还原、协同修改、版本管理、追溯问题代码的编写人和编写时间以及权限控制等问题。在本套视频
中
通过几个生动的小故事引出协同开发
中
存在的问题,从而体会
SVN
的作用,最终落实到常用的
SVN
操作。手把手教你安装服务器端程序、配置版本库、操作客户端界面,帮你破茧成蝶,完成蜕变为Developer的第一步。
Tortoise
SVN
-1.14.6.29673-x64-
svn
-1.14.3
1.安装客户端 2.安装语言包 3.设置语言
中
文简体(不知道怎么设?度娘) 4.本包含独立客户端及独立语言包 5.与git相比可以单独下载文件等优势 简介:
SVN
是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、
CVS
,它采用了分支管理系统,它的设计目标就是取代
CVS
。互联网上很多版本控制服务已从
CVS
迁移
到Subversion。说得简单一点
SVN
就是用于多个人共同开发同一个
项目
,共用资源的目的。
SVN
_VS2017+汉化包
SVN
是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、
CVS
,它采用了分支管理系统,它的设计目标就是取代
CVS
。互联网上很多版本控制服务已从
CVS
迁移
到Subversion。说得简单一点
SVN
就是用于多个人共同开发同一个
项目
,共用资源的目的。
版本控制
1,277
社区成员
1,251
社区内容
发帖
与我相关
我的任务
版本控制
软件工程 CVS/SVN
复制链接
扫一扫
分享
社区描述
软件工程 CVS/SVN
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章