Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 对于单个开发人员来说,通过file://访问Subversion存储库有什么缺点吗?_Svn - Fatal编程技术网

Svn 对于单个开发人员来说,通过file://访问Subversion存储库有什么缺点吗?

Svn 对于单个开发人员来说,通过file://访问Subversion存储库有什么缺点吗?,svn,Svn,如果您的开发机器上安装了Subversion,并且您不在团队中工作,您有什么理由应该使用svn协议而不是文件吗?我在个人项目中使用svn://是因为我经常在同一网络上的多台机器上工作,并且我想将所有内容都存储在桌面机器的存储库中。我不知道是否需要。即使我自己工作,也应该至少是一个。。。。我的协议是始终使用源代码控制,即使是个人项目。它为您的所有代码工作提供了一个单点备份,并允许您改变主意和/或检索旧版本。如果您自己在一台机器上工作,那么根据我的经验,使用文件://协议可以很好地工作。即使我的团队

如果您的开发机器上安装了Subversion,并且您不在团队中工作,您有什么理由应该使用svn协议而不是文件吗?

我在个人项目中使用svn://是因为我经常在同一网络上的多台机器上工作,并且我想将所有内容都存储在桌面机器的存储库中。

我不知道是否需要。即使我自己工作,也应该至少是一个。

。。。我的协议是始终使用源代码控制,即使是个人项目。它为您的所有代码工作提供了一个单点备份,并允许您改变主意和/或检索旧版本。

如果您自己在一台机器上工作,那么根据我的经验,使用文件://协议可以很好地工作。即使我的团队在远程服务器上使用Subversion,我也会为自己的个人项目建立一个基于本地文件的存储库。如果您需要从另一台机器访问它,那么我就要麻烦地设置一个基于服务器的存储库。你也可以看看像Mercurial这样的分布式系统——在我离开之前,我们在我的上一家公司对它进行了评估——但肯定会选择其中一个,svn和hg的混合根本不起作用。

不久前,我们在一个项目中使用ant进行构建。Ant将从SVN repo中检出最新的代码,进行构建,然后在SVN repo中为构建所基于的代码创建一个标记。我们发现,除了svn://协议之外,Ant自动化无法跨任何协议工作


因此,如果您想使用Ant自动化与SVN的任何交互,您需要使用SVN://协议。

您可以随时在以后添加subversion服务器,让它指向您的文件://存储库,然后您将立即获得SVN://访问权

协议并不重要,它只允许通过不同类型的媒体进行传输,重要的是存储库内容

以后安装SVNSERVE相当容易


然而,您使用的subversion软件的风格确实很重要,例如,一家供应商制造了它,因此元数据存储在“\u svn”中,而不是“.svn”中。您可能需要首先检查兼容性。

我不知道。使用源代码管理总是值得的,因此,即使file://在某种程度上较低,如果这意味着您实际上使用了subversion,而不是厌倦了设置并开始编码,那么根据我的书,这是可以的。

我使用了许多不同的机器,因此我更容易使用svn://作为路径。除此之外,我发现svn路径几乎总是比我的文件路径短,因此它不太容易键入。

我相信只要启用了相关的svn工具,您应该不会有任何问题-就像其他人所说的,您可以随时稍后设置服务器

那么,我的建议是确保您可以使用和Collabnet subversion客户端


如果您选择使用虚拟设备,那么现在简化SVN服务器设置的一个主要提示就是使用虚拟设备。也就是说,一个预先安装了subversion并且(大部分)预先配置了subversion的虚拟机——几乎是一个即插即用的东西。您可以尝试、和,或者只是尝试在“subversion virtual appliance”上搜索Google。

选择基于服务器的协议而不是
文件
协议有三个原因

  • 减少网络流量
在不位于工作站上的存储库上使用文件协议时,会写入整个文件,因为在没有守护进程处理它们的情况下,无法使用增量

  • 您可以通过internet公开基于服务器的协议
这就给您留下了一个问题:是使用
svn
还是
http
协议。两者都可以通过网络使用
Svn
具有使用直接二进制编码而不是base64编码的效率优势<代码>Http更容易通过公司防火墙进行走私,而不受官僚阻挠

  • 在跨域场景(如远程办公)中使用权限的麻烦更少

您的家庭工作站很可能不属于公司领域。Subversion服务器守护进程用作代理。它在经过身份验证的进程中运行,该进程具有代表您执行I/O操作所需的权限

这里提到了基于文件和基于服务器的存储库。如果我错了,请纠正我,但我对Subversion的理解是存储库是系统文件存储库或Berkley DB存储库。所做的文件/服务器区别实际上只是在访问存储库的方式上。Ie可以使用file:///协议直接在文件系统上访问(签出、提交等)同一存储库,也可以使用ssh代理、svn服务器和/或使用http的Apache访问(签出、提交等)

文件://
当您是当前唯一访问存储库的人时,访问模式可以正常工作。此外,如果您需要与其他人协作,那么将存储库放在服务器上并通过
https://
svn://
使存储库可用应该没有问题


然而,
file://
URL在Windows上很难看,使用HTTP(S)服务器可以帮助您使用漂亮的URL。Windows上典型的本地URL看起来像
file:///C:\存储库\MyRepo
。但是,我更喜欢
https://svn.example.com/MyRepo

此答案应标记为正确。OP的问题的答案很简单,“file://对于单用户使用是完全安全的,并且对于多用户使用没有任何进入障碍。”