我在家中使用TortoiseSVN建立了一个版本控制系统来管理我的宠物项目、学校项目等......它在本地工作。
现在我需要能够远程访问我的代码存储库,就像从学校一样,这样我就能够从存储库更新学校的源代码,并在完成工作后再次提交它。
问题是,如何远程连接到我的存储库?例如,我需要在路由器上打开哪些端口?
另外,我不能在学校安装 Tortoise 客户端,所以我需要一些其他的便携式应用程序来完成这项任务,无论是 GUI 还是CLI。
我在家中使用TortoiseSVN建立了一个版本控制系统来管理我的宠物项目、学校项目等......它在本地工作。
现在我需要能够远程访问我的代码存储库,就像从学校一样,这样我就能够从存储库更新学校的源代码,并在完成工作后再次提交它。
问题是,如何远程连接到我的存储库?例如,我需要在路由器上打开哪些端口?
另外,我不能在学校安装 Tortoise 客户端,所以我需要一些其他的便携式应用程序来完成这项任务,无论是 GUI 还是CLI。
有多种方法可以提供远程访问。在您的情况下,最简单的事情可能是设置一个svnserve server。您可以使用 --daemon 手动启动它,也可以将其安装为 Windows 服务。在任何一种情况下,端口 3690 都必须打开。确保设置密码,并将 svnserve 限制在存储库所在的目录。
作为一个可移植的应用程序,我推荐使用命令行 svn 客户端。Windows存在各种命令行客户端。您应该在您的机器上安装其中一个,确保您了解如何使用它,然后将它与它需要的所有 DLL 一起复制到 U 盘上。
我建议使用visual svn server来快速设置和运行。
如果这是您提供的第一个“外部服务”,我会提醒您检查家庭网络的防御。如果您是老手,在防火墙上打开一个洞可能会很轻松,但如果您以前没有这样做过,您将需要谨慎处理。做你的阅读。:-)
或者,有免费的在线代码项目管理站点(SourceForge和Google Code都会想到),它们提供 Subversion 托管。有些服务甚至允许您提供一个 svndump 来保存您现有的存储库(我相信 Google 代码至少在某个特殊要求下允许这样做,但我不知道这是否仍然可行)。
这两者的一个潜在缺点是它们的存储库是公开可见的。如果您想限制对您的存储库的读取访问权限,还有其他免费服务允许这样做,但恐怕我无法说出任何名字。
由于人们已经专门回答了您的问题 - 另一种解决方案:分布式版本控制系统。
Git 可能是最流行的,但我建议尝试 darcs - 因为它被编译成一个可移植的单个二进制文件,不像 git,它是一堆 shell 脚本、perl 脚本/库和 C(或C++
?)二进制文件。
“DVCS”的固有好处是您可以在不连接到中央服务器的情况下提交(并执行几乎所有其他操作)——当您在学校时,您可以提交、创建/合并分支等等。然后,当您在家时,您“推送”到您的主存储库。
这意味着无需通过路由器打开端口,也不必依赖家庭计算机/互联网连接始终处于启动状态。
另一种替代解决方案是使用第 3 方 SVN 服务器(例如 Google Code,或数百个其他服务器之一 - 有些允许私有存储库,有些则收费),而且您再次不必担心端口 -转发等。
问题是,如何远程连接到我的存储库?例如,我需要在路由器上打开哪些端口?
您可以通过像 Apache(指南)这样的网络服务器为 SVN 提供服务 - 然后您只需转发端口 80,并且通常允许在所有网络上使用。
Martin 是对的:它需要作为守护进程或注册服务运行。在我的机器上,我使用命令 svnserve -d 来启动它。
查看官方的 SVN 书,它也有很多信息:
我建议使用一些提供托管 SVN 的托管服务提供商,例如 Dreamhost。比自己配置和维护要容易得多。
您可以将记忆棒上的RapidSVN用作图形 SVN 客户端。下载的是一个安装程序,但安装后,您可以将程序文件文件夹的内容复制到记忆棒,然后从那里运行它。
我在家里有 svn 服务器,通过 ADSL 线路使用动态 IP。我的设置使我能够远程访问: