SVN配置方法Word文档下载推荐.docx
《SVN配置方法Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《SVN配置方法Word文档下载推荐.docx(15页珍藏版)》请在冰点文库上搜索。
建议你再到控制面板-管理工具-服务中找到SVNService,
右击选择”属性”,
再将其启动类型设置为”自动”
6.
打开c:
你会发现已经多了一些目录和文件,
打开conf子目录,
打开svnserve.conf文件,
这里行前凡是有#的都等于是被注释忽略了,
你可以把#去掉让那一行生效,
或者自己新添加行.
里面的英文注释已经详细说明了各种设置的含义,
最后你设置[general]小节中行前没有#号的内容为:
anon-access=none
auth-access=write
password-db=passwd
含义是:
未验证用户无任何权限
(如果把none修改为read就是给予读权限)
已验证用户给予写权限
(当然也能读)
密码数据存放到passwd文件中
然后打开同目录的passwd文件来设置帐户:
同样,
设置[users]小节中行前没有#号的内容,
例如:
snowman=abc123
用户snowman的密码为abc123
在你需要进行版本控制的目录上右击,
选择TortoiseSVN,
再选择子菜单”导入…”,
设置”文件库url”为svn:
//localhost
点确定后就会提示文件正在导入.(雪人注:
这里是svn文件库与svn服务是同一台计算机的情况,
所以可用localhost,
其它机器如果要访问svn服务,
应该用svn:
//svn服务器的IP地址,
例如svn:
//10.0.0.52)
至此,SVN服务器配置完成
客户端配置:
没安装TortoiseSVN的计算机先安装它并重启计算机.(雪人注:
具体步骤参照前面搭建服务器端的第3步)
创建一个准备用来存放版本控制工程的目录,
例如d:
\project,
然后在”我的电脑”中右击这个目录,
选择”SVN取出…”,
接下来会问你用户名和帐号,
你就填写前面搭建服务器端所设置的用户snowman密码abc123
(文件库url可参照前面搭建服务器端第6步的注解)
点确定后就会提示文件正在取出到d:
\project
至此,SVN客户端配置完成,
你会看到d:
\project及其下面的文件都被标记了绿色对勾
客户端的简单日常使用:
要取得工程的当前的最新版本,
右击d:
选择”SVN更新”
你更改工程后,
要将你的修改更新到SVN,
选择”SVN提交”(谨慎的话请先更新到SVN最新版本后再提交)
其实就是将
svnservice
文件拷贝到你已经装好的TortoiseSVN目录下,然后运行上述的那些命令后(svnservice-install-d-rc:
\svnhome),去控制面板-〉管理工具-〉服务,既可以看到svn的服务了,启动即可
SVN安装与启动服务
2010-02-2211:
25
[转]一、安装
首先下载一个SubVersion,和TortoiseSVN。
前者是svn的服务器端,后者是svn的客户端。
注意服务器端得版本和客户端得版本一定要一致才可以,否则会出现错误:
Error*期望文件系统格式“2”;
发现格式“3”
使用subversion过程中出现Error*期望文件系统格式“2”;
发现格式“3”错误,这是服务器程序subversion和客户端程序TortoiseSVN版本号不一致的。
删除subversion和原有的版本库,用相同的版本重新安装subversion和TortoiseSVN,问题即可解决。
下面我以Subversion1.4.5和TortoiseSVN1.4.5为例
二、建库
找一个地方见一个文件夹,这个文件夹是放你的项目的。
我们把它称为库。
以下以src为例。
然后再这个文件夹上右键,选择Createrepositoryhere或者在命令行里执行D:
\ApplicationSetUp\Subversion\bin>
svnadmincreateE:
\src
命令行要在安装目录中bin文件夹下执行。
三、设置用户名和密码
设置用户名和密码是成员之间修改项目后伤处使用的。
下面我们就来设置一下用户名和密码吧。
在刚才建的库文件夹下的conf文件夹里找到一个叫svnserve.conf的文件。
用一个文本编辑器将它打开。
然后找到##password-db=passwd这行代码。
将这行代码签名的#号全部去掉,并且确保顶格不存在空格。
#表示注释,去掉#和空格表示启用密保文件。
然后再conf文件夹下找到一个叫password的文件,同样用文本编辑器打开,然后看到如下代码:
[users]
#harry=harryssecret
#sally=sallyssecret
这两行是两个用户名和密码,等号前面是用户名,后面是密码,一行是一个用户。
我们可以直接在这下面追加我们自己设置的用户名,也可以把他删除重写。
例如:
jane=123456
spring=789456
写好之后保存就可以了。
四、启动服务
同样是在安装目录下的bin文件下执行D:
svnserve-d-rE:
\src,效果如下
这样服务就启动成功了。
这个命令窗口不可以关,如果关闭的话服务也就关闭了。
这样很不方便,解决的办法就是将服务添加到windows系统服务里面。
具体操作如下:
C:
\>
sccreatesvnbinpath="
D:
\ApplicationSetUp\Subversion\bin\svnserve.exe--service-rc:
\svnroot"
displayname="
SubversionServer"
depend=tcpipstart=auto
运行这一行命令,两个路径分别是svnserve.exe的地址和库的地址,其中svnservcer.exe就是刚才我们启动服务用的那个,所以写那个路径就好了。
start=auto,每次开机自动运行;
想手动的话,netstartsvn或者netstopsvn切换开关。
服务添加成功后结果是:
这样我们的服务就启动成功了,现在把命令窗口关闭也没有关系了。
五、导入项目
找到自己的项目,然后在项目上右键。
Import……,出现如图窗口:
上面的是我要导入的库德地址:
svn:
//ip/库文件夹名称。
建议不要勾选左下角的复选框。
ignored是忽略的意思,比如java的class包他是经常变化的,成员之间没有交换的必要。
就可以将它忽略。
还有一些私人的配置文件之类的。
不然每个人都上传自己的配置文件,导致每个人在每次更新后,系统都跑不动。
直接点击确定就可以上传了。
下面就是每个成员机器上都装上TortoiseSVN,访问服务器上的项目就可以了。
自己建一个存放项目的文件夹,然后右键checkout:
上面的地址是服务器地址。
下面的地址是下载下来存放到哪里,点击ok就可以从服务器上当下来了。
建议每次编辑项目前都update一次,表示得到最新版本。
编辑完之后再commit,这样用svn管理项目就省了非常多的时间。
好了,就写到这里。
希望对大家有帮助。
svn备份和还原
除去最常用的update,checkout,commit等操作,最常见的就是对svn版本库的备份和还原。
备份策略
svn备份一般采用三种方式:
1)svnadmindump
2)svnadminhotcopy
3)svnsync.
注意,svn备份不宜采用普通的文件拷贝方式(除非你备份的时候将库暂停),如copy命令、rsync命令。
笔者曾经用rsync命令来做增量和全量备份,在季度备份检查审计中,发现备份出来的库大部分都不可用,因此最好是用svn本身提供的功能来进行备份。
优缺点分析:
==============
第一种svnadmindump是官方推荐的备份方式,优点是比较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。
缺点是:
如果版本比较大,如版本数增长到数万、数十万,那么dump的过程将非常慢;
备份耗时,恢复更耗时;
不利于快速进行灾难恢复。
个人建议在版本数比较小的情况下使用这种备份方式。
第二种svnadminhotcopy原设计目的估计不是用来备份的,只能进行全量拷贝,不能进行增量备份;
优点是:
备份过程较快,灾难恢复也很快;
如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作。
比较耗费硬盘,需要有较大的硬盘支持(俺的备份机有1TB空间,呵呵)。
第三种svnsync实际上是制作2个镜像库,当一个坏了的时候,可以迅速切换到另一个。
不过,必须svn1.4版本以上才支持这个功能。
当制作成2个镜像库的时候起到双机实时备份的作用;
当作为2个镜像库使用时,没办法做到“想完全抛弃今天的修改恢复到昨晚的样子”;
而当作为普通备份机制每日备份时,操作又较前2种方法麻烦。
备份的命令写道
全备份:
使用svnadmindump或svnadminhotcopy或svnsync来做,
hotcopy:
svnadminhotcopypath/to/repositorypath/to/backup–clean-logs
dump:
svnadmindump版本库路径及名称–revision导出的版本号>
导出的命名
增量备份:
使用svnadmindump的–incremental选项来实现
svnadmindump版本库路径及名称–revision上次导出的版本号:
到本次要导出到的版本号–incremental>
一个技巧:
如果你有一个较大的Subsersion版本库而你又想用最少的空间来将它备份下来,用这个命令(请将/repo替换成你的版本库路径)吧:
svnadmindump–deltas/repo|bzip2|teedump.bz2|md5sum>
dump.md5
分步解释:
最重要的一步是-deltas,将消耗更多的CPU资源,但拥有更有效的差异存储办法。
bzip2压缩方案比gzip慢,但换来的更好的压缩率。
更有趣的是,tee方法将压缩的数据流转向到文件dump.bz2,同时将其输出到标准输出,后者有转向给了MD5摘要计算工具。
还原命令写道
还原版本:
svnadminload要恢复的版本库路径及名称<
我的svn是搭建在windows上的,用visualsvn挺方便,参考网上的bat备份svn的命令,我写了一个备份和还原全部版本库的bat脚本,
备份,需要把脚本放在版本库根目录下运行,例如dumpall.bat,
不指定参数则备份到当前目录下,否则备份到指定目录:
Bat代码
1.@ECHO
OFF
2.SET
DUMPTO_DIR="
."
3.if
not
"
%1"
==
(
4.
echo
Back
up
all
to
%1
5.
SET
DUMPTO_DIR=%1
6.)
7.
8.SET
VAR_DATE=%DATE:
~0,4%%DATE:
~5,2%%DATE:
~8,2%
9.dir
/B
/AD
>
DIRS
10.
11.IF
EXIST
DUMP_FILES
12.
DEL
/Q
DUMP_FILES
13.)
14.FOR
/F
%%i
IN
(DIRS)
DO
15.
REPOS_NAME=%%i
16.
CALL
:
DUMP_REPOS
17.)
18.SET
REPOS_NAME=
19.
20.ECHO.
21.IF
%DUMPTO_DIR%\Repos_%VAR_DATE%.zip
22.
Delete
existing
compressed
dump
file
23.
del
%DUMPTO_DIR%\Repos_%VAR_DATE%.zip
24.)
25.ECHO
Compressing
files...
26.zip
-j
%DUMPTO_DIR%\*.bin
27.
28.ECHO
29.FOR
(DUMP_FILES)
30.
%DUMPTO_DIR%\%%i
31.)
32.
33.DEL
34.DEL
35.SET
DUMPTO_DIR=
36.
37.ECHO
Successed.
38.GOTO
EOF
39.
40.:
====
Functions
====
41.:
42.SET
DUMP_FILE=%REPOS_NAME%.bin
43.ECHO
Dumping
repository
^"
%REPOS_NAME%^"
...
44.svnadmin
-q
%DUMPTO_DIR%/%DUMP_FILE%
45.IF
%errorlevel%==0
46.
ECHO
%DUMP_FILE%
47.)
ELSE
48.
%DUMP_FILE%
49.
Dump
failed.
50.)
51.SET
DUMP_FILE=
52.
53.ECHO.
@ECHOOFF
SETDUMPTO_DIR="
ifnot"
=="
(
echoBackupallto%1
SETDUMPTO_DIR=%1
)
SETVAR_DATE=%DATE:
~8,2%
dir/B/AD>
DIRS
IFEXISTDUMP_FILES(
DEL/QDUMP_FILES
)
FOR/F%%iIN(DIRS)DO(
SETREPOS_NAME=%%i
CALL:
DUMP_REPOS
SETREPOS_NAME=
ECHO.
IFEXIST%DUMPTO_DIR%\Repos_%VAR_DATE%.zip(
echoDeleteexistingcompresseddumpfile
del%DUMPTO_DIR%\Repos_%VAR_DATE%.zip
ECHOCompressingdumpfiles...
zip-j%DUMPTO_DIR%\Repos_%VAR_DATE%.zip%DUMPTO_DIR%\*.bin
ECHODeletedumpfiles...
FOR/F%%iIN(DUMP_FILES)DO(
DEL/Q%DUMPTO_DIR%\%%i
DEL/QDIRS
DEL/QDUMP_FILES
SETDUMPTO_DIR=
ECHOSuccessed.
GOTO:
EOF
====Functions====
SETDUMP_FILE=%REPOS_NAME%.bin
ECHODumpingrepository^"
...
svnadmindump^"
-q>
%DUMPTO_DIR%/%DUMP_FILE%
IF%errorlevel%==0(
ECHO%DUMP_FILE%>
DUMP_FILES
)ELSE(
DEL/Q%DUMP_FILE%
ECHODump^"
failed.
SETDUMP_FILE=
还原:
cd到备份目录,再运行,例如loadall.bat,如果不指定参数,则认为当前目录就是备份的目录,否则从指定目录进行还原。
另外,如果是备份到了压缩包,需要先解压。
1.SET
VAR_IS_EMPTY_DIR=TRUE
2.
3.SET
LOAD_DIR="
;
4.IF
NOT
=="
LOAD_DIR=%1
6.)
8.echo
%LOAD_DIR%
9.
10.SET
VAR_IS_EMPTY_DIR=
11.dir
/A-D
%LOAD_DIR%\*.bin
12.IF
%errorlevel%"
0"
13.
Finded
file.
14.)
Error
Can
find
17.
GOTO
18.)
19.FOR
20.
REPOS_FILE=%%i
21.
LOAD_REPOS
22.)
23.SET
REPOS_FILE=
24.DEL
26.GOTO
27.:
28.:
29.SET
REPOS_NAME=%REPOS_FILE:
~0,-4%
30.mkdir
%REPOS_NAME%
31.ECHO
32.ECHO
Loading
33.svnadmin
create
34.svnadmin
load
%cd%\%REPOS_NAME%
<
%LOAD_DIR%/%REPOS_FILE%
35.IF
37.)
38.
RMDIR
Load
40.)
41.SET
42.ECHO.
SETVAR_IS_EMPTY_DIR=TRUE
SETLOAD_DIR="
IFNOT"
SETLOAD_DIR=%1
echo%LOAD_DIR%
SETVAR_IS_EMPTY_DIR=
dir/B/A-D%LOAD_DIR%\*.bin>
IF"
ECHOFindeddumpfile.
ECHOError:
Cannotfinddumpfile.
DELDUMP_FILES
GOTO:
SETREPOS_FILE=%%i
LOAD_REPOS
SETREPOS_FILE=
SETREPOS_NAME=%REPOS_FILE:
~0,-4%
mkdir%REPOS_NAME%
ECHO%REPOS_NAME%
ECHOLoadingrepository^"
svnadmi