GitHub 支持 svn:needs 锁吗?

Does GitHub Support svn:needs-lock?

我们的 FIRST 机器人团队正在处理二进制 CAD/CAM 文件,并且一直在处理 git 和 GitHub 中不可合并的文件。 GitHub supports SVN, and 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 属性 还是我做错了什么?有没有办法让它发挥作用?

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

Firstly you need to ensure that your Subversion server is upgraded to at least version 1.2. Earlier versions do not support locking at all.

Git中心 supports Subversion clients:

GitHub repositories can be accessed from both Git and Subversion (SVN) clients.

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

GitHub supports Subversion clients via the HTTPS protocol. We use a Subversion bridge to communicate svn commands to GitHub.

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

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

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

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

    After you've added some features and fixed some bugs, you'll want to commit those changes to GitHub. This works just like the Subversion you're used to. Edit your files, and use svn commit to record your changes

  • 分支间切换

如前所述,Git 不支持文件锁定。但我知道至少有两个分布式系统:Veracity, and Mercurial (if you install the lock extension)。我不确定 Veracity 是否仍在积极开发中,而且看起来不再有适合它的托管站点。另一方面,Mercurial 非常活跃,拥有大量用户,并且如果您想要一个无需自己管理的中央服务器,则可以在包括 BitBucket 在内的许多托管站点上获得支持。与 Git 一样,这两个系统也支持启动轻量级服务器以允许用户在彼此之间 push/pull 而不是使用中央服务器,但确实需要某种中央位置来存储锁因为这个练习的重点是使用它们。遗憾的是,据我所知,主要托管服务提供商不支持 Mercurial 的锁定扩展。

当然,你也可以使用SVN。 Google 代码和 Sourceforge 和其他地方提供免费的 SVN 托管,尽管 none 与 GitHub 甚至 BitBucket(据我所知)一样好.自托管 SVN 服务器比分布式工具需要更多的设置,但是有一些简单的工具可以帮助解决这个问题,比如 VisualSVN Server