2011-04-22 17 views
84

我有几个文件在svn添加之前已经可执行。他们有svn:可执行属性集。现在,其他几个文件进行了检查中没有可执行位没有它,我想设置svn:executable属性:正确的方法来添加svn:可执行文件

$ svn propset svn:executable on *.cgi 

然后我检查状态,甚至用了svn文件:可执行文件已被修改:

$ svn diff 
Property changes on: a.cgi 
___________________________________________________________________ 
Modified: svn:executable 
    - 
    + * 


Property changes on: b.cgi 
___________________________________________________________________ 
Added: svn:executable 
    + * 

a.cgi不应该被修改。我想添加svn:可执行位以与其他文件相同的方式进行设置,但无法找出执行该操作的命令。

+2

执行此我打开这个网页,我不想键入每次'的svn propset命令的svn:可执行文件上(...)'。这个问题的答案应该是'for * .cgi中的f;如果[! -x $ f];那么svn ps(...);网络连接;完成',并提交修改后的文件。然后继续。 – 2013-11-23 05:32:03

+0

@TomaszGandor认为你错过了'svn:executable'在那个第二段中的某处。也许'svn ps svn:可执行文件$ f;'? – 2017-06-22 23:28:44

+0

https://en.wikipedia.org/wiki/Ellipsis_(linguistics) - 是的,它只是一个练习给读者。 – 2017-06-23 00:27:45

回答

128

你是对的使用svn属性编辑命令。该属性是svn:可执行文件。

要SVN添加 “可执行位”

svn propset svn:executable on <list of files> 

要删除 “可执行位” 在SVN

svn propdel svn:executable <list of files> 

The SVN documentation for this is located here.

只要不修改可执行文件,你不会修改可执行文件(校验和会验证),但是您正在修改SVN存储库。请记住,SVN修订文件系统,而不仅仅是文件;所以,修改权限位将增加SVN修订版本号,即使它只是对文件属性的修改(而不是修改文件本身)。

+0

当我以上面所示的方式运行svn propset时,它将它们设置为“*”,但自然的方式将svn:executable设置为无效,但仍然设置为可执行。我希望这个属性和可执行位在添加到subversion之前设置的属性相同。 – Jake 2011-04-22 16:11:54

+2

对不起所有的编辑,但如果我记得正确,将它设置为任何将打开可执行位,删除它(可能设置为空或空白)将关闭它。要获得SVN客户端使用的值,可以使用svn propget。 – 2011-04-22 16:15:09

-3

下面是我如何在我的项目中设置了执行位的所有* .py文件上设置可执行属性。 我从顶级目录

for f in `find ./ -name '*.py'`; do echo $f; if [ -x $f ]; then echo $f 'is executable setting svn:executable'; svn propset svn:executable on $f; else echo $f 'is not executable'; fi; done; 
相关问题