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

Apache 在GoDaddy CentOS专用服务器上安装subversion后,如何配置和访问subversion存储库,apache,svn,version-control,centos,dedicated-server,Apache,Svn,Version Control,Centos,Dedicated Server,我在服务器上成功安装了subversion。当我运行命令时: which svn svnadmin create ~/svn svnserve -d 我得到的答复是: /usr/bin/svn 我使用以下命令在根目录(httpdocs文件夹)中创建一个存储库: which svn svnadmin create ~/svn svnserve -d 我成功创建并配置了以下文件和文件夹,并在svn目录中看到了以下文件和目录: conf db format hooks locks

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

which svn
svnadmin create ~/svn
svnserve -d
我得到的答复是:

/usr/bin/svn
我使用以下命令在根目录(httpdocs文件夹)中创建一个存储库:

which svn
svnadmin create ~/svn
svnserve -d
我成功创建并配置了以下文件和文件夹,并在svn目录中看到了以下文件和目录:

conf  db  format  hooks  locks  README.txt
但是我不能创建主干、分支和标记目录。事实上,我不能在这段时间内创建目录。以下是我一直使用的命令:

svn mkdir file:///httpdocs/svn/site
当我发出此命令时,我得到的消息如下:

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
当我键入url时:

http://mydomain.com/svn
我得到以下信息:

404 - Not Found 
我需要做什么来配置我的存储库,检查我的存储库是否实际工作。哦,我确实运行了以下命令:

which svn
svnadmin create ~/svn
svnserve -d
我使用以下命令在根目录中创建一个存储库,根目录是我的httpdocs文件夹

这不是让Subversion与ApacheHTTPD一起工作的方式,如果您正试图这样做的话。Apache需要mod_dav和mod_dav_svn模块。您可能需要重新编译Apache才能获得这些

一旦安装了mod_dav和mod_dav_svn,您需要配置httpd.conf文件(或者将配置文件放在httpd的
conf.d
下,具体取决于它在您的系统上的配置方式)才能正常工作

最后,这并不难。大多数Apache安装都添加了mod_dav和mod_dav_svn,您可以查看http.conf文件的配置是否正确。在线Subversion手册必须让它工作

svn:无法使用外部编辑器获取日志消息;考虑设置 $SVN_编辑器环境变量或使用--message(-m)或--file(-F)选项 svn:未设置任何环境变量svn_EDITOR、VISUAL或EDITOR,且 找到“editor cmd”运行时配置选项

阅读信息。它说无法使用外部编辑器,因为您没有指定外部编辑器。Subversion联机手册在中再次对此进行了解释

基本上,在Subversion中提交更改时,需要创建提交消息。这可以通过两种方式实现:

  • 您可以使用
    -m
    选项,如
    svn commit-m“这是我的提交消息”
  • 将变量
    SVN\u EDITOR
    VISUAL
    EDITOR
    设置为要使用的程序的名称。例如,在Windows中,您可以说
    C:>set EDITOR=notepad.exe
    。在Unix上,您可以说类似于
    $export EDITOR=vi
    。Subversion首先检查
    SVN\u编辑器
    变量的值,然后检查
    VISUAL
    ,然后检查
    编辑器
    。如果没有设置任何一个,则会显示所看到的错误
为什么在
svn mkdir
命令中得到它

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

svn mkdir -m"Adding the site directory to my repository" file:///httpdocs/svn/site
现在,您需要将存储库移出HTTPDOCs目录。这是一件非常糟糕的事情,因为它会伤害您的web服务器

如果不想使用
文件://
协议,可以使用
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"
网络上的所有计算机也可以访问您的存储库。使用svnserve比apachehttpd简单得多,但存在一些问题:

  • 您不能运行多个
    svnserve
    实例,因为它想要使用端口3690,并且不想共享。使用apachehttpd,您可以拥有多个存储库
  • SVN服务的安全设置受到限制。使用Apache,我可以使用Windows Active directory或LDAP,也可以手动配置它
  • 一些基于web的subversion存储库浏览器不喜欢SVN服务
顺便说一句,如果你还没有,那就通过考试。这是我见过的最好的开源项目手册之一



1使用
svnserve
设置存储库时,需要通过启用文件中第20行的
password db=passed
来编辑
svnserve.conf
文件。然后,您必须编辑传递的
文件(位于同一目录中),以配置用户及其密码。这两种方法都非常简单,但很容易忘记,如果不这样做,您就无法将任何内容提交到存储库中。

当您需要中继分支和标记时,您需要下载
导入目录。复制

than之后than
cd/location/import\u dirs.copy
than运行than命令

cd /data/svn/import_dirs.copy/ 
svn import  file:///location of repos/reposname/  -m "inital message"
这就是它的例子

cd /home/raj/import_dirs.copy/
svn import  file:///srv/svn/nmg/  -m "inital message"
比主干分支和标记已经完成