`
trydofor
  • 浏览: 151280 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

SF上SCM从CVS到SVN的迁移

阅读更多
http://www.trydofor.com/a9w3-auhome/trydofor/article/2009/0313170649/body.htm

SF上SCM从CVS到SVN的迁移
^^^^^^^^^^^^^^^^^^^^^^^
- 作者:臭豆腐[trydofor.com]
- 日期:2009-03-13
- 授权:署名-非商业-保持一致 1.0 协议
- 声明:拷贝、分发、呈现和表演本作品,请保留以上全部信息。

0. 文档目录
^^^^^^^^^^
[[<=$INDEX]]

1. 事情的起因
^^^^^^^^^^^^^
2009-03-11 发现在eclipse下不能提交a9w3的变更到CVS了.
经过半个多小时的调查和确认,最终只好请sf帮忙解决了.
并且很快得到了sf的认真回复.(考虑到时差原因)

========================= txt : CVS错误信息 =============================
The server reported an error while performing the "cvs update" command.
  a9w3: cvs update: failed to create lock directory for
  `/cvsroot/a9w3/a9w3/a9w3-engine'
  (/cvsroot/a9w3/a9w3/a9w3-engine/#cvs.lock): Read-only file system
  a9w3: cvs update: failed to obtain dir lock in repository
  `/cvsroot/a9w3/a9w3/a9w3-engine'
  a9w3: cvs [update aborted]: read lock failed - giving up
=========================================================================

======================= txt : 原来服务器Down了 ==========================
CVS repositories that begin with the letters (a  e  h  i m o r w z) are
experiencing unplanned downtime since 2009-03-10 18:00 UTC. 
SourceForge.net staff are actively working to resolve the issue and
anticipate having the service returned sometime in the next 2 days.
Questions or concerns may be directed to us by Support Request.
=========================================================================

11号,项目发布,很忙,很晚,没理会sf这事,等着回复吧.
13号,发现sf可以提交了,但仅限于commit已有的文件,新增目录不好用.
======================= txt : 不能新增目录 ==========================
The server reported an error while performing the "cvs commit" command.
  a9w3: cvs commit: failed to create lock directory for
  `/cvsroot/a9w3/a9w3-user/trydofor/article/2009/0310140935'
  (/cvsroot/a9w3/a9w3-user/trydofor/article/2009/0310140935/#cvs.lock):
  No such file or directory
  a9w3: cvs commit: lock failed - giving up
  a9w3: cvs [commit aborted]: lock failed - giving up
=========================================================================

然后认真读了sf的 "Support Requests item #2681120",还未完全恢复,
建议使用其他SCM(Source Control Manager).

======================= txt : 建议使用其他SCM ==========================
CVS service has now been restored to all projects. Thank you for baring
with us. Again, we suggest you switch to an alternate SCM offering if
your project would prefer less downtime. We made all efforts to minimize
the downtime but limitations in CVS design keep us from making it as
resilient as the other 4 SCMs in our offering.
=========================================================================

一开始没注意 "other 4 SCMs" 一直以为只有cvs和svn呢,上去一看才知道,还有
  * Bazaar, GPL的,Python写的,分散式的,Ubuntu这家公司资助的.
  * Git, Linux内核开发用的,傻瓜内容跟踪器。Linus 是这样介绍Git的.
  * Mercurial, Mozilla在使用Mercurial(hg),主体部分是用Python写的.
真是孤陋寡闻了,最后决定使用比较流行的SVN吧,因为,
  * svn比较熟,code.google也在用.
  * eclipse和tortoise,这2个工具使用的挺顺手.
  * sf上能直接把cvs的库导到svn去(没注意看其他SCM).

最后,真的对sf的服务速度,质量,态度,打个"非常满意"的评价.
我时常怀着一种感激之心,来读/用/写软件,当然用微软盗版,也在精神上感激了很多人

2. CVS 转 SVN
^^^^^^^^^^^^^
按照 sf 的以下手册,一步一步进行.
http://apps.sourceforge.net/trac/sourceforge/wiki/Subversion%20import%20instructions
============================== tty : putty ==============================
# sf 的手册写的很好,使用putty需要登陆2次.
# 第一次执行create,然后自动推出,第二次正常登陆,就可以使用 shell了.

# 下载 cvs2svn http://cvs2svn.tigris.org
wget http://cvs2svn.tigris.org/files/documents/1462/44372/cvs2svn-2.2.0.tar.gz
tar -xzf cvs2svn-2.2.0.tar.gz
mkdir cvsrepo
ll
>lrwxrwxrwx  1 trydofor a9w3      31 Dec 12 09:32 a9text_htdocs -> /home/groups/a/a9/a9text/htdocs
>lrwxrwxrwx  1 trydofor a9w3      29 Dec 12 09:30 a9w3_htdocs -> /home/groups/a/a9/a9w3/htdocs
>drwxrwxr-x 11 trydofor a9w3    1024 Mar 13 05:40 cvs2svn-2.2.0
>-rw-rw-r--  1 trydofor a9w3  411531 Nov 23 08:15 cvs2svn-2.2.0.tar.gz
>drwxrwxr-x  2 trydofor a9w3      80 Mar 13 05:41 cvsrepo
>lrwxrwxrwx  1 trydofor users     23 Sep 30 20:32 olft -> /home/groups/o/ol/olft/
>lrwxrwxrwx  1 root     root      31 Oct 24 01:43 uploads -> /incoming/t/tr/trydofor/uploads
>lrwxrwxrwx  1 root     root      27 Oct 24 02:07 userweb -> /home/userweb/t/tr/trydofor

#获得CVS的副本.
cd cvsrepo
rsync -av rsync://a9w3.cvs.sourceforge.net/cvsroot/a9w3/* a9w3
rsync -av rsync://a9text.cvs.sourceforge.net/cvsroot/a9text/* a9text
ll
>total 8
>drwxrwxr-x 4 trydofor a9w3   80 Mar 13 05:58 a9text
>drwxrwxr-x 5 trydofor a9w3 1024 Mar 13 05:49 a9w3

#转换成svndump
cd a9w3
~/cvs2svn-2.2.0/cvs2svn --dumpfile=svndump .
# 没有错误信息,截取最后一段
>Timings (seconds):
>------------------
>16.03   pass1    CollectRevsPass
> 0.04   pass2    CleanMetadataPass
> 0.02   pass3    CollateSymbolsPass
> 0.75   pass4    FilterSymbolsPass
> 0.10   pass5    SortRevisionSummaryPass
> 0.02   pass6    SortSymbolSummaryPass
> 0.41   pass7    InitializeChangesetsPass
> 1.56   pass8    BreakRevisionChangesetCyclesPass
> 0.27   pass9    RevisionTopologicalSortPass
> 0.09   pass10   BreakSymbolChangesetCyclesPass
> 0.29   pass11   BreakAllChangesetCyclesPass
> 0.23   pass12   TopologicalSortPass
> 0.80   pass13   CreateRevsPass
> 0.02   pass14   SortSymbolsPass
> 0.02   pass15   IndexSymbolsPass
>21.95   pass16   OutputPass
>42.59   total
ll
>total 21712
>dr-xrwsr-x 3 trydofor a9w3     2048 Feb 11 12:56 CVSROOT
>dr-xrwsr-x 6 trydofor a9w3     1024 Mar 13 00:52 a9w3
>dr-xrwsr-x 3 trydofor a9w3       80 Dec 12 12:16 a9w3-user
>-rw-rw-r-- 1 trydofor a9w3 22186298 Mar 13 06:07 svndump

#通过sftp上传
sftp trydofor@frs.sf.net
>Connecting to frs.sf.net...
>trydofor@frs.sf.net's password:
sftp> cd  uploads
sftp> put svndump
>Uploading svndump to /incoming/t/tr/trydofor/uploads/svndump
>svndump                            100%   21MB   7.1MB/s   00:03
sftp> exit
=========================================================================
登陆sf,或使用下面URL,使用web的功能来完成替换的操作.
https://sourceforge.net/project/admin/svn_migration.php

注意,选择'replace','Destination' 保持空白.
在手册中有对为什么这么设定的说明.

提交之后出现下面这个消息,实际上没那么恐怖,很快.
.........................................................................
Your request for migration has been registered.
Migration will take 1-3 hours, depending on the size of your repository,
and the size of the queue in front of you.
If it still hasn't been created in 24 hours,
please file a Support Request.
.........................................................................

不时的 'Refresh'一下,看看状态.

.........................................................................
Last request for migration is:
Requested by:       trydoforProject Admin
Requested on:       2009-03-13 14:57
Source data type:   SVN dump file archive
Source file:        svndump
Destination:       
Replacement:        Yes
Current status:     COMPLETE

Tries:
Start                  End                    Status
2009-03-13 14:58       2009-03-13 15:04       COMPLETE
.........................................................................

成功之后,通过网页和tortoise可以访问了
http://a9w3.svn.sourceforge.net/viewvc/a9w3/trunk/a9w3/

待 a9w3 完毕之后,开始对付 a9text
唯一的问题是,a9text中出现了非 UTF8的编码,在cvs2svn是报错.
按照提示,增加参数 '--fallback-encoding=GBK'
~/cvs2svn-2.2.0/cvs2svn --fallback-encoding=GBK  --dumpfile=svndump .
一切顺利

不过,唯一不爽的是,trunk有个的 'CVSROOT/',比较不伦不类.
哎,没有办法,SVN不能彻底删除这个目录,而CVS上可以,忍忍吧.

如果早调查一下,就不转成SVN了,万一那天手发抖,提交了个X档案,
还无法删除,多闹心啊.
2
1
分享到:
评论

相关推荐

    从CVS迁移至SVN的两种方法

    【从CVS迁移到SVN的两种方法】 随着版本控制系统的发展,越来越多的团队选择从CVS(Concurrent Versions System)转向SVN(Subversion),因为SVN提供了更强大的功能和更好的用户体验。本教程将详细解释如何使用两...

    SCM&CVS&SVN 学习资料

    【SCM&CVS&SVN 学习资料】 SCM(Software Configuration Management,软件配置管理)是一种在软件开发过程中用于版本控制、变更管理和项目跟踪的工具。它确保了团队在开发过程中的协同工作,避免代码冲突,并提供了...

    CVS迁移SVN工具亲测可用

    对于那些已经积累了大量CVS历史数据的项目,进行从CVS到SVN的迁移是必要的。这个过程可以通过特定的工具来实现,如cvs2svn,这是一个强大的CVS到SVN的数据迁移工具。 **cvs2svn-2.5.0.tar.gz** `cvs2svn` 是一个...

    CVS 2 SVN 指导

    cvs2svn的FAQ涵盖了从单个仓库的迁移到多项目仓库的转换,再到EOL(End-of-Line)翻译问题的处理,以及获取帮助和报告错误的途径。 #### 九、CVSNT仓库的特别注意 尽管一些用户报告了将CVSNT仓库迁移到SVN的成功...

    将cvs转换为svn库的工具cvs2svn

    随着项目的发展,很多团队选择从CVS迁移到SVN,以利用后者的优势。 cvs2svn是一个开源工具,专门设计用来帮助用户平滑地将他们的CVS仓库转换为SVN格式。它能够保留原始CVS历史记录,使得迁移过程中不会丢失任何提交...

    我的cvs2svn笔记

    总的来说,《我的cvs2svn笔记》是一份实用的资源,对那些希望从CVS迁移到SVN的用户来说,具有很高的参考价值。它不仅提供了详细的转换步骤,还有实例演示,使得整个迁移过程更为直观易懂。通过学习这份笔记,用户...

    cvs2svn-2.4.0.tar.gz

    cvs2svn is a program that can be used to migrate a CVS repository to Subversion (otherwise known as "SVN") or git. Documentation: The list of cvs2svn features explains briefly why converting a ...

    CVS和SVN配置学习

    SVN(Subversion)是在CVS的基础上发展起来的,旨在解决CVS的一些问题,如性能、安全性和稳定性。SVN同样采用客户端-服务器模型,但提供了更先进的分支管理和冲突处理机制。它还支持原子提交,保证了数据的一致性。...

    CVS与SVN区别

    CVS(Concurrent Versions System)和SVN(Subversion)都是源代码版本控制系统,用于管理和跟踪文件及目录的变更。它们都属于SCM(Software Configuration Management)工具,但两者之间存在显著的区别。 1. **...

    将CVS库转换为SVN库

    随着版本控制系统的发展与演进,从较早的集中式版本控制系统(如CVS)到更先进的Subversion(SVN),开发者们经常面临将现有CVS仓库迁移到SVN的需求。本文将详细介绍如何在Windows环境下完成这一过程,并给出具体的...

    cvs2svn-2.3.0.tar.gz

    作用:将CVS库转为SVN库,是SVN比较好的一个插件 ...绝对超值:适用从cvs导出数据到svn,消除了中文乱码问题 使用简单:解压后即可使用 注:当时使用的时候费了好大的劲,才整了份全的。现在和大家分享

    清除当前文件夹下的cvs、svn标识

    2. **切换版本控制系统**:当从CVS或SVN迁移到其他系统(如Git)时,需要先清除旧的版本控制信息,以便正确地初始化新的版本库。 3. **备份或共享代码**:在不涉及版本控制的情况下分享代码时,避免将CVS或SVN的元...

    CVS SVN VSS 对比 说明

    再者,SVN的命令行界面和操作方式与CVS相似,降低了学习成本,方便了从CVS迁移的用户。 VSS相比于CVS和SVN,其主要缺点在于对并发编辑的支持不够完善,以及在处理大文件和非文本数据时的不稳定表现。此外,VSS的...

    使用CVS2SVN转换CVS档案库到SVN档案库

    NULL 博文链接:https://zzxanadu.iteye.com/blog/690400

    svn与cvs对比

    ### SVN与CVS对比分析 在软件开发领域,版本控制系统(Version Control System,VCS)是不可或缺的工具,它帮助开发者们追踪代码的变更历史,协同工作,以及管理项目的复杂性。Subversion(简称SVN)和Concurrent ...

    讲解如何将CVS服务器版本库迁移到新的CVS服务器上

    完成CVS服务的安装之后,下一步就是将版本库从旧服务器迁移到新服务器上。 1. **打开CVSNT控制面板**: 在新服务器上通过“开始-&gt;控制面板”找到“CVSNT Server”图标,双击打开。 2. **添加服务器设置**: 在CVSNT...

    利用cvs2svn和svn-importer 将vcs项目转成svn

    NULL 博文链接:https://taotao6086.iteye.com/blog/282262

    CVS团队升级SVN团队的解决方案

    ### CVS团队升级SVN团队的解决...从CVS迁移到SVN是一项复杂但值得的投资,不仅能提升团队的工作效率,还能提高代码的安全性和质量。通过遵循本文档提供的指南,团队可以顺利完成迁移过程,并在未来的工作中受益匪浅。

    删除源码仓库导出时CVS或SVN目录

    从源码仓库刚刚导出来(特别是从网络下载下来),每个目录下都有一个SVN或CVS目录, 我从网络上找到批处理命令,能够删除CVS或SVN目录,请大家试用。

Global site tag (gtag.js) - Google Analytics