以下是以前学习SVN的笔记,现在复习一下。(建议使用google code)
vss独占式的,微软的
CVS并发的、不支持目录的,不支持事务。
TFS 微软的,和SVN类似
既要用SVN,也要用Git
(从CVS到SVN的体会是:只要产品还有缺陷,那么就还有发展和改善的空间)
(典型的CS结构)
SVN实际上市SubVersion的缩写
客户端就装TortoiseSVN
往repository里面添加东西也是用 客户端,下面问号的意思可以再setting里面查到。
把文件提交到repository要经过两步(注意此处文件的状态时问号)
此时repository中并没有真正有那个文件,只是告诉repository客户端要添加文件
此时出现:
还需要:
添加成功了
此时服务器端仓库就有了
如果要该文件夹的所有文件全部提交,那么就在空白的地方,点击右键
之后再还是要commit
把工作目录中的某个文件修改过后:
但是发现改错了,你现在需要revert
点OK就行了。
如果修改认为没有问题,就直接把修改后的文件提交就可以了
删除文件的话:
删掉之后,文件夹上出现了:
说明还要提交:
现在才是删除了
把一个新文件夹引入到repository中不用check-in,而用import
export的意思是:
下面这个.svn负责的就是版本控制(每个受到版本控制的文件夹里面都会有.svn)
SVN的版本追溯
可以查看该文件所做的变化,下面的version是指工程的版本
也可以和先前的版本做一个对比:
还原到以前的某个版本:
(实际上SVN每次跟新只保存增量,并且保存的时候,还会进行压缩处理)
repo-browser可以直接浏览到仓库的目录结构
分发模块开发:
那么分支小组就要使用分支branch(分支小组要切换一下)
所有的工作做完了之后,再通过一个分支合并,进行和主线合并
大部分冲突需要手动解决
(每天一到办公室,第一件事儿就是先更新)
如果两人先后提交的是同一文件的不同代码,那么后一个人update的时候,可以自动合并:
虽然合并成功,但是还没有submit,所以还是
需要commit一下。
如果两人修改的是同一文件的,同一代码,那么:
后一个人直接提交肯定是提示out of date。需要先update一下,但是update会提示conflict
图标变成警告
其实r8表示之前的版本、r9,也就是最新的版本表示(先提交那个人已经提交后)从repository中update下来的版本
此时需要比对 mine 和 r9
手动修改 CommonMath.java 之后删除多余文件(window下的删除,不用SVN那个删除),手动commit
SVN的备份
注意:直接拷贝的方式不安全。
其实也可以,先把工作目录update为最新的,然后export就可以了。
(当然你首先要有足够到的权限、某则你只能export你的那一份)
当我操作一个文件的时候,我不希望别人在操作,那么我们可以lock
用完之后记得release
check for modifications
小结:
(这仅仅只是一个入门)
当然还有很多管理工具
亦可以用在线的repository:如 code.google.com