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

时间:2012-01-11 05:35:48

标签: apache svn version-control centos dedicated-server

我在服务器上成功安装了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

当我输入网址时:

http://mydomain.com/svn

我收到了以下信息:

404 - Not Found 

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

svnserve -d

2 个答案:

答案 0 :(得分:6)

  

我在我的根目录中创建了一个存储库,它是我的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手册将everything you need使其正常工作。

  

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

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

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

  • 您使用-m之类的svn commit -m "This is my commit message"选项。
  • 您可以将变量SVN_EDITORVISUALEDITOR设置为要使用的程序的名称。例如,在Windows中,您会说C:> set EDITOR=notepad.exe。在Unix上,你会说$ export EDITOR=vi之类的东西。 Subversion首先检查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比Apache httpd简单得多,但有一些问题:

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

顺便说一句,如果还没有,请浏览Subversion on line manual。这是我在任何开源项目中看到的最好的手册之一。


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

答案 1 :(得分:1)

当您需要中继分支和标记时,您需要下载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"

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