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

StackOverflow https://stackoverflow.com/questions/103395

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

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

有帮助吗?

解决方案

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

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

其他提示

以下是在命令行中执行此操作的方法:

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

或者只有一个文件( configure 是这里的文件名):

svn ps svn:executable yes configure

在Unix上使用{}来解决结果集:有没有人知道为什么这个属性需要“是”"作为有效的论点? 发现另一个例子''而不是,也有效......

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

当然,.exe等也是如此。

恢复在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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top