一、安装
切换到root用户:
#yum install subversion
# svnserve --version
出现以下信息表示安装完成:
二、创建一个文件夹来作为svn库
#mkdir /opt/svn/repos1
#svnadmin create /opt/svn/repos1
执行上面语句后在repos1下会出现conf, db,format,hooks, locks, README.txt等文件夹和文件
三、配置
进入conf文件夹,进行配置, 有以下几个文件authz, passwd, svnserve.conf
设置passwd:
[users]
# harry = harryssecret
# sally = sallyssecret
hzb = 123456
gzq = 123456
用户名=密码
这样我们就建立了用户和密码
配置authz:
[/]
hzb = rw
gzq = rw
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = passwd
authz-db = authz # 访问控制文件
realm = /opt/svn/repos1 # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
四、启动svn
#svnserve -d -r /opt/svn/repos1
(1)如果出现Address already in use,可以先把它关掉
查找进程号:
#ps -aux | grep svnserve
通过查找进程号是13851,杀死该进程
#kill -9 13851
然后重新:
#svnserve -d -r /opt/svn/repos1
启动svn
(2)或者换一个端口运行
#svnserve -d -r /opt/svn/repos1 --listen-port 3391
这样同一台服务器可以运行多个svnserver
通过上面4个步骤,就可以在安装了TortoiseSVN客户端的电脑上Checkout出资源了。格式是:svn://192.168.0.111/
然后输入账号和密码就可以成功检出了。
五、基本的操作
1、先add然后再commit,就可以将新资源上传到服务器
2、要提交版本时,先update,如果没冲突再commit
3、冲突的解决办法:
出现冲突时,会多出三个文件
test.php.mine 是自己修改的文件
test.php.3(版本号 ) 都没人修改的文件
test.php.4(服务器的版本号) 是别人提交上去了的修改的文件
再加上原先的test.php,此时的test.php会多出<<< === >>>等符号,需要通过这4个文件,将自己和别人的处理好成为一个文件test.php,然后删除其他三个,再提交就可以了。
例子:
测试.txt.r5 (最先的文件):
测试你妹夫1111111111111111
dfaaflsflsfjkklsfdklj
测试.txt.r6(别人修改的文件):
测试你妹夫1111111111111111
dfaaflsflsfjkklsfdklj
qeerhbv
测试.txt.mine(我修改了的文件):
测试你妹夫1111111111111111
dfaaflsflsfjkklsfdklj
hhh
生理上的费进口量
刘聚奎拉开距离
测试.txt(冲突后的文件):
测试你妹夫1111111111111111
dfaaflsflsfjkklsfdklj
<<<<<<< .mine
hhh
生理上的费进口量
刘聚奎拉开距离
=======
qeerhbv>>>>>>> .r6
所以可以将测试.txt文件合并为:
测试你妹夫1111111111111111
dfaaflsflsfjkklsfdklj
hhh
生理上的费进口量
刘聚奎拉开距离
qeerhbv
再将其余3个文件删除,再提交就可以了。
六、断开svn连接
一种方法是删除每个文件下的svn隐藏文件
另一种是:
先建立一个kill-svn-folders.reg
内容为:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""
find . -type d -name ".svn"|xargs rm -rf
然后双击该文件,成功后,在每一个文件夹上点击右键都会有一个“Delete SVN Folders”的选项,点击之后,既可以删除这个文件下(包括子文件夹)所有的.svn文件夹。
删除完成后,为了避免误操作,不小心把正处于版本管理中的.svn文件夹删除,最好把刚才的注册信息删除。删除方法是,打开注册表(在运行中用regedit命令),找到[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] ,把DeleteSVN这个项删除,即可。
Reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN" /f
保存为.bat的批处理文件,即可自动删除改键值
eclipse编译去除svn文件夹
使用Eclipse编译文件后,classes文件中总是有.svn的文件夹,这些文件没有什么用,而且影响build的速度
"Project->Properties->Java Build Path",右侧的面板中的"Source"选项卡,在Excluded中加入"**/.svn/**",就可以将所有的svn文件排除在编译路径中了。