目前软件代码管理十分混乱,有时我2天前写的代码,2天后就不记得改了哪些地方。必须要有版本管理,因此就学学SVN,不知道git和svn是什么关系。貌似git要更好用,但目前我对代码版本管理没有多少概念,这边也都是SVN,那就先看SVN。
参考的书籍为:
《Version Control with Subversion》
本文目前仅包含基本概念,及常用命令
1:svn工作方式
repository上存放各个版本的代码。多个客户可以对它进行读和写。
(1)将repository上的最新版本从版本库中取出(check out),
(2)对文件和目录进行修改,
分为file changes和tree changes。file changes表示你要修改已存在的文件,直接用文本编辑器修改。
tree changes的操作包括:添加删除文件/文件夹,复制文件/文件夹,重命名文件/文件夹等,这类修改要用到svn命令。
(3)修改好后,使用svn update命令进行更新,需要更新的原因是:多个人同时在修改该代码,在提交自己的修改前,先将它更新到最新的版本。
(4)更新好后用svn commit命令提交。
在各个部分又包含其他的一些操作,比如“取消修改”(rollback),在update时,可能会有冲突。
svn是支持多人同时修改代码的,采用的方式是:copy-modify-merge
copy:即check out,从版本库中取出最新版本的代码,复制到本地,这份复制叫做working copy,在各个目录下都有一个.svn目录。
modify:修改本地的working copy,这时修改并没有提交到版本库中
merge:在update时,由于其他人也在修改,因此版本库中最新的代码,与working copy中自己的代码不一致,update就试图将它们进行合并,有可能产生冲突(如两人修改了同一文件中的同一行)。
2:常用命令
svn import dir svn_url 将目录的内容导入到svn_url中,即版本库中。
svn checkout svn_url/dir 将版本库中某一个目录的最新版本导出到本地,这样便形成一个working copy
修改相关的命令:
svn add dir
svn delete dir
svn copy dir1 dir2
svn move dir1 dir2
svn mkdir dir
svn revert filename
svn update 更新
svn commit 提交
svn status 状态查看
svn diff 以diff的形式输出所做的修改
svn log 查看修改日志
svn list 列出版本库目录中的文件
阅读(1801) | 评论(0) | 转发(0) |