GitHub是否支持svn:needs-lock?

时间:2015-01-31 14:30:44

标签: svn github

我们的FIRST机器人团队正在使用二进制CAD / CAM文件,并且在git和GitHub中混淆了不可合并的文件。 GitHub supports SVN和SVN allows binary files to be locked,但当我使用命令svn propset svn:needs-lock true ControlsBox.iam后跟svn ci .时,我收到以下错误:

svn: E175008: Commit failed (details follow):
svn: E175008: At least one property change failed; repository is unchanged
svn: E160024: Invalid PROPPATCH property

这是间接表明GitHub不支持svn:needs-lock财产还是我做错了什么?有没有办法让这个工作?

2 个答案:

答案 0 :(得分:4)

如前所述,Git不支持文件锁定。但我知道至少有两个分布式系统可以执行:VeracityMercurial(如果安装lock extension)。我不确定Veracity是否仍在积极开发中,它看起来不再有一个好的托管网站了。另一方面,Mercurial非常活跃,拥有大量用户,并且支持包括BitBucket在内的许多托管站点,如果你想要一台中央服务器而不需要自己管理它的麻烦。像Git一样,这两个系统也支持启动轻量级服务器以允许用户之间相互推送/拉取而不是使用中央服务器,但是需要存在某种中心位置来存储锁,因为从这一点开始运动就是用那些。可悲的是,主要的托管服务提供商不支持Mercurial的锁定扩展,我知道。

当然,您也可以使用SVN。 谷歌代码和 Sourceforge和其他地方提供免费的SVN托管,但没有像GitHub或甚至BitBucket(我知道)那样好。自托管SVN服务器比分布式工具需要更多设置,但有一些简单的工具可以帮助解决这个问题,例如VisualSVN Server

答案 1 :(得分:3)

Subversion locking feature that you mention服务器上实现

  

首先,您需要确保将Subversion服务器升级到至少1.2版。早期版本根本不支持锁定。

GitHub supports Subversion clients

  

可以从Git和Subversion(SVN)客户端访问GitHub存储库。

在服务器上没有提到Subversion。事实恰恰相反:

  

GitHub通过HTTPS协议支持Subversion客户端。我们使用Subversion网桥将svn命令传递给GitHub。

无论您如何访问GitHub存储库,它仍然是服务器上的Git存储库。由于Git不支持文件锁定,GitHub不支持文件锁定。

GitHub支持的Subversion功能列表支持这个结论,没有提到锁定(来自同一篇文章):

  • 结帐
  • 创建分支
  • 提交Subversion

    请注意,这实际上意味着使用svn命令提交到GitHub:

      

    在添加了一些功能并修复了一些错误后,您需要将这些更改提交给GitHub。这就像你习惯的Subversion一样。修改您的文件,并使用svn commit记录您的更改

  • 在分支之间切换