【问题标题】:How do configure and access up my subversion repository after I install Subversion on my GoDaddy CentOS Dedicated Server在我的 GoDaddy CentOS 专用服务器上安装 Subversion 后,如何配置和访问我的 subversion 存储库
【发布时间】:2012-02-07 12:52:49
【问题描述】:

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

which svn

我得到了回应:

/usr/bin/svn

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

svnadmin create ~/svn

我成功创建并配置了以下文件和文件夹,我在 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

当我输入网址时:

http://mydomain.com/svn

我收到以下消息:

404 - Not Found 

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

svnserve -d

【问题讨论】:

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


    【解决方案1】:

    我在我的根目录中创建了一个存储库,这是我的 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 Directory 或 LDAP,也可以手动配置。
    • 一些基于 Web 的 subversion 存储库浏览器不喜欢 svnserve。

    顺便说一句,如果您还没有,请通过Subversion on line manual。这是我见过的任何开源项目中最好的手册之一。


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

    【讨论】:

      【解决方案2】:

      当你需要主干分支和标签时,你需要下载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"
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多