在GoDaddy CentOS专用服务器上安装Subversion后,如何配置和访问我的subversion存储库

Ame*_* Ra 2 svn apache version-control centos dedicated-server

我在服务器上成功安装了subversion.当我运行命令时:

which svn
Run Code Online (Sandbox Code Playgroud)

我收到了回复:

/usr/bin/svn
Run Code Online (Sandbox Code Playgroud)

我在我的根目录中创建了一个存储库,它是我的httpdocs文件夹,其中包含以下命令:

svnadmin create ~/svn
Run Code Online (Sandbox Code Playgroud)

我成功创建了以下文件和文件夹并对其进行了配置,我在svn目录中看到了以下文件和目录:

conf  db  format  hooks  locks  README.txt
Run Code Online (Sandbox Code Playgroud)

但是我无法创建trunk,branch和tag目录.实际上我无法创建目录期间.这是我一直使用的命令:

svn mkdir file:///httpdocs/svn/site
Run Code Online (Sandbox Code Playgroud)

当我发出此命令时,我收到的消息如下:

svn: Could not use external editor to fetch log message; consider setting the
$SVN_EDITOR environment variable or using the --message (-m) or --file (-F) options
svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set, and no
'editor-cmd' run-time configuration option was found
Run Code Online (Sandbox Code Playgroud)

当我输入网址时:

http://mydomain.com/svn
Run Code Online (Sandbox Code Playgroud)

我收到了以下消息:

404 - Not Found 
Run Code Online (Sandbox Code Playgroud)

我需要做什么来配置我的存储库,检查我的存储库是否真的有效.哦,我确实运行了以下命令:

svnserve -d
Run Code Online (Sandbox Code Playgroud)

Dav*_* W. 6

我在我的根目录中创建了一个存储库,这是我的httpdocs文件夹,其中包含以下命令...

这不是你如何让Subversion与Apache httpd一起工作,如果这是你想要做的.您需要Apache的mod_dav和mod_dav_svn模块.您可能必须重新编译Apache才能获得这些.

一旦安装了mod_dav和mod_dav_svn,就需要配置httpd.conf文件(或conf.d根据系统上配置的httpd的配置文件)使其工作.

最后,并不是那么困难.大多数Apache安装都添加了mod_dav和mod_dav_svn,您可以看到您的http.conf文件是否配置正确.在线Subversion手册将提供使其正常工作所需的一切.

svn:无法使用外部编辑器获取日志消息; 考虑设置$ SVN_EDITOR环境变量或使用--message(-m)或--file(-F)选项svn:没有设置环境变量SVN_EDITOR,VISUAL或EDITOR,也没有'editor-cmd'运行 - 找到时间配置选项

阅读邮件.它说无法使用外部编辑器,因为你没有指定一个.Subversion在线手册再次详细解释了它.

基本上,当您在Subversion中提交更改时,您需要创建一个提交消息.这可以通过两种方式完成:

  • 你使用-m像这样的选项svn commit -m "This is my commit message".
  • 您可以设置变量SVN_EDITOR,, VISUALEDITOR您要使用的程序的名称.例如,在Windows中,你会说C:> set EDITOR=notepad.exe.在Unix上,你会说类似的东西$ export EDITOR=vi.SVN_EDITOR然后VISUAL,Subversion首先检查变量的值EDITOR.如果它们都没有设置,它会给你看到的错误.

你为什么在svn mkdir命令上得到它?

因为您使用命令的URL形式,它将生成目录,然后提交更改,因此需要提交消息.这应该工作:

svn mkdir -m"Adding the site directory to my repository" file:///httpdocs/svn/site
Run Code Online (Sandbox Code Playgroud)

现在,您需要将存储库移出HTTPDOCs目录.这是一件非常糟糕的事情,因为它会伤害你的网络服务器.

如果您不想使用该file://协议,则可以使用svnserve.这是一个内置的Subversion存储库服务器并使用该svn://协议.注意:

$ svnadmin create my_repos   #Creates the repository
$ vi my_repos/conf/svnserve.conf  #See footnote 1 below
$ vi my_repos/conf/passwd         #See footnote 1 below
$ svnserve -r my_repos -d
$ svn mkdir -m "Making basic directory layout svn://localhost/trunk \
> svn://localhost/tags svn://localhost/branches
$ export SVN_EDITOR="vi"
Run Code Online (Sandbox Code Playgroud)

您的存储库也可以被网络上的所有计算机访问.使用svnserve比Apache httpd简单得多,但有一些问题:

  • 您不能运行多个实例,svnserve因为它想要使用端口3690并且它不喜欢共享.使用Apache httpd,您可以拥有多个存储库.
  • svnserve的安全设置有限.使用Apache,我可以使用Windows Active目录或LDAP,或者我可以手动配置它.
  • 一些基于Web的subversion存储库浏览器不喜欢svnserve.

顺便说一下,如果你还没有,请浏览Subversion在线手册.这是我见过的任何开源项目的最佳手册之一.


1使用时设置存储库时svnserve,需要svnserve.conf通过启用文件中password-db = passed第20行的行来编辑文件.然后,您必须编辑该passed文件(位于同一目录中)以配置用户及其密码.两者都很直接,但很容易忘记,如果你不这样做,你就不能在你的存储库中提交任何东西.