[计算机]SVN配置和使用
www.laoluit.com java技术交流
跟老卢学Svn的安装和配置
步骤:
1. 安装svn1.4.5-setup.exe 假设你安装在:C:\Program Files\Subversion目录下。
2. 建立资源库:可以打开命令窗口,输入svnadmin create D:\svnroot,目录自己定。
3. 配置资源库:进入D:\svnroot 的目录,你会看到conf目录,进入该目录,你
会看到svnserver.conf和passwd, authz三个文件.
对两个文件作如下修改:
svnserve.conf
[general]
### These options control access to the repository for unauthenticated ### and authenticated users. Valid values are "write", "read", ### and "none". The sample settings below are the defaults. anon-access = none
auth-access = write
### The password-db option controls the location of the password ### database file. Unless you specify a path starting with a /, ### the file's location is relative to the directory containing ### this configuration file.
### If SASL is enabled (see below), this file will NOT be used. ### Uncomment the line below to use the default password file. password-db = passwd
### The authz-db option controls the location of the authorization ### rules for path-based access control. Unless you specify a path ### starting with a /, the file's location is relative to the the ### directory containing this file. If you don't specify an ### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file. authz-db = authz
### This option specifies the authentication realm of the repository. ### If two repositories have the same authentication realm, they should ### have the same password database, and vice versa. The default realm ### is repository's uuid.
###realm = repos
注意:前面不能有空格,否则会出错
含义是:
anon-access = none 是匿名用户不能访问,必须要有用户名和密码。
未验证用户无任何权限 (如果把none修改为read就是给予读权限)
已验证用户给予写权限 (当然也能读)
密码数据存放到passwd文件中
www.laoluit.com java技术交流 如果默认所有帐户都具有全部权限,则不要把#authz-db = authz前的#去掉,否则要进入E:\svn\doc\conf下的authz文件为每个帐户设定权限。 修改passwd 文件如下:
[users]
harry = harryssecret
sally = sallyssecret
laolu=laolu
注意最后passwd中的配置,一个用户一行,如:laolu=laolu表示用户名为laolu,密码为laolu的一个用户。
修改authz文件如下:(#:表示注释该行)
authz文件:
[groups]
harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe
[/]
harry = rw
# &joe = r
# * =
在authz文件中:
[groups]
harry_and_sally = harry,sally,xzy //表示在“harry_and_sally”组里的些用户
[/] //代表根目录下所有的资源,如果要限定资源,可以加上子目录即可。
@harry_and_sally = rw //表示这个组里用户的权限为可读可写
* = r //这句的意思是除了上一行所说的用户,其他的用户都只能读文件;也可不写
4.启动subversion服务
两种方式启动:
(1).DOS命令方式:svnserve -d -r D:\svnroot默认端口是3690,如果不幸这个端口被别别的程序暂用,可以通过选项 --
listem --port=绑定端口. (注意:如果使用这种方式,DOS窗口不能关闭) (2)最好的方式就是让 Subversion 做为一个服务来运行,我们可以通过一个第三方的工具 SVNService 让 Subversion 以 Windows 服务的方式运行. 下载SVNService.zip并把它解压到svn的安装目录的bin目录下, 如C:\subversion\bin目录下,
通过在dos下运行命令
svnservice -install -d -r d:\svnroot\,
执行的结果显示:SVNService installed. 这时候你可以在服务控制台中看到名为SVNService的服务,启动它就可以了.
要卸载SVNService服务,只需要运行 SVNService -remove 即可。 至此,Subversion已经安装成功
Svn使用:
SVN客户端subclipse(subclipse是作为eclipse的插件site-1.2.1)在myeclipse
www.laoluit.com java技术交流 上安装好svn的插件
打开myeclipse,选中你要右键点击项目,选择team—>share project,svn,Create a new repository location在
url里输入svn://资源服务器IP/资源保存文件/ 例如:svn://192.168.1.1/svnroot/webproject 接下来一直NEXT即可
你也可以用客户端的TortoiseSVN来访问刚刚配置的服务器了,url格式: svn://ip地址/Repository名,这里是:svn://127.0.0.1/svn/repos. 客户端的简单日常操作:
要取得当前的最新版本,SVN updated.
要修改更新到SVN,选择SVN submit即可
特别注意点:每次应先更新到最新版本,然后再修改提交
SVN数据库的导入导出
在机房安装好svn,使用过程中会保存很多数据到svn库中,而咱们的机房电脑C盘写了保护,重新启动电脑后,安装的svn服务器和上传的数据库就都没了,下次上机要又要用怎么办,如下:
每次下课下机前,使用svn的dump命令对svn数据库进行备份,下次安装好svn服务器,直接导入备份文件就可以了。
svnadmin可以指定某些版本号导出,默认是全库导出。
导入数据库命令:
svnadmin dump e:\svnroot > e:\hrsvn.dumpbak
运行完成后,在E盘下会生成hrsvn.dumpbak的备份文件,拷贝这个文件到你的U盘,下次上机时,把它再拷贝到电脑的e盘,然后执行导入数据库命令:
导入dump文件使用svnadmin load命令来完成,用法如下: svnadmin load path < dumpfile svnadmin load之前需要用svnadmin create建立好版本库 例如:
Svnadmin load e:\svnroot < e:\hrsvn.dumpbak
执行完成后,会有提示如下图:
www.laoluit.com java技术交流
myeclipse svn 修改用户名和密码
由于在svn的界面中并没有为我们提供直接更换用户名密码的地方,所以一旦我们需要更换用户名的就需要自己想一些办法。
解决方案:
在Eclipse使用SVN的过程中大多数人往往习惯把访问SVN的用户名密码自动保存起来
以便下次自动使用,不要再次手工输入,但是有些时候需要变更密码或者用
www.laoluit.com java技术交流 户名,
这时候怎么办,在网上查找后发现如下方法:
1. 查看你的Eclipse中使用的是什么SVN Interface windows > preference > Team > SVN #SVN Interface
2. 如果是用的JavaHL, 找到以下目录并删除auth目录.
C:"Documents and Settings"[YourUserName]"Application Data"Subversion"
(注意:如果找不到这个文件,说明它被隐藏了,通过工具菜单—文件夹选项中的查看隐藏文件方式可以显示出来)
3. 如果你用的SVNKit, 找到以下目录并删除.keyring文件.
[eclipse]"configuration"org.eclipse.core.runtime
主要有两种方法,一种是删除SVN客户端的账号配置文件;另外一种就是去SVN服务端将账号设置成不可用。
具体步骤:
1、通过删除SVN客户端的账号配置文件
(1)找到我们使用的客户端配置文件,在window xp下面他们的位置在系统盘的 Documents and Settings\alex\Application Data\Subversion\auth\文件夹中,把里面的所有文件删除。(alex为操作系统的登陆用户名称,如adminstror)
(2)使用SVN更新或提交,使得客户端与服务端进行通讯,这样就会SVN客户端就要求我们输入新的用户名密码,输入我们的用户名密码就可以替换掉旧的用户名密码。
2、通过修改SVN服务端账号配置文件,这部分需要SVN的管理员配合
(1)找到服务端账号配置文件,这个文件位于SVN服务器的安装路径 config文件夹,打开并编辑passwd文件,删除或注释需要被替换的账
号
(2)在客户端使用SVN更新或提交,使得客户端与服务端进行通讯,这样就会SVN客户端就要求我们输入新的用户名密码,输入我们的用户
名密码就可以替换掉旧的用户名密码。
-----------------------------------------------------------
www.laoluit.com java技术交流 最近研究使用SVN来同步工作机器和个人笔记本之间的文档
,最先尝试的是google code服务,客户端用的是常见的TortoiseSVN,在使用过
程中遇到一个问题,经过搜索最终解决。现在把问题与解决思路记在这里备
查。
在第一次使用TortoiseSVN从服务器CheckOut的时候,会要求输入用户名和密码,这时输入框下面有个选项是保存认证信息,如果选了这个选项
,那么以后就不用每次都输入一遍用户名密码了。
不过,如果后来在服务器端修改了用户名密码,则再次检出时就会出错,而且这个客户端很弱智,出错之后不会自动跳出用户名密码输入框让
人更新,我找了半天也没找到修改这个用户名密码的地方。
最终,找到两种解决办法:
办法一:在TortoiseSVN的设置对话框中,选择“已保存数据”,在“认证数据”那一行点击“清除”按钮,清楚保存的认证数据,再检出的时
候就会重新跳出用户名密码输入框。
如果方法一不起作用,则可以采用方法二:
Tortoise的用户名密码等认证信息都是缓存在客户端文件系统的这个目录:
C:\Documents and Settings\Administrator\Application Data\Subversion\auth
删除auth下面的所有文件夹,重新连接远程服务器进行检出,对话框就会出现~