Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用TortoiseSVN或命令行SVN在Subversion存储库中设置SVN“execute”位_Svn_Version Control_Tortoisesvn - Fatal编程技术网

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

使用TortoiseSVN或命令行SVN在Subversion存储库中设置SVN“execute”位,svn,version-control,tortoisesvn,Svn,Version Control,Tortoisesvn,我有一个开源应用程序,托管在code.google.com上。它是跨平台的Linux/Windows/Mac。我最初使用TortoiseSVN从WinXP机器上传了代码,并且似乎没有一个用于linux构建的配置批处理文件设置了它们的执行位 为需要它们的文件设置它们的最简单方法是什么?我想使用TortoiseSVN会更容易,但如果不能使用,那么我也可以在我的linux机器上使用命令行SVN。以下是如何在命令行上执行此操作: for file in `find . -name configure`;

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


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

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

for file in `find . -name configure`; do
  svn ps svn:executable yes ${file}
done
或者,对于一个文件,请在此处配置文件名:

svn ps svn:executable yes configure

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

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

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

当然,对于.exe等,情况也是如此。

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

find . -type f -name "*.bat" -exec svn propset svn:executable yes '{}' \;
有人知道为什么这个属性需要yes作为有效参数吗?
找到另一个示例,该示例使用而不是“是”,也可以使用…

方法恢复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

svn:executable属性是一个布尔值。将其设置为yes或_anything uuu就足够了。svn检查属性是否已设置,而不是其内容-即使您将其设置为“是”,大多数客户端也会报告该值。您也可以在文件列表上使用propset-请注意,要清除可执行位,必须使用svn propdel svn:executable。你不能把它设为“否”。这是Windows版本吗?只是想知道,对我来说,更年轻的人拥有更多的选票,这似乎是一样的。。。