SVN简易向导linux.

SVN简易向导
----网上参考文档(不好意思 网址当时搞忘了 对不起提供参考资料的这位仁兄)
越来越多的感受到Linux的方便和强大,现在是svn继续带来这种感觉。猛然觉得过去多年的程序员生涯,没有接触Linux是多么封闭。
这是一个简易的向导,是我初次使用和体验的总结。全面的学习应参考比如: O'Reilly出版的<<Version control with Subversion>> - http://svnbook.red-bean.com/。
向导里的例子,在/home/qianjiang/下建立一个svn为目录名的知识仓库,并在该仓库下面建立一个work的项目。
安装subversion
  一般系统已经带了,否则就安装一下,比如Ubuntu下面:
  sudo apt-get install subversion
创建知识仓库(Repository)
  cd /home/qianjiang
  svnadmin create svn
载入项目  cd /home/qianjiang
  svn import -m "work project: first import" work file:///home/qianjiang/svn/work
  这样/home/qianjiang/work目录下的文件都被载入到知识仓库下面的work项目里面。
查看知识仓库
  svn ls file:///home/qianjiang/svn
  即查看本地硬盘/home/qianjiang/svn目录里的知识仓库。

  如果要通过另外一台机器访问,需要运行svnserve以支持client的网络访问。
    cd /home/qianjiang
    svnserve -d -r svn
  这时,可通过网路上的另外一台机器,运行:
    svn ls svn://192.168.100.49/

访问权限
  在知识仓库,这里是/home/qianjiang/svn,下面的conf/svnserve.conf
  其中:
      anon-access = read  //表示匿名可读
      auth-access = write //表示认证用户可写
      password-db = passwd //用户和密码所在文件
  /home/qianjiang/conf/passwd里面,我加上了:
      qianjiang = mypassword

Check out(获得项目的一个本地拷贝)
  比如: svn checkout svn://192.168.100.49/work
  如果是要之前的某个版本:
  svn checkout -r 5 svn://192.168.100.49/work

Check in/Commit (提交修改)
  比如,在本地 svn commit
  或者指定文件:
  svn ci -m "Set ejtag to 12 MHz to make it more stable ..." bin/reflash

Update from Repository
  svn up
  或回到之前某个版本
  svn update -r R [filename]

查看修改状态
  svn st

查看文件修改的内容
  svn diff filename
  如果要比较不同版本
  svn diff -r R1:R2 [filename]

恢复到修改前的内容
  svn revert filename

查看文件历史
  svn log filename

帮助
  svn help
  svn help st 等

删除svn相关的文件
  svn export dir_contain_svn_files  to_dir
  这样会删除dir_contain_svn_files目录下的所有.svn目录等

增加文件或目录
  svn add FILENAME/DIR
  这样就加入到本地的working copy中,commit之后会加入到Repository.
  如果要取消,可以使用svn revert

显示指定文件每行的author和revision
  svn blame filename

比较两个版本之间的差异
svn diff -r r3:r30 --summarize

注: 曾经遇到过这样的问题,重启机器后
    运行svn ls svn://localhost
    提示: svn: can't connect to host "localhost":connection refused
    执行: cd /home/qianjiang
         svnserve -d -r svn即恢复
    大概,因为重启后svnserve读取的权限文件设置不允许访问。

    另外一个问题是运行,svnserve -d -r svn不成功,提示svnserve正在运行,需要kill
    ps -ef | grep svnserve找到svnserve的pid
    kill svnserve-pid
 
一个常用命令简述链接
https://www.forge.funambol.org/scdocs/ddUsingSVN_command-line#workwithrep

如果svn server的ip发生变化,如果不想重新check out,可以运行:
svn switch,如:
svn switch --relocate svn://172.16.0.49 svn://192.168.100.49

svn diff -r r93:r102 --summarize //取得两个版本之间改动的文件和增加的文件

svn st --no-ignore  //查看状态,包括库文件




本人实现
Svn 以及被老总在安装上 我只参与配置部分
(12.29改 换内网服务器 自己配置了一次)
安装 用yum
yum -y install svnversion
[root@localhost jishubu]# yum -y install subversion
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
^[[A^[[A * base: mirrors.163.com
* extras: mirrors.163.com
* updates: centos.ustc.edu.cn
^[[BSetting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package subversion.i386 0:1.6.11-7.el5_6.4 set to be updated
--> Processing Dependency: perl(URI) >= 1.17 for package: subversion
--> Running transaction check
---> Package perl-URI.noarch 0:1.35-3 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================================================================================================================================================
Package                                          Arch                                         Version                                                  Repository                                  Size
=========================================================================================================================================================================================================
Installing:
subversion                                       i386                                         1.6.11-7.el5_6.4                                         base                                       3.1 M
Installing for dependencies:
perl-URI                                         noarch                                       1.35-3                                                   base                                       116 k

Transaction Summary
=========================================================================================================================================================================================================
Install       2 Package(s)
Upgrade       0 Package(s)

Total download size: 3.3 M
Downloading Packages:
(1/2): perl-URI-1.35-3.noarch.rpm                                                                                                                                                 | 116 kB     00:00    
(2/2): subversion-1.6.11-7.el5_6.4.i386.rpm                                                                                                                                       | 3.1 MB     00:04    
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                    637 kB/s | 3.3 MB     00:05    
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : perl-URI                                                                                                    1/2
  Installing     : subversion                                                                                                  2/2
Installed:
  subversion.i386 0:1.6.11-7.el5_6.4                          

Dependency Installed:
  perl-URI.noarch 0:1.35-3                                  

Complete!

测试svn是否安装成功svnadmin --version
Svn 启动后主要是3个命令 svnadmin svnserve svn(svnadmin help)(svnserv --help)(svn help)
配置开始
首先给svn创建组和用户,以root登录
groupadd svn
useradd svnroot -g svn
passwd svnroot
输入密码 *******
建立目录
mkdir  /home/svnroot/repository1
1 建立知识仓库 test1
svnadmin create /home/svnroot/repository1/test1
如果有多个的话
svnadmin create /home/svnroot/repository1/test2
授予权限 chmod 700 /home/svnroot/repository1
本地测试导入服务器代码 svn import /data0/htdocs/FAJxc/Css file:///home/svnroot/repository1/test1 -m "init"
本地测试访问svn ls file:///home/svnroot/repository1/test1/
建立每个知识库的时候都会有配置文件来控制对知识库的访问 默认在知识库的conf/svnserver.conf文件里
vi /home/svnroot/repository1/test1/conf/svnserve.conf
killall svnserve
svnserve -d -r repository1 --listen-port 243
本地测试svn ls svn://127.0.0.1:243/test1
外网访问 svn://53.39.98.3:243/test1
svn:// 53.39.98.3:243/test2
-d 后台 –r 根目录 --listen-prot 监听端口
查看进程pid    ps -aux |grep svnserve

在知识仓库的conf/svnserve.conf
  其中:
      anon-access = read  //表示匿名可读
      auth-access = write //表示认证用户可写
      password-db = passwd //用户和密码所在文件
修改密码passwd配置文件
vi /home/svnroot/repository1/test1/conf/passwd
username = password

Linxu切换svn用户 svnroot登录 密码fuaotech
开始没权限 然后切换到root用户下给svnroot用户赋权限
chown -R svnroot:svn /home/svnroot/repository1/
然后再切换svnroot用户登录
svnadmin create /home/svnroot/repository1/test2

你可能感兴趣的:(linux,subversion,团队协作,svn安装,项目协作)