`
yueguangyuan
  • 浏览: 336885 次
  • 性别: 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上中文乱码和带空格的文件夹)

   

分享到:
评论

相关推荐

    Eclipse中CVS的使用

    - 如果某个版本出现问题,可以轻松地通过CVS回溯到之前的版本。 - Eclipse支持查看每个版本的具体变更记录,帮助定位问题根源。 综上所述,CVS作为一款成熟的版本控制系统,在Eclipse集成开发环境中发挥着重要...

    imx6系列处理器移植Qt5.6过程详细说明

    本文将详细介绍如何将Qt5.6移植到imx6系列处理器上,主要包括imx6q和imx6sx两个型号。这一过程涉及开发环境的搭建、所需工具的介绍以及具体的移植步骤。Qt5作为一款跨平台的应用程序开发框架,在嵌入式领域应用广泛...

    cvsnt-2.5.03.2382.msi服务器端

    虽然CVSNT主要是为Windows设计的,但其兼容性可能也包括与Linux系统交互的能力,如通过网络协议连接到Linux上的CVS仓库。 压缩包中的"说明.txt"文件很可能包含了关于如何安装、配置和使用CVSNT服务器的详细步骤,...

    Linux下的编辑器与开发工具.pdf

    Perl具有跨平台的特性,可以在Unix、Linux、Windows等多种操作系统上运行。Perl社区活跃,全球有大量Perl程序员,他们共享资源并通过CPAN(Comprehensive Perl Archive Network)站点进行交流。CPAN拥有大量的Perl...

    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...

    Virtual CVS Filesystem-开源

    这种设计使得VCFS具有更好的移植性和兼容性,可以在支持NFS的多种操作系统上运行,包括Linux、Unix变种以及可能支持NFS的Windows系统。 当与现有的CVS服务器结合使用时,VCFS能够无缝集成到各种开发环境中,例如与...

    WINCVS经典经验总结

    - 客户端通常需要安装WinCvs,这是一个专为Windows设计的图形化CVS客户端。 #### 2.2 CVS软件 - 服务器端安装CVS服务程序,如CVSNT。 - 客户端安装WinCvs或其它支持CVS的IDE,如Eclipse。 #### 2.3 安装和设置...

    CVSTrac_Admin_1.0.0.0.pdf

    - **CVS/CVSNT**: CVS是并行版本控制系统,CVSNT是CVS在Windows下的移植版本。 - **CVSTrac/CVSTracNT**: 分别是CVS的配套任务管理和错误追踪工具及其在Windows下的移植版本。 - **CVS仓库与模块**: 仓库是指存储...

    CVSTrac管理员手册

    - **CVSTrac/CVSTracNT**:CVSTrac为CVS提供任务管理与错误追踪,CVSTracNT是其Windows移植版。 - **CVS仓库与模块**:仓库是存储文件数据的地方,模块对应仓库内的子目录。 - **CVSTrac数据库**:使用SQLite数据库...

    VisualBoyAdvance-1.7.2.zip

    这个版本的源码不仅可以在Linux操作系统下进行编译,而且还包括了Windows开发环境的相关文件,为开发者提供了跨平台的移植可能性。 首先,我们来了解VisualBoyAdvance的核心功能。作为一个GBA模拟器,它的主要任务...

    mingw-get-inst-20111118

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

    CVSTrac用户手册

    CVSTracNT:CVSTrac的Windows移植版本 CVSTracNT是专门为Windows平台优化的CVSTrac版本,它保留了CVSTrac的所有核心功能,同时解决了在Windows环境下可能遇到的兼容性和性能问题,使得在Windows系统上的使用更加...

    wxWidgets开发教程pdf

    * 1997年,Windows和GTK+的移植版整合并放入了CVS档案库。 wxWidgets的应用: * GUI开发:wxWidgets提供了大量实用的类和函数,方便开发者快速构建GUI程序。 * 跨平台开发:wxWidgets允许开发者使用C++语言编写...

Global site tag (gtag.js) - Google Analytics