1

我刚刚开始使用svn,所以如果我看到任何愚蠢的东西,请帮助我。

我正在使用 tortoisesvn 在 Windows 笔记本电脑上开发。我正在部署到 linux 服务器。

我已经在我的笔记本电脑上设置并检查了我的 repo。 我无法将其签出到服务器上的目录。我已经为它创建了一个目录,但无法开始svn checkout file:///...工作!根据本教程checkout命令采用以下形式:svn checkout file:///repository_name/project/trunk project什么是 repository_name我的仓库在/home/username/svn,我不记得给仓库命名了,只知道它在哪个目录。

一旦我确实进行了排序,我希望在我从笔记本电脑提交时自动将 repo 导出到该目录。那可能吗?

抱歉,如果这非常不清楚,但我想详细说明。

基本上我想从我的笔记本电脑提交并触发将新提交的文件导出到服务器上的目录。

4

3 回答 3

2

也许这个关于 Ubuntuforums 的讨论会有所帮助(前提是你的 repo 和 web 服务器在 Linux 上运行)。它解释了 Post Commit Hooks 的概念,并展示了实际的示例脚本。

于 2010-01-25T23:22:16.593 回答
0

如果您尝试将 svn 注释的副本复制到可以查看它的目录中(而不是实际处理它),您应该使用该svn export命令。

于 2010-01-25T23:33:45.300 回答
0

有两种不同的方法可以自动导出到 public_html 文件夹,这两种方法都涉及设置提交后挂钩。你可以:

  1. 设置一个post-commit 挂钩,它将在您的 Windows 笔记本电脑上运行并将必要的文件复制到您的服务器,可能通过scp(在Putty 套件中可用)、rsync,甚至是samba 文件共享
  2. 设置您的 Linux 服务器来托管您的存储库,以便它可以完全访问您的 public_html 文件夹所在的文件系统,然后设置一个提交后挂钩,将必要的文件复制到您的 public_html 文件夹。当然,您需要从 Linux 存储库而不是笔记本电脑上的存储库中签出,但这可能是值得的。

现在,你上面所说的几件事有点……令人困惑。我做了一些假设来调和上述内容,所以如果我有错误的假设,请发表评论。

现在,您的笔记本电脑上同时拥有存储库和结帐功能。而且,听起来您已经使用该file://协议进行结帐。如果是这样,您将无法从 Linux 服务器访问您的存储库(是的,如果您还通过 SSH 或 http 为您的存储库提供服务,这是可能的)。这可以解释为什么您无法在 Linux 中使用相同的文件协议进行结帐——它无法访问您的 Windows 文件系统。

鉴于上述情况,我会尝试上面的方法一。编写将文件复制到 Linux 服务器的脚本(或程序)。

于 2010-01-25T23:53:09.627 回答