Cygwin SVN签出ACL问题

时间:2012-03-19 14:40:22

标签: windows svn windows-7 cygwin acl

我的Cygwin SVN客户端在版本1.6.17和1.7.4之间更改了有关Windows ACL的行为。

[更新: SVN 1.7.4和1.6.17实际上具有相同的行为。问题出在其他地方。我没有得到的是它停止工作的地步,可能是Cygwin的更新。的

[更新: Cygwin构建的SVN客户端实际上通过为当前用户设置可执行ACL位来尊重svn:executable关键字。在SVN书中提及“在Windows下没有效果”必须谨慎使用。的

使用1.7.4运行签出会将所有解压缩的文件设置为只读当前用户。例如,这就是我特定情况下的烦恼,它没有为批次设置执行标志。在文件属性中,“安全”选项卡为Read勾选Everyone,为当前用户勾选Read / Write

使用1.6.17运行签出不会显示此行为。使用用户友好的权限检出文件,并可以执行批处理。在文件属性中,“安全”标签为Read & executeRead / Everyone / Modify / {{1}添加了Read & execute / Read。对于当前用户来说,这是我从结账时所期望的。该签出是脚本化过程的一部分,因此两个测试场景中的环境都是相同的。

我在svn门票中没有提到这种行为,也没有找到运气。大多数结果与服务器端配置有关。

我不是ACL / NTFS专家,我确​​实在http://cygwin.com/cygwin-ug-net/ntsec.html阅读了Cygwin posix / windows文章,但这并没有澄清差异。

  • 我尝试了svn:executable关键字,但正如预期的那样,这在Windows下无效。
  • 在Windows 7或XP下会出现同样的差异。
  • 我注意到TortoiseSVN 1.7.6(针对“原生”SVN 1.7.4构建)正确运行签出。
  • 我有默认的全新安装Write,它是空的,没有/etc/fstab配置。

并不是我对1.6.17不满意,但1.7.4中的一些功能很有趣。

如何解决奇怪的访问权限问题?

2 个答案:

答案 0 :(得分:0)

嗯,解决方案是使用/etc/passwd/etc/group重建mkpasswdmkgroup

但是,将更改回滚到这些文件不会在触发问题的状态下还原配置。可能重建它们并再次运行签出对SVN工具本身有影响,但我不知道为什么以及如何。

编辑没有,问题没有解决。

答案 1 :(得分:0)

最终,这是通过find'ing和chmod'文件来解决的:

sh - c "find %MYDIR% -name '*.bat *.sh *.exe *.com *.cmd' -exec chmod u+x {} \;"

由于缺乏调查时间,我当然错过了svn:executable实际上应该由Cygwin构建的SVN处理以添加正确的权限标志。我很快就要检查一下。

[更新: Cygwin构建的SVN客户端尊重svn:executable,因此这是解决问题的方法。的