如果您在开发机器上安装了 Subversion 并且您没有在团队中工作,那么您有什么理由应该使用svn协议而不是file?
12 回答
如果您自己在一台机器上工作,那么根据我使用 file:// 协议的经验,它可以正常工作。即使我的团队在远程服务器上使用 Subversion,我也会为我自己的个人项目设置一个基于本地文件的存储库。如果您需要从另一台机器访问它,那么我会费心设置一个基于服务器的存储库。你也可以看看像 Mercurial 这样的分布式系统——在我离开之前,我们在我的上一家公司对它进行了评估——但肯定会选择其中一个,混合 svn 和 hg 根本不能很好地工作。
您可以随时添加一个颠覆服务器,让它指向您的 file:// 存储库,然后您将立即获得 svn:// 访问权限。
协议无关紧要,它只是允许通过不同类型的介质进行传输,重要的是存储库内容。
并且稍后安装 SVNSERVE 相当容易。
但是,您使用的颠覆软件的风格确实很重要,例如,一个供应商制造它,因此元数据存储在“_svn”而不是“.svn”中,您可能需要先检查兼容性。
相信只要启用了相关的SVN工具,你应该没有问题——就像其他人说的,你以后可以随时设置服务器。
那么我的建议是确保您可以使用ToroiseSVN和 Collabnet subversion 客户端。
如果您愿意,现在简化 SVN 服务器设置的一个主要技巧是使用虚拟设备。也就是说,一个预先安装和(大部分)预先配置了颠覆的虚拟机 - 几乎是即插即用的东西。您可以在这里、这里和这里尝试,或者尝试在 Google 上搜索“颠覆虚拟设备”。
不久前,我们使用 ant 进行构建的项目。Ant 会检查来自 SVN 存储库的最新代码,进行构建,然后在构建所基于的代码的 SVN 存储库中创建一个标签。我们发现 Ant 自动化无法跨除 svn:// 协议之外的任何协议工作。
因此,如果您想使用 Ant 自动执行与 SVN 的任何交互,您将需要使用 svn:// 协议。
从来没听说过。使用源代码控制总是值得的,所以即使 file:// 在某种程度上较差,如果这意味着你实际上使用颠覆而不是厌倦了设置并开始编码,那么我的书就可以了。
这里提到了一些基于文件和基于服务器的存储库。如果我错了,请纠正我,但我对 Subversion 的理解是存储库是系统文件存储库或 Berkley DB 存储库。文件/服务器的区别实际上只是访问存储库的方式。即,可以使用 file:/// 协议直接在文件系统上访问(签出、提交等)相同的存储库,也可以使用 ssh、svn 服务器和/或使用 http 的 Apache 代理访问。
我将 svn:// 用于个人项目,因为我经常在同一网络上的多台机器上工作,并且我想将所有内容都存储在我桌面机器上的存储库中。
没有,我不知道。它应该被证明至少快一点。
我有许多不同的机器,所以我更容易使用 svn:// 作为路径。除此之外,我发现 svn 路径几乎总是比我的文件路径短,因此输入更少。
选择基于服务器的协议而不是协议有三个原因file
。
- 减少网络流量。
当您在不在工作站上的存储库上使用文件协议时,会写入整个文件,因为在没有守护程序来处理它们的情况下,无法使用增量。
- 您可以通过 Internet 公开基于服务器的协议
这给您留下了是否使用svn
orhttp
协议的问题。两者都可以通过网络使用。Svn
具有使用直接二进制而不是 base64 编码的效率优势。Http
面对官僚主义的阻碍,更容易通过企业防火墙走私。
- 在远程办公等跨域场景下,权限的麻烦更少。
您的家庭工作站可能不是公司域的一部分。Subversion 服务器守护进程充当代理。它在经过身份验证的进程中运行,该进程具有代表您执行 I/O 操作的必要权限。
file://
当您是唯一一个当前正在访问存储库的人时,访问模式可以正常工作。此外,将存储库放在服务器上并通过https://
或svn://
您需要与他人协作使存储库可用应该没有问题。
但是,file://
在 Windows 上 URL 很难看,使用 HTTP(S) 服务器可以帮助您使用漂亮的 URL。Windows 上的典型本地 URL 如下所示file:///C:\Repositories\MyRepo
。不过,我更喜欢https://svn.example.com/MyRepo
.
即使我自己工作......我的协议是即使对于个人项目也始终使用源代码控制。它为您的所有代码工作提供单点备份,并允许您改变主意和/或检索旧版本。