Chinaunix首页 | 论坛 | 博客
  • 博客访问: 253464
  • 博文数量: 44
  • 博客积分: 1052
  • 博客等级: 少尉
  • 技术积分: 742
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-17 16:51
文章分类

全部博文(44)

文章存档

2013年(7)

2012年(14)

2011年(23)

分类: LINUX

2012-12-02 10:57:21


    目前软件代码管理十分混乱,有时我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) |
给主人留下些什么吧!~~