我在我的根目录中创建了一个存储库,这是我的 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) 选项找到时间配置选项
阅读消息。它说无法使用外部编辑器,因为您没有指定一个。Subversion 在线手册再次详细解释了它。
基本上,当您在 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 目录。这是一件非常糟糕的事情,因为它会伤害您的 Web 服务器。
如果不想使用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 活动目录或 LDAP,也可以手动配置它。
- 一些基于 web 的 subversion 存储库浏览器不喜欢 svnserve。
顺便说一句,如果您还没有,请阅读Subversion 在线手册。这是我见过的任何开源项目最好的手册之一。
1当您使用 设置存储库时svnserve
,您需要svnserve.conf
通过启用文件password-db = passed
中关于第 20 行的行来编辑文件。然后您必须编辑passed
文件(位于同一目录中)以配置用户及其密码。两者都非常直接,但很容易忘记,如果你不这样做,你就不能将任何东西提交到你的存储库中。