现在的位置: 首页 > 综合 > 正文

SVN使用中的经验浅谈

2013年09月05日 ⁄ 综合 ⁄ 共 2103字 ⁄ 字号 评论关闭

    上一篇博客简单讲了在合作开发项目时使用SVN的准备工作,而这篇博客则重点在使用中的规范也好,注意事项也好或者使用规则也好.简单说一下使用他的小小经验!



          在合作开发项目开始前,贾琳师哥向我们提出了使用SVN的规范,如下:

SVN要求(非常重要):

1、程序需定期编译通过后上传SVN,每天可上传多次,根据个人程序开发进度决定,但每天晚下班前必须将当天的程序编译调试通过并上传SVN。

2、每天早上上班首先需要更新SVN最新版本。

3、在程序中添加页面、删除页面及修改页面命名时,需要先更新全部程序特别是解决方案文件,然后再做添加或者删除页面以及修改页面名称,做完这类操作后需立刻上传SVN,以免造成解决方案冲突.

 

以下文件不允许提交到SVN上,应在本地通过SVN客户端添加到忽略列表中。

  1、解决方案的suo文件

  2、工程的bin文件夹和obj文

 

    第一次看了,没有太大的重视,可是在使用中,我们出现了,版本没有说明,合作之间出现了冲突,自己开发的模块影响了其他人的模块等等问题.回过头来再看这些内容,感觉都是非常重要的.下边我一一为大家解说并完善一下细节!

 

          首先来说,在公司我们都是合作开发的,而且SVN在公司的使用非常普遍,就算不是我上篇讲的软件,也是非常类似的版本管理软件,都是大同小异的.使用SVN我们就将自己假设到公司成员的角度,来看一切问题.


          ,程序定期编译通过后上传SVN,也就是我们上传的服务器的程序必须能正常运行,不要因为自己修改模块,使整个程序瘫痪,影响大家的工作.     上传SVN服务器时,我们需要按照步骤:



     为什么明天晚上要必须将编译通过的程序上传呢?

     1,因为在公司,首先可以让项目经理知道自己每天都在干活,并了解自己的进度;

     2,其次可以很好避免我们没有备份好,丢失的情况;

     3,再者可以避免由于我们修改过多,如果出现冲突难于解决冲突的情况!

 

          二,每天早上更新最新版本,这个是保证我们可以在最新版本上修改,也是可以避免出现冲突的有效方法之一!


          三,第三点非常重要,意思也就是在做添加页面、删除页面及修改页面命名时,需要我们先更新解决方案,然后再做上述操作,然后马上上传。记得一定要马上


             这是为什么呢?这就涉及到一个扩展名为.csproj文件,先看一下百科:

     C#项目文件的扩展名,它是“C SharpProject”的缩写。.net开发环境中建立项目时,会产生 .csproj文件,这是C#的工程文件,其中记录了与工程有关的相关信息,例如包含的文件,程序的版本,所生成的文件的类型和位置的信息等。

 

        也就是说一个工程就一个.csproj文件,因为虽然我们在合作开发时分工明确,各自负责各自的模块,但是当我们做上边提到的几种操作时,都会修改此文件。如果期间两个人都进行了此操作,上传时,后一个上传的人就会出现冲突,也就必须解决冲突,这是见比较麻烦的事。而我们先更新,再修改,然后马上上传,就是为了保证发成冲突的几率为最低。

 

   四,.suo文件,.bin文件,.obj文件为什么不上传呢?先看下这几个文件的作用:

         

          1,suo(solution user options)是一种文件的格式。*.suo解决方案用户选项,记录所有将与解决方案建立关联的选项,以便在每次打开时,它都包含用户所做的自定义设置。VS布局包括:监视器1234的变量列表、断点标记及开关状态、输出窗口错误窗口等的分布及其悬浮状态,还有项目卸载状态标记。

        也就说.suo文件时记录用户对解决方案一些设置,方便下次打开更符合用户的习惯呢。当然,如果删除,在打开解决方案是,就会重新建立,只不过哪些记录的断点哈,各种窗口的布置没有了。所以这个文件我们不用上传.Suo文件,在本地生成即可。


         2binobj文件,我么看一下他里边的文件:

            obj文件中也都是一些Dll文件,而这些Dll文件都是我们用项目生成的,



    也就说这两个文件中的内容,我们都可以通过解决方案来生成,当然就不用上传了,我们下载解决到本地,直接生成就可以在本地产生这两个文件夹。

 

          这样大家就明白为什么不用上传这三个文件了吧。下边对于上边提到的冲突,我想说一下解决冲突的方法:

       假如两个人出现了冲突,证明你们同时修改了同一个或多个文件了,这样就必须牺牲一个人的成果,把另一个人的成果上传服务器为最新版本(通过协商)。当然那个牺牲的并不说找不到了,首先,他可以提前保留备份,能更新到最新版本时,再修改,再上传。当然我们可以找到SVN中的任何一个版本,下载下来进行修改,或者看以前的功能。下边就是我们的版本更新,红色框为没有添加日志的,这样我们看就不知道此版本是改过什么的。


    虽然冲突可以解决,但是能避免尽量避免,毕竟还是比较麻烦的。

 

    综上为使用SVN的经验浅谈,主要是根基贾琳师哥给的SVN规范,进行阐述。有什么问题还请指出,多多交流!

抱歉!评论已关闭.