【问题标题】:Git hook to preserve windows file permissionsGit钩子保留Windows文件权限
【发布时间】:2019-01-17 02:20:17
【问题描述】:

我有一个本地 git 存储库,它位于另一个本地 git 存储库的上游。当我从上游存储库拉到下游存储库时,我希望在更新后保留特定文件的 Windows 文件权限。我尝试使用以下解决方案:https://github.com/git/git/blob/master/contrib/hooks/setgitperms.perl#L78

但我相信它是基于 UNIX 安全模型并且不保留我的权限。我怎样才能做到这一点?我正在考虑使用带有 win32security 模块的 python 脚本(因为我不熟悉 perl),但一直无法找到合适的文档。除了手动设置权限之外,我在 Windows 安全方面的经验很少。

【问题讨论】:

  • 您的主要问题是什么?如果只是“我怎样才能做到这一点?”那么这太宽泛了,因为有无数种方法。
  • @PatrickParker 实际上我认为这很好。 “我怎样才能做到这一点?”类型问题固有不会太宽泛,只有当它们类似于“我如何对 Facebook 克隆进行编程?”时。这个问题有一个明确且具体的问题。
  • 可能。无论哪种方式,都需要澄清问题,以更清楚地表明所问的主要问题是什么。

标签: python windows git githooks windows-security


【解决方案1】:

您可以设置您的 git 配置以忽略文件权限差异

git config --global core.fileMode false

我想值得一试。

【讨论】:

    【解决方案2】:

    解决方案最终变得非常简单。我只需要设置运行 python 脚本的 post-checkout 和 -merge 挂钩来设置文件权限。我从here 收集了足够多的关于 win32security 的信息来使用它,并利用 os.getcwd()(在钩子运行时设置为 git repo 根目录)来定位正确的文件。

    【讨论】:

      猜你喜欢
      • 2011-03-13
      • 2011-11-02
      • 1970-01-01
      • 2017-03-14
      • 2011-09-22
      • 2016-04-21
      • 2012-10-27
      • 2012-05-17
      相关资源
      最近更新 更多