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