Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

绿色网站无广告
会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux培训 > » 正文

SVN简易向导linux.

来源: fuaotech 分享至:
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 以及被老总在安装上 我只参与配置部分
测试svn是否安装成功svnamin --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/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


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史