项目经理们开会,据说明年开始中兴为了节省开销打算停用ClearCase和ClearQuest(代码版本控制和进度BUG跟踪的东西),早烦死了CC和CQ这两个垃圾玩意儿,开始还觉得有点高兴。结果我项目经理给我下了个任务我就高兴不起来了:让我准备开发一个代码版本控制!!先让我出设计方案,首先要实现基本的代码签入,签出,版本比较,更新,锁定,版本浏览功能。同志们,不用说什么为什么不用CVS,VSS这类,我也问了的啊,项目经理说IT部老大不让用,那我还能说什么呢?现在初步想到的技术问题是:
1、版本比较,这个我完全没有思路,不知从何下手;我哪里知道一个文件到底对应什么版本啊?即时去比较是肯定不行的,太慢了。
2、队列控制,如果不做队列控制,I/O瓶颈会导致读写失败(并发数量高时),但是队列控制之后那个速度又是惨不忍睹的
3、事务处理,也是完全没有思路其他还有些可能还没考虑到,各位大大帮忙想想,还有些什么需要注意的以及怎么做比较好。另:我估计这个项目最后的结果肯定是下马,但是项目经理下了任务下来不做又不行啊。

解决方案 »

  1.   

    帮忙看看这个吧
    http://community.csdn.net/Expert/topic/4333/4333138.xml?temp=.1714746
      

  2.   

    日,有CVS,VSS不用.自己开发一个,晕倒~
    兄弟,你打算用C#吗?
      

  3.   

    cvs不是开源的吗?你可以看看源码阿
      

  4.   

    开源,正好,研究研究,对自己的提高啊,能出来,最好,不能作出来,也是学习啊。
    我正想说,找机会,剖析一下CC和CQ呢?既然有开源的,那不用那么烦的去反汇编CC、CQ了,毕竟现在不是DOS时代那会儿那么小个头的软件
      

  5.   

    问题是CVS和SVN是C写的啊,兄弟我是做应用开发的,哪里啃得动CVS,SVN这些玩意儿?哪里可能会有C#写的版本控制程序啊,哎。
      

  6.   

    你把VSS,或CVS的接口库拿来自己用,自己重画个界面,霍霍,everything is ok.
      

  7.   

    BS你们经理====CSDN 小助手 V2.0 2005年10月16日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/10/16/504620.aspx
    下载:http://szlawbook.com/csdnv2/csdnv2.rar为神六喝彩,向所有科技工作者致敬!
    拒绝日货。
      

  8.   

    其实这个算小儿科了,我们老大更牛P,他说看起WINDOWS不爽,叫我们用LINUX的内核改一个和WINDOWS那样操作方便,使用简单的LINUX出来,名字就叫 E-Linxu !
         现在的人都牛P,我只会C#,请高手支招怎么写?
      

  9.   

    说说怎么解决吧!骂了也没什么用.楼主去研究研究C语言写的再来做不是一样.我个人认为C#比C要更容易开发的.呵呵
      

  10.   

    C#有获取版本信息的FileVersionInfo myFileVersionInfo1 = FileVersionInfo.GetVersionInfo("D:\\TEST.DLL");
    textBox1.Text="版本号: " + myFileVersionInfo1.FileVersion;也许这句话对你有点作用
      

  11.   

    http://dev.csdn.net/article/50/50922.shtm
      

  12.   

    谢谢楼上的兄弟,但是那是没用的,应该是只有DLL文件才有版本属性的,一般的文件是没有版本信息的。
      

  13.   

    不能为每个文件都设一个TAG,做个标记,最后用数据库存储这些标记,与新标记相比,不同的就表示有更新了.
    不知可行否?我没做过软件开发项目.
      

  14.   

    不考虑差异,冲突,版本合并等问题,把每个版本都作为一个blob保存。
      

  15.   

    我想的也是需要在文件上作标记TAG,但是这个标记要怎么做呢?
    我想过文件的摘要信息中有个文件版本属性,不知道利用这个属性来记录会不会有问题。因为是要做一个基本的版本控制,所以采用锁定方式,也就没有什么差异,冲突,版本,分支这些问题了。
      

  16.   

    本人觉得看你如何与开发工具集成!其他的问题不是太大,但你会花太多的时间测试!不过如果你使用象vss之类的基本框架和组建那就另当别论了!
      

  17.   

    我用过cvs的,其实很简单,它在你的每个文件夹下添加一个隐藏文件,用来记录当前目录下的所有文件的版本号。然后服务器上也有个同样的东西,当你修改了本地文件的时候,本地文件的版本号和服务器上就不一样了,这样在cvs里就会看到有修改的痕迹,也就可以commit或update了。鄙人愚见
      

  18.   

    其实如果项目不是特别大,不是属于那种外包开发的需要,cvs还是不错的,唯一的缺陷的每一次的修改或添加动作没有一个特别的list编号。(可能我没发现吧)如果不嫌麻烦,可以用perforce.
      

  19.   

    简单,找些开源的工程,然后设计好,慢慢做做它个三年五载,到时候这个项目自然不了了之但是楼主你的技术得到了锻炼,然后再炒掉boss :)
      

  20.   

    有了做CVS的功力,到哪里找不到工作啊,绝对能找到更好的么 :)
      

  21.   

    看了xrye_ryan(叶祥润) 说的,回想一下CVS好像确实是他每个目录下建立了一个隐含目录,里面包含了一些文件,应该就是保存的版本信息等。
    嗯,谢谢。还有些其他问题我继续思考下
      

  22.   

    兄弟同情你啊
    我用过scc,在它控制的项目各目录都有个vssver.scc文件
    我想这个是控制版本和一些信息的文件。不对勿怪。
      

  23.   

    楼主中兴的?
    我想问一下,中兴用.net主要做什么开发?是你们产品相关的?
    还是辅助生产管理的?-比如erp的外挂或者现场系统?
      

  24.   

    嗯,现在有些思路了。应该实现一个简单的版本控制应该还是可以做出来,只是那玩意儿做出来我可不想承担任何责任,哪天出个BUG,所有人的代码丢了,别找我负责就是了……中兴用.Net做自己的ERP系统的。
      

  25.   

    服务端的可以采用数据库来做,客户端的可以考虑用配置文件来保存版本信息或者桌面数据库,就象acdsee一样不允许多人同时签出同一文件事务处理用分布式事务呵呵。随便想的
      

  26.   

    还没有做过什么大项目,.Net做的东西,也不知稳不稳定?
      

  27.   

    MD5 签名算法可比较文件异同.bug管理可以使用bugfree, 版本管理开源工具很多.个人认为.Net比较适合于企业应用,并不适合于通用的应用程序开发,特别是对性能要求比较高的场合
      

  28.   

    就是啊,office2003中不也有一个sharepoint吗?直接用不是更好,而且也没有必要写啊
      

  29.   

    去sourceforge找开源项目吧,一个人搞不出这么个东西的
      

  30.   

    http://www.cnblogs.com/davidullua/archive/2005/10/19/257606.html
      

  31.   

    如果用数据库存版本信息的话, 还是像CVS那样用文件纪录来的好. 移植性
      

  32.   

    你把VSS,或CVS的接口库拿来自己用,自己重画个界面,霍霍,everything is ok.=============
    这个操作起来,实际,选过了这关再说,后头有空再作“升级”,
      

  33.   

    我想用VSS for .net的源代碼管理工具但是找不到在哪裡下載誰有給我一個好麼先謝過了!!!
    E-mail:[email protected]
    QQ    :33890361
    msn   :[email protected]
      

  34.   

    还是自己开发一种语言,在开发一个OS平台,在开发一个run time 平台,干脆硬件也自己搞一套,统统搞,瞎搞,怕啥,把谁搞死了到最后就知道了,支持瞎搞现在没有很牛的事务服务,可以在这上下功夫瞎搞,完后你可以搞一个super Ibm + 微硬搞吧,呵呵
      

  35.   

    看看JBuilder的代码历史记录是怎么做的,它可以记录你所改动的历史记录,主要用来比较你所改动的代码。呵呵……
      

  36.   

    如果能写出来的话,可以去MCIROSOFT,MICROSOFT会请你的。
    兄弟,好好努力吧。
      

  37.   

    有好几种可能
    1.老板是故意为难你
    2.公司为了省钱但是老板们不明白现在软件中版本控制的状况
    版本控制工具很关键,如果有失误,那么对里面的程序源码就会受影响,甚至
    灾难性丢失现在市面上已经有现成成熟的工具可以使用,就像楼主的CC,CQ,为什么要重复
    发明车轮,而且堂堂一个牛中兴,会用员工自主开发的工具去做代码控管?
    这点很想不通。
    如果真的出问题了,老板再醒悟那就迟了~~只是我个人的看法,有不当之处望
      

  38.   

    http://csharp-source.net/open-source/source-control
    供参考
      

  39.   

    对每个文件进行管理就可以了,建议用Xml存储版本信息吧.
    用System.IO.FileSystemWatcher来监测文件是否被更改.再对相应的xml文件进行修改.
    至于版本信息,你可以自己定义一套自己的规则就可以了.想一下应该不难的.
    还要用到的,估计主要就是网络间传输文件的问题了.
      

  40.   

    Rational系列的license实在是贵,买不起啊