Apache 在GoDaddy CentOS专用服务器上安装subversion后,如何配置和访问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
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
设置为要使用的程序的名称。例如,在Windows中,您可以说EDITOR
。在Unix上,您可以说类似于C:>set EDITOR=notepad.exe
。Subversion首先检查$export EDITOR=vi
变量的值,然后检查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简单得多,但存在一些问题:
- 您不能运行多个
实例,因为它想要使用端口3690,并且不想共享。使用apachehttpd,您可以拥有多个存储库svnserve
- SVN服务的安全设置受到限制。使用Apache,我可以使用Windows Active directory或LDAP,也可以手动配置它
- 一些基于web的subversion存储库浏览器不喜欢SVN服务
1使用
svnserve
设置存储库时,需要通过启用文件中第20行的password db=passed
来编辑svnserve.conf
文件。然后,您必须编辑传递的文件(位于同一目录中),以配置用户及其密码。这两种方法都非常简单,但很容易忘记,如果不这样做,您就无法将任何内容提交到存储库中。当您需要中继分支和标记时,您需要下载导入目录。复制
than之后thancd/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"
比主干分支和标记已经完成