SVN使用的一些心得(菜鸟级)

来源:互联网 发布:手机淘宝代卖 编辑:程序博客网 时间:2024/06/06 05:18

用了几周svn终于有了一点点心得,写下来与急于用又懒的看文档的同僚共勉。

个人觉得SVN是团队协作的开始,以前写程序总觉得一个小点的软件是没法两个人同时写的,因为这样根本没法进行调试。记得跟一个同学讨论过他自己开发的一个一万多行的小程序的时候他说过:“程序一万多行,都是自己写的(有点多或者说有点牛),但这种程序也只能自己写。”因为自己也开发过一些不大不小的程序,所以对这句话是深有同感,但这种同感在认识SVN后可以终结了。

从刚开始用的时候,确实觉得很不好用,因为并没有很认真的去读文档,所以经常会出现冲突之类的,但是partners又力挺SVN,一方面他们用过比较熟悉,一方面用久了就知道其中的方便之处,而这种方面是没经过系统的训练与熟悉就开始用SVN的菜鸟不能理解的。

SVN用于版本控制,将服务器上的制定目录checkout到本机的某个目录下,本机修改,然后上传到服务器,传到服务器的好处就是一个人的工作,可以给整个团队共享。每一次修改版本号就加1,通过版本号来确定在进行更新或者提交操作的时候改或者不改哪些内容。如果工程的模块划分的很好,分工很明确,确实svn可以很方便的实现团队的协作,个人负责自己的模块,却可以组成一个完整的应用程序进行调试,这应该就是SVN存在的意义。

更新:根据我的理解,每次本机上的更新操作会将本机上版本号小的替换成服务器上版本号较大的,存在一种情况就是比如距离上次更新已经有段时间,自己在自己的模块上已经做了较多修改,即有很多带红底叹号的文件,进行更新更新,这时情况是:本机和服务器上的版本号相同但是本机上的是已经修改过的,相当于版本号要高,只是由于没有提交到服务器的原因,版本号未加1,这种情况下,这些带叹号的文件不会被替换成服务器上的,这是刚开始我一直很担心的情况。

添加或者删除新文件:添加或者删除新文件需要通过TorToiseSVN来进行,尤其是添加文件或者重命名文件(相当于删除一个文件,加入一个文件)。将带问号的文件编程带加号的文件,这是进行提交会在服务器上将这些文件加入SVN目录。

冲突: 记得刚开始使用SVN的时候是将上的目录checkout到本机,然后拷贝需要的文件到工程目录下,修改完成后再拷贝到本机的svn目录,然后提交,结果导致的问题就是常常冲突,产生让人最不爽的黄底的叹号。SVN冲突产生的原因在于,如果将SVN上的目录同时checkout到了本机的两个或者多个目录下,或者是将本机的一个svn目录拷贝到另外一个地反进行编辑,而编辑完后又回到原来的目录下去提交到服务器,简单的说就是相当于在两个目录下都进行了对同一个版本的更新,其中的一个提交之后,另外一个将出现冲突。这是可以通过比对文件,组合一个真正最新的出来才可以解决问题。从这里也可以看出分工明确的重要性,如果两个人同时对一个文件进行了编辑,则容易产生冲突,因此分工也是团队协作的基础。

将SVN上的目录checkout下来后,将其中的某个文件夹拷贝至本机的任意目录下均可以实现版本控制。这就方便了这种情况,一个工程是挂在SVN上的,另外一个是本地的,本地的工程需要用到服务器的工程中的某个目录,本来以往的做法是拷贝到本地工程的目录下,然后编辑调试完再拷贝至本机SVN的目录,然后更新。后来尝试了一下,直接将需要的子目录的全部内容包括.svn文件拷贝到本地工程的子目录下,因为拷贝的时候带有.svn文件,因此相当于有了版本控制,这样直接进行编辑后就可以直接提交了。如果本地的工程会有些是svn上没有的,这是拷过来的.svn中不包含这些文件的版本信息,这些原有的文件会显示一个蓝底的问号,在提交时不勾上即可只提交那些svn上原有的文件。

出现了一些问题,只要理解了其中的机制,修正的方法有很多。刚开始用的是很,总是出现问题,然后找partner来搞,经常这样都有点不好意思了。