svn服务器搭建及eclipse中svn插件的使用

本文是我在新浪博客写的原创,现在搬家来csdn。

有些代码按了复制键没有效果,但是其实已经复制到剪贴板上面了,大家请注意哦!
我的文章有时会稍有修改,转载请注明出处哦!

首先介绍一下工具:
subversion: http://subversion.tigris.org/
按首页的packages进入下载页面,找到windows选一个下载,我点了一个 WANdisco ,再选 windows ,download free now ,同意,继续 download free now ,不用注册,直接等下载。
tortoiseSVN:大家去网上找个用着,英文版也无所谓,要用到的单词不多。特别提醒一下,这里的32位和64位是明确区分的,64位机装了32位的软件不报错却没有效果。
subclipse: 这个后面讲解。
安装subversion和tortoiseSVN:
按照一般的软件安装,不多说。
tortoiseSVN安装成功以后右键菜单会多出一下两项:


Subversion安装好后,给他安装成服务:

命令提示符输入:

sc create svnserve binpath= "\"c:\svnserve\svnserve.exe\" --service --root c:\repos" displayname= "Subversion" depend= tcpip start= auto
注意不分行输入完;
一定要注意空格,先把代码放到记事本里调整下,保证没有多余的空格;
注意为了回避目录名中的空格等字符,将整个binpath值放在双引号中;另外,sc 的命令行很特殊。在 key= value 对中,key 与 = 之间不能有空格,但是在 value 之前,必须有空格;
"c:\svnserve\svnserve.exe"  是subversion软件svnserve.exe的所在目录,c:\repos  是你的版本管理的根目录,里面可以放很多个工程,每个工程都有自己的版本号,互不相干,这个目录的所有路径最好不要有空格存在,有的话应该要把路径用双引号引起来并且双引号要转移成 \" ,但是我没有测试过他的正确性。转义的双引号是防止文件名有空格,例如,我的这条语句可以是:
sc create subversion binpath= "F:\x64Editor\uberSVN\bin\svnserve.exe --service --root E:\workspace\svn" displayname= "subversion" depend= tcpip start= auto

我把svnserve写成subversion是为了启动关闭和删除服务都用同一个名字并且与服务那里显示的名字一样。

路径里面没有空格就不用加双引号。请尽量保持路径没有空格及非英文的词语,还有,命令里面的路径还是都已经存在的好。

然后命令提示符:

net start subversion

启动服务。
用:

net stop subversion
关闭服务。
用:
sc delete subversion
删除服务。
 
右键E:\workspace\svn(刚才命令里面的那个,你的svn备份文件的根目录)
=>tortoiseSVN
=>Create repository here
=>OK
打开svn文件,打开conf,现在配置里面的3个文件:
在svn服务配置文件svnserve.conf里面开启下面三项,把前面的#去掉。
注意并且去掉多余的空格,左对齐,否则会出错。
把anon-access的值改成none

anon-access=none
authz-db=authz
password-db=passwd


svnserve.conf详细资料参考下面
svn服务配置文件为版本库目录中的文件conf/svnserve.conf。该文件仅由一个[general]配置段组成。
[general]配置段中配置行格式如下:
<配置项> = <值>
配置项分为以下5项:
anon-access 控制非鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。
即"write"为可读可写,"read"为只读,"none"表示无访问权限。
缺省值:read
auth-access 控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。
即"write"为可读可写,"read"为只读,"none"表示无访问权限。
缺省值:write
password-db 指定用户名口令文件名。除非指定绝对路径,否则文件位置为相对conf
目录的相对路径。
缺省值:passwd
authz-db 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
除非指定绝对路径,否则文件位置为相对conf目录的相对路径。
缺省值:authz


realm 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的
认证域相同,建议使用相同的用户名口令数据文件。
缺省值:一个UUID(Universal Unique IDentifier,全局唯一标示)。


【说明】版本库认证域
在使用svn客户端访问svnserve服务器时,若需要用户登录,则提示信息如下:
[root@test root]# svn list svn://192.168.3.45/test
Authentication realm: 0d545a49-4038-0410-99b4-c66dc73f754e
Password for 'root': 
在上述第2行"Authentication realm: "之后显示的字符串为认证域名称。如果在配置文件中为设定认证域,就会提示一个UUID,如上述所示。
如果在配置文件中指定了如下配置项:
realm = test
将在svn客户端提示如下:
[root@test root]# svn list svn://192.168.3.45/test
Authentication realm: test
Password for 'root':
例1:svn服务配置文件conf/svnserve.conf的内容如下:
[general]
anon-access = none
auth-access = write
password-db = ../../conf/passwd
authz-db = ../../conf/authz
realm = test
上述配置文件设定非鉴权用户无权限访问该版本库;鉴权用户可对版本库进行读写;用户名口令文件为相对版本库conf目录的文件"../../conf/passwd";权限配置文件为相对版本库conf目录的文件"../../conf/authz";版本库的认证域为"test"。


2.、用户名口令文件


用户名口令文件由svnserve.conf的配置项password-db指定,缺省为conf目录中的passwd。该文件仅由一个[users]配置段组成。
[users]配置段的配置行格式如下:
<用户名> = <口令>
注意:配置行中的口令为未经过任何处理的明文。
例2:用户名口令文件conf/passwd的内容如下:
[users]
admin = admin
thinker = 123456
ad=123


该文件中配置了两个用户,用户名分别为"admin"和"thinker"。其中"admin"用户的口令为"admin";"thinker"用户的口令为"123456"、"ad"用户的口令为"123"。



3、权限配置文件
权限配置文件由svnserve.conf的配置项authz-db指定,缺省为conf目录中的authz。该配置文件由一个[groups]配置段和若干个版本库路径权限段组成。
[groups]配置段中配置行格式如下:
<用户组> = <用户列表>
用户列表由若干个用户组或用户名构成,用户组或用户名之间用逗号","分隔,引用用户组时要使用前缀"@"(如:引用用户组"all"要使用字符串"@all")。
版本库路径权限段的段名格式如下:
[<版本库名>:<路径>]
如版本库abc路径/tmp的版本库路径权限段的段名为"[abc:/tmp]"。
可省略段名中的版本库名。若省略版本库名,则该版本库路径权限段对所有版本库中相同路径的访问控制都有效。如:段名为"[/tmp]"的版本库路径权限段设置了所有引用该权限配置文件的版本库中目录"/tmp"的访问权限。
版本库路径权限段中配置行格式有如下三种:
<用户名> = <权限>
<用户组> = <权限>
* = <权限>
其中,"*"表示任何用户;权限的取值范围为''、'r'和'rw',''表示对该版本库路径无任何权限,'r'表示具有只读权限,'rw'表示有读写权限。
注意:每行配置只能配置单个用户或用户组。
例3:权限配置文件conf/authz的内容如下:
[groups]
g_admin = admin,thinker
[admintools:/]
@g_admin = rw
* =
[test:/home/thinker]
thinker = rw
* = r
在上述配置文件中,定义了一个用户组"g_admin",该用户组包含用户"admin"和"thinker"。然后定义了2个版本库路径权限段。其中,版本库"admintools"只有用户组"g_admin"可读写,其他用户无任何权限;版本库"test"中路径"/home/thinker"只有用户"thinker"有读写权限,其他用户只有可读权限。
[groups]
g_admin=ad
[/]
@g_admin=rw
在上述配置文件中,定义了一个用户组"g_admin",用户组包含用户"ad" 并且给予的权限是rw既可以读取也可以写。
各位初学的可以先把 [test:/home/thinker] 配置成下面所说的 [/] ,以后明白了再扩展。
我的passwd文件配置是:
[users]
# harry = harryssecret
# sally = sallyssecret
admin = 123456
 
authz文件是:
[groups]
admins = admin
 
[/]
@admins = rw


现在打开eclipse,安装subclipse。
打开eclipse=>help=>eclipse marketplace=>输入subclipse,自己看着办。
然后安装,重启省略。
Window=>show view=>other=>svn资源库=>右键空白=>新建=>资源库位置,本机的输入
svn://127.0.0.1
不用端口号,提示输入账号密码,输入刚才设置的 admin 和 123456 。
账号密码可以选择记住,但是一定要一次过正确,否则要删除文件来撤销。
重置办法:
Window,preferences,team,svn,右边的 svn接口,Client,
如果是用的JavaHL, 找到以下目录并删除目录下的文件.
C:"Documents and Settings"\[YourUserName]"Application Data"\Subversion"\aut
Win7的话在C:\Users\Administrator\AppData\Roaming\Subversion\auth
可以搜索svn.simple得到
如果你用的SVNKit, 找到以下目录并删除.keyring文件.
[eclipse_home]"configuration"\org.eclipse.core.runtime
 
接着展开资源看是什么也没有的,接着就要同步工程了。
右键工程 demo11-01 ,team,share project,使用已有资源位置(如果没有则选创建,跟上面的新建类似),一路next,打开新的视图后,右键 demo11-01,提交就行了(他会自动级联提交),如果有某些文件不想提交,例如build和数据库的配置文件,则右键该文件,添加至svn:ignore。提交后,svn资源库也有相应的更新。
 
接着就是导入工程:在另一台电脑上打开eclipse,安装插件,先试着连接,打开svn资源库视图,右键空白,新建,资源库位置,这里用 svn://192.168.1.2 ,如果不行的话,就是没有启动服务,可以先关了服务器服务:
net stop subversion
再cmd启动服务
D:\mysvn\svnserve.exe -d -r 资源库地址
这是利用运行文件临时启动服务,窗体关了服务就没有了,用这个在另一台机上尝试成功以后可以关了窗口,服务停止了,再打开一开始关了的服务,一般就可以了。
这是本机连接成功,局域网连接不成功的一个解决方法,够奇怪的。
 
打开资源以后,回到eclipse上面的菜单栏,file,new,从svn检出项目(貌似自动下载的是中文版,真是爽啊,感谢eclipse,感谢大家神马的),使用现有资源位置,选中资源,next,选中项目文件夹,一路默认,然后等一下,工程就导入好了。至于工程的具体操作本人还没有研究,就搭好了开发环境,下面有几篇文章是参考文献,大家可以去看看,有很多操作方法,本文也是参考这几篇的,而且有很多东西这里也没有。

题目:svn入门及配置使用(多平台) 转载自:博客园 作者:陈阿弟
原文:http://www.cnblogs.com/chencidi/archive/2010/12/13/1904795.html(貌似不是原文)
 
题目:eclipse下svn subclipse插件 转载自:博客园 作者:陈阿弟
原文:http://www.cnblogs.com/chencidi/archive/2010/12/13/1904781.html
 
题目:svnserve配置 转载自:百度空间 作者:Rich.Lee
原文:http://hi.baidu.com/artgou/blog/item/b9c9d3cb9b71bef352664fa8.html(貌似不是原著)
 
题目:eclipse svn修改用户名和密码 转载自:网易博客 作者:lovemitter
原文:http://lovemitter.blog.163.com/blog/static/1657981342010101910934207/(貌似不是原著)
PS:也可以搜索C盘的svn.simple得到目录(这是从另一篇不知道哪里来的博文得到的)

题目:SVN客户端连接的时候报服务端连接不上的错误 转载自:百度空间 作者:知识储备

http://hi.baidu.com/%D6%AA%CA%B6%B4%A2%B1%B8/blog/item/27d4a5031119477e3912bb87.html

你可能感兴趣的:(svn,eclipse)