【累积知识】svn版本管理初窥

关于svn版本管理的基本操作如下

源自http://maverick.inria.fr/~Xavier.Decoret/resources/svn/index.html

创建svn database

svnadmin create --fs-type fsfs /home/user/svn

查看svn database的文件列表

svn ls file:///home/user/svn

直接操作svn database内的文件

svn mkdir file:///home/user/svn/foo -m "Created dumb directory"
svn rm file:///home/user/svn/foo -m "Removed dumb directory"

查看svn database的log

svn log file:///home/user/svn

向已存在的svn database内导入文件

svn import ~/project file:///home/user/svn/project/trunk -m "Initial"

将svn database内文件checkout出

svn checkout file:///home/user/svn/project/trunk ~/temp/project

查看文件(夹)checkout下来的info(包括文件版本,路径,URL等信息)

svn info ../rtl/

查看文件(夹)自从checkout下来后做过的更改

svn status ../sim/

对于checkout出的文件夹下面每个子文件夹都会有个.svn文件,这个是特有的,对checkout出的文件可以进行正常操作,但是记得操作之后要用svn 命令进行更改

touch file1 file2
svn add file1 file2
svn rm file1
svn rename file1 file30

将更改上传至svn database

svn commit ../rtl -m "test for commit rtl directory"

将不同版本的svn database进行checkout下来

svn checkout -r 3 file:///home/user/svn  ~/project

查看svn database的相关信息

svnlook youngest /home/user/svn(查看最新版本号,注:这里的是path而不是URL)

改变svn database的位置

svnadmin dump /home/user/svn > /temp/dumpfile.db
svnadmin create --fs-type fsfs /home/user/newsvn
svnadmin load /home/user/newsvn < /temp/dumpfile.db

ok就先来这么多,基本已经够用

同时还发现了一个很好用的命令tree -aC就是可以树状的显示文件目录下的文件

 

补充一个revision 2,这才基本够用,来着

运行svnserve使得可以通过client网络访问

svnserve -d -r svn_path (注:这里的svn_path即是创建的svn repository的路径)

访问svn repository,开启了svnserve之后

svn ls svn://172.20.31.153

从svn repository上面checkout下来的文件进行修改,想恢复到修改之前,checkout后的状态

svn revert filename (注:这里没有-r选项)

比较某两个版本间的不同

svn diff -r R1:R2  filename/path [--summarize] (注:summarize可以笼统的体现出有哪些不同的文件)

显示文件每行的revision 和 author

svn blame filename (注:此处仅可以为file,不能为path)

若开启的svnserve的IP发生变化,改变svn的ip地址

svn switch --relocate svn://pre_ip  svn://now_ip

 

如何创建不同用户的访问权限呢?

首先在svn repository下面的conf/下有svnserve.conf,passwd和authz,svnserve.conf里面都是一些general的设置,需要把注释掉的都打开,passwd就是不同用户的密码信息(明文!),authz就是访问的权限了。按照例子来就可以,需要注意的是,文件的设置,每行的行首不能有空格,不然会报错(有点低智),authz是核心配置权限的文件,可以针对不同的用户组/用户/文件目录,进行权限的设置

当开启了权限控制之后,每个命令都可以加上

--username XXX --password ***

来控制访问权限,ok这样才能叫基本可以用起来了

posted @ 2012-09-07 14:36  poiu_elab  阅读(296)  评论(0编辑  收藏  举报