如何在Windows中给文件设置“执行”属性并在SVN中进行检查?

33

我在Linux上配置了SVN,位于不同的位置,现在需要从Windows将可执行属性为ON的shell脚本提交到SVN。我使用的是Bamboo作为CI工具,它会从SVN检出源代码并进行定期构建。但是它报错说shell脚本没有可执行权限(Bamboo以root身份运行)。

最佳的设置可执行权限的方法是什么?

我不使用任何SVN客户端,只用eclipse来进行check-in和check-out。如果必须用SVN客户端,我该如何找到与我在eclipse中使用的SVN插件兼容的版本呢?我之前就遇到过兼容性问题,当我用Tortoise提交了一个文件后,就无法从Eclipse中checkout这个文件。


这个问题的任何内容有帮助吗?https://dev59.com/B3VD5IYBdhLWcg3wL4qM - Chris
2
我不明白为什么这个问题会被投票关闭,标记为“离题”,因为SVN显然是一个编程工具。 - Ian Ringrose
1
谢谢phasetwenty,这确实有助于清楚地理解问题。 - Mark
2个回答

52

svn propset svn:executable "*" someScript

这个语法是 propset key value, 因此 svn:executable 是键,"*" 是值。

someScript 是文件名。


谢谢您的回答,对于我们不使用Windows的人来说非常有用。 - Thagomizer

33

提交SVN时会忽略UNIX文件权限。设置文件的exec权限的方法是更改该文件的svn属性,如果您在Windows上,简单的方式是安装Tortoise SVN。然后在提交后使用Tortoise打开仓库浏览器。找到需要执行的文件并右键单击以打开属性。

出现的对话框是SVN属性对话框。单击“新建”添加一个新的属性,从下拉列表中选择svn:executable,并将属性值设置为*。

就这样。单击“确定”后,它将提交到SVN仓库。下一次您或构建机执行“svn update”时,该文件在Unix / Linux上将具有可执行权限。


谢谢Michael,它正在工作。我上次做了同样的过程,但更改了属性,然后使用Tortoise客户端进行了检查,所以我遇到了兼容性问题。 - Mark
Michael,我认为你的第一句话,“SVN ignores UNIX file permissions when committing” 应该改为 “一旦文件被添加,SVN会忽略UNIX文件权限的更改”。 - Mauritz Hansen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接