2

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

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
4

2 回答 2

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 手册将包含您所需的一切。

svn:无法使用外部编辑器获取日志消息;考虑设置 $SVN_EDITOR 环境变量或使用 --message (-m) 或 --file (-F) 选项找到时间配置选项

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

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

  • 您使用-m类似的选项svn commit -m "This is my commit message"
  • 您将变量SVN_EDITORVISUAL或设置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文件(位于同一目录中)以配置用户及其密码。两者都非常直接,但很容易忘记,如果你不这样做,你就不能将任何东西提交到你的存储库中。

于 2012-01-13T03:56:13.793 回答
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"

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

于 2012-04-27T11:55:21.460 回答