SVN

Win7配置SVN详细步骤(服务器和客户端)

下载并安装服务器端SVN

下载地址:http://subversion.apache.org/packages.html根据操作系统下载相应版本(Setup-Subversion).默认安装目录可为: D:\Program Files\Subversion

下载并安装客户端SVN
下载地址: http://tortoisesvn.net/downloads.html 根据操作系统下载相应版本(TortoiseSVN).默认安装目录可为: D:\Program Files\TortoiseSVN

创建SVN
D盘创建文件夹MySVN(可自由命名),打开文件夹à右键TortoiseSvnàCreate Repository Here

修改SVN库配置及新增用户
Repository创建完毕后会在目录下生成若干个文件和文件夹,conf目录是用来设置管理的目录;db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录, 用来追踪存取文件库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。

 

 


打开/conf/目录,

一般情况下,我们将通过验证用户/密码方式来允许客户端的操作。

打开conf文件下的svnserve.conf文件,按图中所标的对12行,20行进行修改(将访问模式设为用户密码访问),相关含义见文件中的说明:

wKioL1RjgEehRI0CAAIVBHtLUwE154.jpg

打开svnserve.conf找到一下两句:
# [general]
# password-db = passwd
去之每行开头的#,其中第二行是指定身份验证的文件名,即passwd文件

同样打开passwd文件,将
# [users]
# harry = harryssecret  
# sally = sallyssecret

Joklin=Joklin

Jal=Jal

开头的空格也要去掉
这几行的开头#字符去掉,这是设置用户,一行一个,存储格式为“用户名 = 密码”,如可插入一行:admin = admin888,即为系统添加一个用户名为admin,密码为admin888的用户

关于authz的分组以及各组权限设定例子:

内部分组:

[groups]

admin=Joklin,Jal

#管理者adminsvn

Non=non

对各个目录进行权限设定

[/]

Joklin=rw

Jal=rw

*=r

 

[/public]

*=rw


启动SVN服务

D:\Program Files\Subversion\bin(SVN服务器端安装目录)文件夹下新建svnSetup.bat,内容为

sc create svnserve binpath= "D:\Program Files\Subversion\bin\svnserve.exe --service -r d:\MySVN" depend= Tcpip start= auto

sc start svnserve

pause

其中: binpathSVN服务器端目录d:\MySVNSVN库目录

运行(或以管理员身份运行),会新创建一个服务名为:svnserver,可通过运行services.msc查看,将其设置自动运行(有时候需要重启电脑)  

安装VS Studio Svn插件
插件主要有两种:

1. VisualSVN(需购买): http://www.visualsvn.com/visualsvn/

2. TortoiseSVN(开源免费,但需先注册才能下载): http://ankhsvn.open.collab.net/

问题

1. 目标机器积极拒绝很大原因是[步骤5]的问题,请先确认是否有svnverver服务存在,并且已自动启动.

 CentOS:

 yum install subversion (SVN服务器)


配合类似花生壳之类的域名软件可实现动态域名远程连接,具体方法为:

1 在花生壳网注册账号

2 在路由器上的动态DNS上登录花生壳账号

3 在路由器的虚拟服务器(或DMZ区)上将你的服务器的IP(内网)设定为DMZ服务器

4 设置端口映射,SVN端口一般为3690,映射外部网络使用3690访问内网时,转接到DMZ服务器即可


创建版本库:
终端输入:svnadmin create [路径]
该路径可以是相对路径,例如,当前在home/user/svn/目录下,输入svnadmin create myproject,则该版本库会被创建在home/user/svn/目录下,新建一个文件夹名为myproject,其中便是版本库的文件了。


将文件导入版本库:
终端输入:svn import [源路径] [目标版本库路径] -m [日志信息]
源路径可以是相对路径,导入时会递归导入源路径下的所有文件和文件夹,目标版本库路径需要绝对目录(反正我试验是这样的),例如版本库的目录是:home/user/svn/myproject/。则应该这样写:file:///home/user/svn/myproject/
例如将当前目录导入版本库myproject:
svn import . file:///home/user/svn/myproject -m "导入文件"
启动:

svnserve -d -r /home/user/svn/myproject -m ‘导入文件’



目录同步:

从版本库导出:
导入后原文件并未被纳入版本管理,若想获得受版本控制的文件,就需要从版本库导出
终端输入:svn co [版本库路径] [导出目标路径]
例如将myproject库中的文件导出到当前目录:svn co file:///home/user/svn/myproject .

#!/bin/sh

export LANG="zh_CN.UTF-8"

svn update /media/htdocs/ --username admin --password admin

如果文件夹是空的,

可以先checkout文件夹,修改post-commit  chmod 755

启动,提交即可

  如果文件夹内有内容

先把文件夹内容复制出来,然后清空文件夹,,接着修改post-commit chmod 755

import被复制的文件,,,checkout到指定文件夹,即可达到同步



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章