我在我的根目录中创建了一个存储库,这是我的 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_EDITOR、VISUAL 或EDITOR 设置为您要使用的程序的名称。例如,在 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 文件(位于同一目录中)以配置用户及其密码。两者都非常简单,但很容易忘记,如果你不这样做,你就不能将任何东西提交到你的存储库中。