5

我在家中使用TortoiseSVN建立了一个版本控制系统来管理我的宠物项目、学校项目等......它在本地工作。

现在我需要能够远程访问我的代码存储库,就像从学校一样,这样我就能够从存储库更新学校的源代码,并在完成工作后再次提交它。

问题是,如何远程连接到我的存储库?例如,我需要在路由器上打开哪些端口?

另外,我不能在学校安装 Tortoise 客户端,所以我需要一些其他的便携式应用程序来完成这项任务,无论是 GUI 还是CLI

4

8 回答 8

8

有多种方法可以提供远程访问。在您的情况下,最简单的事情可能是设置一个svnserve server。您可以使用 --daemon 手动启动它,也可以将其安装为 Windows 服务。在任何一种情况下,端口 3690 都必须打开。确保设置密码,并将 svnserve 限制在存储库所在的目录。

作为一个可移植的应用程序,我推荐使用命令行 svn 客户端。Windows存在各种命令行客户端。您应该在您的机器上安装其中一个,确保您了解如何使用它,然后将它与它需要的所有 DLL 一起复制到 U 盘上。

于 2008-12-13T09:02:08.553 回答
3

我建议使用visual svn server来快速设置和运行。

于 2008-12-14T16:50:53.940 回答
2

如果这是您提供的第一个“外部服务”,我会提醒您检查家庭网络的防御。如果您是老手,在防火墙上打开一个洞可能会很轻松,但如果您以前没有这样做过,您将需要谨慎处理。做你的阅读。:-)

或者,有免费的在线代码项目管理站点(SourceForgeGoogle Code都会想到),它们提供 Subversion 托管。有些服务甚至允许您提供一个 svndump 来保存您现有的存储库(我相信 Google 代码至少在某个特殊要求下允许这样做,但我不知道这是否仍然可行)。

这两者的一个潜在缺点是它们的存储库是公开可见的。如果您想限制对您的存储库的读取访问权限,还有其他免费服务允许这样做,但恐怕我无法说出任何名字。

于 2008-12-15T17:44:36.950 回答
2

由于人们已经专门回答了您的问题 - 另一种解决方案:分布式版本控制系统。

Git 可能是最流行的,但我建议尝试 darcs - 因为它被编译成一个可移植的单个二进制文件,不像 git,它是一堆 shell 脚本、perl 脚本/库和 C(或C++?)二进制文件。

“DVCS”的固有好处是您可以在不连接到中央服务器的情况下提交(并执行几乎所有其他操作)——当您在学校时,您可以提交、创建/合并分支等等。然后,当您在家时,您“推送”到您的主存储库。

这意味着无需通过路由器打开端口,也不必依赖家庭计算机/互联网连接始终处于启动状态。

另一种替代解决方案是使用第 3 方 SVN 服务器(例如 Google Code,或数百个其他服务器之一 - 有些允许私有存储库,有些则收费),而且您再次不必担心端口 -转发等。

问题是,如何远程连接到我的存储库?例如,我需要在路由器上打开哪些端口?

您可以通过像 Apache(指南)这样的网络服务器为 SVN 提供服务 - 然后您只需转发端口 80,并且通常允许在所有网络上使用。

于 2008-12-17T11:39:43.457 回答
1

Martin 是对的:它需要作为守护进程或注册服务运行。在我的机器上,我使用命令 svnserve -d 来启动它。

查看官方的 SVN 书,它也有很多信息:

http://svnbook.red-bean.com/en/1.5/svn-book.html

于 2008-12-13T18:35:49.140 回答
1

我建议使用一些提供托管 SVN 的托管服务提供商,例如 Dreamhost。比自己配置和维护要容易得多。

于 2008-12-14T16:12:21.303 回答
1

您可以将记忆棒上的RapidSVN用作图形 SVN 客户端。下载的是一个安装程序,但安装后,您可以将程序文件文件夹的内容复制到记忆棒,然后从那里运行它。

于 2008-12-15T13:13:01.990 回答
1

我在家里有 svn 服务器,通过 ADSL 线路使用动态 IP。我的设置使我能够远程访问:

  • 将颠覆服务器设置为 Windows 服务
  • 在服务器防火墙打开端口 3690。
  • 在路由器防火墙上打开端口 3690。
  • 在 ADSL 路由器上配置端口转发
  • 在www.dyndns.og为家庭服务器设置 DNS
  • 设置 SVN 安全性(授权和认证)
于 2008-12-17T12:30:38.020 回答