SVN简易引导linux
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
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