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



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

which svn

我得到的回复是:

/usr/bin/svn

我在根目录中创建了一个存储库,这是我的httpdocs文件夹,使用以下命令:

svnadmin create ~/svn

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

conf  db  format  hooks  locks  README.txt

但是我不能创建trunk、branch和tag目录。事实上,我不能创建目录周期。这是我一直在使用的命令:

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 

我需要做些什么来配置我的存储库,检查我的存储池是否真的在工作。哦,我确实运行了以下命令:

svnserve -d

我在根目录中创建了一个存储库,这是我的httpdocs文件夹,使用以下命令。。。

如果你想让Subversion与Apache httpd协同工作,那就不是这样了。你需要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_EDITOR环境变量或使用--message(-m)或--file(-F)选项svn:没有设置任何环境变量svn_EDITOR、VISUAL或EDITOR,也没有找到"editor cmd"运行时配置选项

阅读信息。它说不能使用外部编辑器,因为您没有指定一个。再次,Subversion在线手册对此进行了详细解释。

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

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

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

因为您使用命令的URL形式,它将创建目录,然后提交更改,因此需要提交消息。这应该有效:

svn mkdir -m"Adding the site directory to my repository" file:///httpdocs/svn/site

现在,您需要将存储库从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"

网络上的所有机器也可以访问您的存储库。使用svnserve比Apachehttpd简单得多,但也有一些问题:

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

顺便说一句,如果你还没有,请参阅Subversion在线手册。这是我见过的任何开源项目中最好的手册之一。


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

当你需要中继分支和标签时,你需要下载import_dirs.copy

cd /location/import_dirs.copy之后比运行比命令

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"

比主干分支和标签已经完成

最新更新