Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
通过FTP同步SVN_Svn - Fatal编程技术网

通过FTP同步SVN

通过FTP同步SVN,svn,Svn,我的团队正在与另一家公司的一个团队合作,该公司的IT政策相当严格。我们不允许直接访问他们的SVN服务器。不允许他们访问我们的SVN服务器。我们得到的唯一选择是访问共享FTP服务器。因此,我正在寻找保持我们的存储库同步的建议。请注意,此FTP服务器是除电子邮件之外的唯一通信机制,因此svn:externals不是一个选项 我目前的想法是每晚(或根据需要经常)向两个方向进行差异/修补。值得一提的是,我们每个人都在使用相当独立的组件,因此发生冲突的可能性非常低 还有更好的主意吗 编辑:我意识到我应该在

我的团队正在与另一家公司的一个团队合作,该公司的IT政策相当严格。我们不允许直接访问他们的SVN服务器。不允许他们访问我们的SVN服务器。我们得到的唯一选择是访问共享FTP服务器。因此,我正在寻找保持我们的存储库同步的建议。请注意,此FTP服务器是除电子邮件之外的唯一通信机制,因此svn:externals不是一个选项

我目前的想法是每晚(或根据需要经常)向两个方向进行差异/修补。值得一提的是,我们每个人都在使用相当独立的组件,因此发生冲突的可能性非常低

还有更好的主意吗


编辑:我意识到我应该在这件事上“和男人斗争”,但已经过去了几个星期,FTP(大概是SFTP)还没有到位。因此,我正在寻找聪明的解决方案。我们行业的性质和我们正在开发的系统排除了代码的第三方存储。是的,这既愚蠢又官僚。方式:)

您可以在两侧使用,并使用FTP连接同步/交换存储库。

为什么允许您使用FTP服务器而不允许HTTP或SSH访问

如果您担心安全性,那么普通FTP肯定不提供安全性,而且SFTP无论如何都需要SSH,因此您可以使用SSH/SCP与存储库同步(与大多数版本控制任务一样,使用Git比SVN更有效)

SVN可以在HTTP上使用,无需太多麻烦——为什么不在每个人都可以访问的HTTP服务器上运行一次夜间签出,将其补丁放在那里,并且只有在您喜欢得到的补丁时才合并到通用的SVN存储库中呢

而且,这并不是为了打败一匹死马,但Git是非常值得的投资,它需要切换。请考虑切换。


基本上,这种设置是非理性的,你应该勇敢地面对那些实施了它的轻率官僚,并尝试找到一个可行的解决方案,在那里你至少可以直接分享一些版本控制机制,即使它们不是您的团队用作其主要源代码管理系统的一级存储库。

我建议进行一些退后操作。严格的IT政策的好处在于,通常这意味着有一个既定的更新政策的过程。确定过程可能是一项挑战,特别是如果你也在“打电话”(即,你不能直接与其他人交谈)

毫无疑问,源代码控制是一种最佳实践。不允许访问公共源代码管理存储库的策略不是最佳实践。一个只提供源代码控制的中立的第三方可能是最好的解决方案(“svn托管”的点击率很高)。您甚至可以通过Apache在端口80(或443)上安排svn托管。。。因此,不需要调整防火墙

我还建议PM为每个任务增加X分钟,因为没有共享源代码存储库的开销(甚至可能每周增加几个小时的“修复源代码存储库任务”)。我当然会考虑花一些时间和精力来跟踪这个过程中的努力(如果这个过程每周只吃1个小时,这仍然是一个重要的追踪时间)。p>
还有。。。只是好奇。。。您是否将使用此方案运行持续集成服务器?也许我是悲观的,但我预计由于合并问题会有很多坏的构建。。。而且几乎每次都像是对方的过错。我想知道这个方案是否排除了CI(另一个最佳实践)?

如果您仅限于FTP,我支持您当前的想法。FTP不是“实时”传输协议;无论传输的文件是什么,两端都需要一个观察者来注意drop文件夹中的更改

如果你的付费客户制定了需要一点创意的合约条款,那就这样吧。使用
svn diff
、补丁、一些cron脚本和大量电子邮件通知以防出错

过去曾与政府和大型企业合作过的任何人都会同情你的立场。事实上,有很多财富100强公司使用“投递箱模式”是有充分理由的。。。它确实创建了一个针对攻击的间接级别,这对于高目标或大容量站点非常有用。很烦人,是的,但除非你穿着他们的鞋子走了一英里,否则真的值得后退吗?毕竟,另一端的开发人员可能和您一样对这些限制感到不满,但每个人都希望克服这些限制,尽可能地交付工作代码

就“未来项目……在适当的时机”的替代技术提出建议,但要正面满足当前项目的限制和要求。一旦你与你的客户建立了信誉,就更容易提出将被采纳的建议

现在,写最好的和最健壮的基于FTP的SVN合并脚本,你可以。。。会很有趣的


编辑:似乎你并不孤单。我从来没有使用过这个项目,所以我不能相信它,但描述至少承认你的问题:。“Subversion提交前或提交后钩子,可用于通过sftp或ftp在相同或不同的服务器上复制提交的文件。”

奇怪的是,他们无法为您创建分支并允许您访问该分支。这样,如果有任何问题,他们根本不需要合并您的分支。

我也遇到过类似的情况,我们最终使用了而不是subversion,因为它支持只使用FTP或SFTP(另一端不需要客户端程序)读取/写入远程存储库


您没有提到您的操作系统,但如果您使用的是windows,bazaar会提供OrtoiseBzr,如果您已经使用了OrtoiseSvn,您会很熟悉它。

如果他们打算这样做,wh