SVN设置权限,密码

电脑换了64位系统,重新装了很多软件,换了个tortoiseSVN才发现不用密码凭证可以登录并检出。原来设置了需要凭证才可以提交的。我发现SVN的手册好难看。网上找了一下资料。也比较零散。后来找到,总结如下:

\conf\下有三个文件。

authz:权限文件

passwd:用户密码文件

svnserve.conf:配置文件

修改版本库中\conf\svnserve.conf,把相关设置为以下:

anon-access = none
auth-access = write

意思是匿名用户没有权限,认证用户有写权限。

如果要设置密码的话。在passwd输入形如:

user=password

格式的就可以了。

修改后保存,不需重启SVN。直接生效

巧妙自动清除svn

用svn进行版本控制很方便。有时候我们想清除其中的svn信息,如果版本控制软件出错的话,不能直接用“导出”功能。

这里有个简单的办法(谢谢小熊同学提供的)。把一下代码存成一个bat批处理文件。然后把包含有svn信息的文件夹直接拖到这个脚本下运行即可。

@echo off
REM AUTHOR:http://crazyphper.com
if "%1"=="" (
goto error
) else (
goto action %1
)

:error
echo.
echo 直接将要清空svn的文件夹拖到此文件上,请先备份.
echo.
pause
goto end

:action %1
echo ————————————————————————–
echo 本次操作将删除 [%1] 文件夹下所有的svn标记,请慎重操作!
echo Y 清理文件夹
echo N 退出
echo —————————————————————————
choice /c YN /m 请选择菜单(按ctrl+c或N退出):

if %errorlevel% equ 2 goto end
echo 正在清理文件夹:%1
echo 请稍候…
for /r %1 %%a in (.) do @if exist "%%a\.svn" rd /s /q "%%a\.svn"
echo 清理完毕!
echo 按任意键退出…
pause>echo.

:end
exit

或点击这里下载源码文件,下载后改后缀.txt为.bat

SVN 服务器端简要配置步骤和常见问题解决

又重新配了一次SVN服务器,我把过程和遇到的错误及解决办法记录下来。

过程简化为6步:

  1. 安装Subversion:我装的是Setup-Subversion-1.6.4.msi
  2. 建立版本库:开始->运行->cmd->进入SVN服务端的安装目录下面的bin目录,试用create命令建立版本库,如: svnadmin create E:\svn\doc
  3. 开启服务: svnserve.exe –daemon –root E:\svn\doc svnserve 将会在端口 3690 等待请求 –daemon(两个短横线)选项告诉 svnserve 以守护进程方式运行,这样在手动终止之前不会退出。注意不要关闭命令行窗口,关闭窗口会把 svnserve 停止。 –root设置根目录,也可不用这个命令可以存在一个批处理文件中,设置为计划任务,每次开机启动,这样就启动服务了。或者使用windows服务注册,这里不说明,自己找资料。
  4. 设置密码和权限:(1)打开E:\svn\doc\conf下的svnserve.conf,把#password-db = passwd前的#去掉,注意不要留空格,否则会报错;如果默认所有帐户都具有全部权限,则不要把#authz-db = authz前的#去掉,否则要进入E:\svn\doc\conf下的authz文件为每个帐户设定权限。(2)进入E:\svn\doc\conf下的passwd文件,在[users]下增加sally=sallypsw,则为用户sally创建了密码sallypsw。
  5. 安装TortoiseSVN客户端软件:当然不装也行,但是TSVN是图形化软件,可视化和可操作性都大大简化。我装的是TortoiseSVN-1.6.8.19260-win32-svn-1.6.11.msi + LanguagePack_1.6.8.19260-win32-zh_CN.msi,后面是语言包,可装可不装。安装了语言包后,还要在设置->语言那里选择中文,才可用。
  6. 导入:使用TSVN在服务器上或在客户端为版本库导入文件/文件夹

一些常见错误及解决:

  1. Q:出现”svnserve.conf:12: Option expected”错误 A:打开svnserve.conf文件中的第12行,该错误是由于该行的前面有空格引起的,把左边多出的空格删除掉即可;
  2. Q:输入URL(svn://127.0.0.1/SVN_PRJ)点下一步出现”svn://127.0.0.1/SVN_PRJ non-existent in revision ’7′”错误 A:URL错了,应该输入svn://127.0.0.1即可
  3. Q:svn 璁よ瘉澶辫触 A:上如果出现此错误,此错误是“认证失败”,有两种解决方式,一个是把Author这个配置文件写好,另一个是把svnserve.conf文件中的#authz-db = authz这个去掉,这个注释掉的意思是不再去读取AUTHOR文件里的信息