我使用subgit进行SVN和Gitlab的双向同步,通过中间存储库(类似于官方文件,用于连接到Github中的解释)。这是从当前SVN到Git的一个非常缓慢的转换过程的一部分。
我不知道我的问题是否与这一特定情况有关,但我注意到SubGit也在同步根文件夹上设置的属性--这些属性是Subgit本身设置的一些锁时间戳(如subgit:lock 2018-02-12T17:00:24.067)。对于SVN方面的开发人员来说,这些属性是完全不相关的,也不需要。
属性只从Git侧移动到SVN。从SVN来的时候,没有什么特别的。
有办法阻止SubGit这样做吗?我已经在config文件中使用了同步过滤,但只对某些特定文件使用。我怎样才能对这些房产做同样的事?
注意:对于那些感兴趣的人来说,我的场景有点具体: SVN在VPN之后,而Gitlab在一个活动服务器上,它没有访问该VPN的权限。 同步通过本地计算机(拥有VPN访问权限)作为代理完成。 所有这些都需要继续接受SVN和Git(实验室)端的提交。
发布于 2018-02-13 13:44:18
当两个用户同时提交SVN和Git时,这个subgit:lock (和它类似)被用来处理这种情况。在早期版本中,SubGit只是发送了一个命令,该命令将删除该属性(即使没有设置),并且"hack“解决了这种情况。
因为Subversion 1.9停止工作,Subversion开始忽略删除不存在的属性。因此,SubGit每次都开始将subgit:lock设置为唯一的字符串。不幸的是,这导致了合并冲突(中士-1215),在编写这些行时,它设置了一个具有唯一名称但每次都带有subgit:lock前缀的属性。
由于很难区分1.8个和1.9个Subverion服务器版本,SubGit对于SVN 1.8+版本有这种行为,但对于高达1.7的版本,它仍然有它的旧行为:删除一个不存在的属性。此外,它对于file:///协议访问也有其旧的行为,因为它不依赖于Subversion软件版本。
目前还没有办法关闭这个新的行为,但是如果这真的伤害了您,我认为我们可以实现这样一个选项,然后在SubGit问题跟踪器中创建一个问题。
如果没有subgit:lock属性,如果一次推送1次提交,则不会发生任何显着变化。但是,如果同时提交A和B,而同时又有人向SVN提交修订C,则SVN存储库中以C、A、B或A、C、B版本结尾的可能性更高。所以,没什么大不了的。
我是SubGit开发人员之一。
https://stackoverflow.com/questions/48750660
复制相似问题