转自:
http://blog.csdn.net/studyvcmfc/archive/2009/09/07/4528896.aspx 您是否有过这样子的经验, 在编修档案的过程中, 尤其是在撰写程式档, 突然改烂了, 而想说: 如果我有办法知道刚才改了什么地方有多好! 或是在一份大作业或者是专案的情况下, 须要多个人一同改一份档案, 总须事先说好谁要改哪个档案, 改的时候别人都不能动, 以免在存档的时候被互相覆盖. 有这么苦吗?! 事实上这些工作,都可以交给一套完善的版本控制系统(Version Control System)来解决.接下来要介绍的这套系统名做[subversion] , subversion透过一个集中管理的档案库(repository),记录下每一次的更动,于是您可以取得每一次修改的纪录,甚至还可以多个人一起改, subversion会负责把两个人的修正合并起来! 安装Subversion首先您须要在您所要工作的机器上安装Subversion 这套系统. 若您的机器上已经安装好了, 您可以跳过这一步.
若您使用其他的系统,请参考 http://subversion.tigris.org/project_packages.html .目前Subversion能在许多的作业系统上面执行. checkout对于每一个专案,通常会有一个专属的档案库.若您不打算自行架设,您可以至 https://opensvn.csie.org 申请一个. 首先您需要从档案库中取一份资料至目前目录下.您需要使用 `svn checkout档案库路径[目的地路径]` ,例如说: ~$ svn checkout http://OpenSVN.csie.org/demo 这时svn会自动建立一个目录, 若无指定`目的地路径` 的话则会以档案库路径最一个目路为准(以上例来说是demo) , svn 将会作用在这个目录底下. 一般操作有两个重要的指令, 分别是svn update , 用来将档案库中的版本和本地端同步(例如说有别人已经修正并上传了) ; 另一个是svn status , 可以看到本地端更动尚未上传的情况. 若您尚不了解这是做什么的并没有关系, 接下来就会看到范例. 加入档案svn add若要增加新的档案进来, 请透过`svn add <file name>`, 例如说我现在开始撰写newfile.c: ~/demo$ vim newfile.c # 开始编辑newfile.c 若要在这底下开新的目录, 请透过`svn mkdir <dir name>` , 或是先开好目录, 再透过`svn add <dir name>` 亦可. 修改这时, 我可以针对我手上这一份档案进行修改, 在我进行上传(commit)前, 别人并不会看到这个更动, 所以并不用担心我修正错误时, 别人会无法使用. ~/demo$ vim integer.c # 修改integer.c commit一旦修改到一个断落或完成时(若是在程式开发的情况下, 通常都是在至少可以顺利compile 过时)需要下commit 这个指令, 将我本地端的修改送回档案库; 而在每次commit 的时候, 可以顺便附带一个讯息, 表示这次commit 时修正了什么地方, 以方便之后在找寻的时候, 除了透过时间及作者外, 还能有一些其他的资讯. 我们称这个讯息为commit log , 建议最好要填写, 就算是只有一行五六个字, 也胜于什么都没有写. 若您的commit log 只有一行, 可以直接透过-m "<your commit log>" 加在commit 后面, 如: ~/demo$ svn commit -m "fix bug"
或是直接用svn commit , 这时它会自动跳出一个编辑器让您输入. 接着会看到像是这样的画面: Sending newfile.c 表示完成, 此时在别的地方进行svn update 时, 就会含有刚才您更新的资讯. 总结透过Subversion 进行开发的流程: 1.只有第一次的时候须要进行svn checkout , 之后请从2. 起即可 svn checkout <repository url>
2.假设有其他人在之间有进行修正, 所以先svn update 更新到最新的版本 svn update
3.进行修正 4.再同步一次 svn update
(这时可以再用svn status 观看一下目前的结果, 以及可以透过svn diff 观看修正内容. 这将在后文介绍) 5.若有问题则回3 再进行修正. 要不然确认后, 上传自己的修正 svn commit |
SVN commit,update用法[转]
最新推荐文章于 2024-09-10 19:37:47 发布