subversion 学习 一

一些命令行操作:

check out

svn checkout http://svn.example.com/repos/calc

 

commit

svn commit button.c –m “Fixed a typo in button.c”

 

update

到工作副本目录

svn update

 

commit 操作具有原子性

 

全局版本号概念:即版本号是针对整个工作目录来说,而不是某个 file ,比如,你 checkout 了当前的副本,版本号是 4

calc/Makefile :4

       botton.c :4

       integer.c:4

当你对 botton.c 做了修改,在 commit ,这时候版本库就建立了版本号 5 ,而你本地的工作副本则是:

calc/Makefile :4

       botton.c :5

       integer.c:4

这时候,如果另一个人也做了 commit ,这时候版本库建立版本号 6 的版本,如果之后你 update ,你本地的工作副本就会变成:

calc/Makefile :6

       botton.c :6

       integer.c:6

但实际上如 Makefile 4 5 6 中没有区别

 

所有工作副本(本地)和 svn 版本库中文件的更新关系,是记录在本地的 .svn 文件夹中

包括两项关键信息:

1.      作为工作文件的基准版本(叫做文件的工作版本)

2.      本地副本最近一次被版本库更新的时间戳

有了这些信息与版本库通信后,可以知道文件处在哪种状态:

1.      未修改且当前

2.      本地已修改且当前

3.      本地未修改但过时

4.      本地已修改且过时     必须先 svn update ,合并之后, svn commit 才会成功

svn status 命令可以查看文件状态

 

SVN 的一个重要原则,“ push ”和“ pull ”的分隔,即 commit 的时候,只是 commit (被修改文件),只有 update 才能导致本地(那些未修改但过时)的更新

 

将新文件 ( 未版本化 ) 导入 repository 2 中命令: svn import svn add

svn import :

 

#svnadmin create /var/sv/new repos

#svn import mytree file:///var/svn/repos/some/project   -m “Initial import”

 

导入后,查看:

#svn list file:///var/svn/repos/some/project

 

注意:导入后原来的目录 并没有变成工作目录,仍需要 checkout 一个工作副本

 

 

版本库布局

这是自由的,推荐一种, trunk 目录 保存开发的主线 branches 目录 存放分支拷贝, tags 目录保存标签拷贝。

Eg

#svn list file:///var/svn/repos

/trunk

/branches

/tags

 

常用的工作命令:

1.      更新

svn update

2.      修改

svn add

svn import

svn delete

svn copy

svn move

 

3.      检查修改

svn status

svn diff

 

4.      取消修改

svn revert

5.      解决冲突

svn update

svn resolve

6.      提交

svn commit

猜你喜欢

转载自patrick002.iteye.com/blog/1100796