代码之家  ›  专栏  ›  技术社区  ›  KPexEA

使用TortoiseSVN或命令行SVN在Subversion存储库中设置SVN“execute”位

  •  50
  • KPexEA  · 技术社区  · 17 年前

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

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

    5 回复  |  直到 8 年前
        1
  •  83
  •   bmdhacks    17 年前

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

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

    configure 文件名是否在此处):

    svn ps svn:executable yes configure
    
        2
  •  20
  •   Andreas Andreas    17 年前

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

    如果要一次设置多个属性,首先为一个文件正确设置属性,将其导出到一个文件中,选择所有需要的文件,选择“属性”菜单并导入以前保存的属性可能更安全(如果出现错误)。

        3
  •  7
  •   tobyodavies    14 年前

    在Unix上,使用{}来寻址结果集:

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

    找到了另一个带有“”的示例,而不是“是”,同样有效。。。

        4
  •  4
  •   sth    16 年前
    find . -type f -name "*.bat" -exec svn propset svn:executable yes "${}" \;
    

    当然,对于.exe等也一样。

        5
  •  1
  •   ldgorman    11 年前

    从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
    
    推荐文章