【问题标题】:Setting the SVN "execute" bit in a Subversion repository using TortoiseSVN or command line SVN使用 TortoiseSVN 或命令行 SVN 在 Subversion 存储库中设置 SVN“执行”位
【发布时间】:2010-09-11 07:55:22
【问题描述】:

我有一个托管在 code.google.com 上的开源应用程序。它是跨平台的(Linux / Windows / Mac)。我最初使用 TortoiseSVN 从 WinXP 机器上传了代码,似乎用于 linux 构建的“配置”批处理文件都没有设置“执行”位。

为需要它们的文件设置这些最简单的方法是什么?我想使用 TortoiseSVN 会更容易,但如果不能使用,那么我也可以在我的 linux 机器上使用命令行 SVN。

【问题讨论】:

    标签: svn version-control tortoisesvn


    【解决方案1】:

    以下是如何在命令行上执行此操作:

    for file in `find . -name configure`; do
      svn ps svn:executable yes ${file}
    done
    

    或者只针对一个文件(configure 是此处的文件名):

    svn ps svn:executable yes configure
    

    【讨论】:

    • 你也可以在文件列表上使用 propset -- 见stackoverflow.com/a/5757365/134647
    • 请注意,要清除可执行位,您必须使用 svn propdel svn:executable 。您不能只将其设置为“否”。
    【解决方案2】:

    使用 tortoise SVN,很简单:你可以选择多个文件(可能来自搜索结果,所以它们不必在同一个目录中),在 TortoiseSVN 菜单中选择“属性”,添加所需的属性(有一个最常用属性的下拉列表,在本例中为“svn:executable”)并设置值(在本例中为“*”)。如果提交更改的文件并在 linux 下检出,可执行位将被设置。

    如果您想一次设置多个属性,首先为一个文件正确设置属性,将它们导出到文件中,选择所有需要的文件,选择“属性”菜单并导入之前保存的属性。

    【讨论】:

      【解决方案3】:

      在 Unix 上使用 {} 来处理结果集:

      find . -type f -name "*.bat" -exec svn propset svn:executable yes '{}' \;
      

      有谁知道为什么这个属性需要“yes”作为有效参数? 找到另一个用 '' 而不是 yes 的例子,也可以...

      【讨论】:

      • svn:executable 属性是一个布尔值。将其设置为“yes”或“”或_anything_就足够了。 svn 检查是否设置了属性,而不是其内容 - 大多数客户端将值报告为“”,即使您将其设置为“是”。
      【解决方案4】:
      find . -type f -name "*.bat" -exec svn propset svn:executable yes "${}" \;
      

      .exe 等当然也一样

      【讨论】:

      • 这是Windows版本?只是想知道,年轻的erik's answer 有更多的选票,对我来说似乎很相似......
      【解决方案5】:

      svn导入过程中丢失的可执行权限恢复方法:

      从您在 svn 导入期间使用的原始源复制权限(当前目录到版本 1):

      find . -type f | xargs -I {} chmod --reference {} ../version1/{}
      

      然后使用以下 shell 脚本为所有可执行文件设置 svn:executable:

      for file in `find . -executable -type f`; do
        svn ps svn:executable yes ${file}
      done
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多