`
yueguangyuan
  • 浏览: 332981 次
  • 性别: Icon_minigender_1
  • 来自: 新加坡
社区版块
存档分类
最新评论

CVS从Windows上移植到Linux上的问题

阅读更多

     老板决定将CVS服务器从旧有的的WindowsServer上移到Linux上,原因是用户太多,而且服务器还中毒了,速度非常慢,并且随时有数据丢失的风险。
     主要的操作不是我做的,服务器是Redhat AS,大体上是安装一个CVSServer,然后新建一个新的repository,然后把原有的东西拷贝过去。
     这里面就遇到了http://www.blogjava.net/sean/archive/2007/04/14/110640.html上面提到的问题,这些问题都是出现在Windows用户上,使用Linux就没有这问题 ,小开心一下:P。就是原本Binary的文件都变成了ACSII-kkv,这样会导致Windows用户无法识别这些文件的问题,比如jar文件和图片文件。还有就是原来Windows用户的路径格式都有错了。

     路径的问题,没办法,Eclipse的CVS上并没有提供修改checkout代码的地方,估计修改一些后台的文件可行,但是没有试验。只是一些使用乌龟CVS的人改改配置就可以直接checkout了。用EclipseCVS就有点麻烦,因为原来使用的反斜杠、大小写不加区分和中文文件名的路径都会出问题,索性都要重新checkout出来。
     比较麻烦的是码制的问题,如果重新checkout下来的代码,windows上eclipse根本无法识别,必须用Binary格式替换掉,这样就会比较麻烦。于是想到将服务器上文件删除掉,但是服务器上的文件实际上是包含版本信息的一些记录文件,都是一",V"结尾的文件,被删除以后,所有的CVS upadate都会出现问题,因为服务器认为这个文件已经处于锁定状态,会报没有权限的问题,说是什么#cvs.lock文件存在。这下可是麻烦了,到服务器上怎么都找不到这个锁文件。然后去网上搜索,很多人都说把这个锁文件删除,但是找不到怎么删除呢?通过查询也多了解了一些CVS的机制,一般每个操作都会先创建一个主锁cvs.lock,然后进行操作,之后还包含了很多锁操作,具体可以参考网上的CVS文档,还有中文的。没办法,郁闷了很久。
      结果我联系到那篇帖子的主人 Sean Gao,得到了答案:将服务器上码制有问题的文件都删除掉,然后更新本地文件,可以更新了,更新以后相当于把本地文件都删除。接下来将服务器上需要修改的路径修改权限为770,然后将本地加上正确的文件,再提交,搞定。

    在此特别感谢Sean Gao。www.blogjava.net/sean


    在这个问题解决之后又出现新的问题,就是Windows用户访问起来超级慢(而我用Linux访问的速度那就是爽就一个字),特别是提交的时候,速度简直令人难以忍受,网上也有很多人遇到这个问题,但是没有人提出好的解决办法,有人说可能和Windows上的流量监控软件或者反病毒软件的使用有关系,请问有人知道这个问题怎么解决吗?

    1个月后终于发现了解决办法:Windows上的防火墙是罪魁祸首,解决很简单,使用CVS的时候关掉防火墙,速度估计以百倍计!

 

     所以在这里给这次Linux CVS移植总结一下:

     1.强烈推荐将CVS安装到Linux上,无毒、速度快,毕竟是在Unix上诞生的东西,自然是亲生的好(最典型的例子就是ruby),我这里刚好有一个简单的统计数字:原来我在服务器(RHAS)上checkout Windows上的代码需要2分钟,现在是Linux对Linux,只需要10秒,同样Windows系统checkout也一样是飞快。

     2.权限管理灵活,在Windows上我们只知道使用系统帐号来控制权限,一直没找到其他办法,不知道谁知道其他方法,而Linux上CVS是专门的帐号,更安全,权限更好控制。

     3.Linux CVS管理略微比Windows上麻烦,尤其是锁文件的问题,上面已经给出了一些解决办法

     4.Windows防火墙的问题,很多时候Windows防火墙都是Win与Linux交流的一道巨大屏障,经常想着点就好。

     5.这点有点不一样,是我以前的问题,就是CVS服务器上文件夹命名尽量使用英文,而且不要加空格,这个对于Linux用户来说很熟悉,但是对于配制管理员来说就不一定是那么回事了,所以如果你看到CVS服务器的文件夹有问题,坚决地址这种低级错误,否则出了问题损失巨大(我们Linux的服务器就无法定位到WIn上中文乱码和带空格的文件夹)

   

分享到:
评论

相关推荐

    cvsnt-client-2.5.05.3489.msi

    CVSNT是目前在Windows平台上构建CVS服务器最方便的工具,操作简单,以Windows服务程序的形式运行。目前CVSNT已被移植到其它平台如Linux上。

    GNU/Linux编程指南(第二版)中文版含光盘

    第5章 创建可移植的自配置软件 第6章 比较和合并源代码文件 第7章 使用RCS和CVS控制版本 第8章 调试 第9章 出错处理 第10章 使用库 第2部分 输入、输出、文件和目录 第11章 输入和输出 第12章 文件和目录操作 第3...

    mingw-get-inst-20111118

    而像 cvs(svn) 源代码版本控制工具可以让世界上任何一个角落的人都可以参与到软件项目中来。 关于 MFC,微软基础库类,这个随 VC++ 携带的一个源代码公开的开发包,和其他 Windows 程序开发包是一样的。如果有 VC++ ...

    coreutils —对GNU coreutils的跨平台Rust重写-Rust开发

    许多GNU,Linux和其他实用程序都很出色,并且过去显然已经花费了一些努力将它们移植到Windows。 但是,这些项目要么很旧,要么被废弃,要么托管在CVS上,要么用特定于平台的C编写,等等。Rust提供了一种与平台无关的...

    RXTX:这是 arduino 项目中的副本,但移回 javax.comm

    2012-01-08 RXTX 的这个分支修补了上游源以引入以下修复: 支持 linux ttyACM* 设备减少延迟(感谢 ) 在具有某些特定硬件(蓝牙)配置的 Windows 机器上列出更快的端口(感谢)升级源代码使用命令从 CVS 中检查它 ...

    GNU coreutils 的跨平台 Rust 重写

    许多 GNU、Linux 和其他实用程序都很有用,而且显然过去已经花费了一些精力将它们移植到 Windows。然而,这些项目要么陈旧且废弃,要么托管在 CVS 上(这使得新贡献者更难为它们做出贡献),要么使用特定于平台的 C ...

    335SadHab

    许多GNU,Linux和其他实用程序都很有用,并且过去显然已经花费了将它们移植到Windows。 但是,这些项目要么已过时,要么被遗弃,托管在CVS上(这使得新的贡献者更难以为其贡献力量),使用特定于平台的C语言编写或...

    eclipse 开发c/c++

    接着,将归档文件解压到临时目录中,从临时目录将所有插件目录内容都移到 Eclipse plugins 子目录。还需要将 features 目录内容移到 Eclipse features 子目录中。现在,重新启动 Eclipse。Eclipse 再次启动之后, ...

    SVN使用手册中文版快速入门

    转化CVS版本库到Subversion B. 故障解决 共同问题 使用Subversion的问题 每当我尝试访问版本库,我的Subversion客户端挂起。 每当我尝试运行svn,它告诉我工作拷贝已经锁定。 我在查找和打开版本库时得到错误,而我...

    使用Subversion进行版本控制(针对 Subversion 1.4)

    迁移CVS版本库到Subversion C. WebDAV和自动版本 什么是WebDAV ? 自动版本化 客户端交互性 独立的 WebDAV 应用程序 Microsoft Office,Dreamweaver,Photoshop Cadaver,DAV 浏览器 文件浏览器 WebDAV 扩展 ...

    SVN使用手册中文版.chm

    转化CVS版本库到Subversion B. 故障解决 共同问题 使用Subversion的问题 每当我尝试访问版本库,我的Subversion客户端挂起。 每当我尝试运行svn,它告诉我工作拷贝已经锁定。 我在查找和打开版本库时得到错误,而我...

Global site tag (gtag.js) - Google Analytics