2

在过去的几天里,我一直在为这个而发疯。我们刚刚完成了 Hudson 持续集成服务器的设置。因此,它每次提交都会运行一个构建脚本来验证提交。问题是它验证了 repo 中的所有文件都在所有文件上都设置了svn:keywords = "Id"svn:eol-style = "LF"属性.php,这通常会很棒(上次我这样做时,我使用了 Eclipse 和 Tortoise SVN,它们都有 svn::add功能)。

但问题是我已经习惯了 Netbeans。Netbeans 没有svn add我能找到的功能(它会在提交时自动添加文件)。问题是在添加文件之前我无法添加属性。如果我在不添加属性的情况下提交,则构建将失败。因此,我每隔一次提交就会导致构建失败,因为我需要采取 5 个步骤(提交、递归 propset、提交、确认失败的构建、删除失败的构建)来做通常只需要 2 步的事情(propset、commit)。

我现在真的不想回到 Eclipse,但是当我需要 20 分钟来提交因为我需要做 4 次所有事情时,它会很快变老......我有一些解决方法吗缺少(没有删除属性检查,这将失败,因为我仍然想要设置这些属性)?还是我只是SOL?...

4

1 回答 1

3

Subversion 有一个~/.subversion/config文件,允许您自定义许多不同的设置,其中包括auto-props,根据文件扩展名自动设置的属性:

因此,假设 Netbeans 尊重该文件,您可以告诉 svn 通过更改[auto-props]要包含的部分来自动设置这些属性*.php = svn:eol-style=LF;svn:keywords=Id

例如:

[auto-props]
# here's yours
*.php = svn:eol-style=LF;svn:keywords=Id
# and one with multiple keywords
*.c = svn:eol-style=native;svn:keywords=Author Date Rev Id HeadURL
# and one with a mime-type
*.png = svn:mime-type=image/png

更新

Netbeans 6.9 似乎在启动时读取了文件~/.subversion/config,并且在没有重新启动的情况下不会拾取更改。重新启动 Netbeans 后,它会正确选择我选择的自动道具并将它们应用于每个新创建的文件。

更新 2

Netbeans 在启动时似乎会读取全局和个人 subversion 配置文件(以及许多其他 subversion 文件)。这是 strace 看到的相关部分:

stat("/home/kibab/.subversion/config", {st_mode=S_IFREG|0644, st_size=4576, ...}) = 0
open("/home/kibab/.subversion/config", O_RDONLY) = 28
open("/etc/subversion/config", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/home/kibab/.netbeans/6.9/config/svn/config/config", {st_mode=S_IFREG|0644, st_size=825, ...}) = 0
stat("/home/kibab/.netbeans/6.9/config/svn/config", {st_mode=S_IFDIR|0755, st_size=61, ...}) = 0
open("/home/kibab/.netbeans/6.9/config/svn/config/config", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 28

进一步的检查似乎暗示,一旦它通过配置文件读取,它就会写出O_TRUNC它存储的配置文件的副本(使用 )~/.netbeans/6.9/config/svn/config/config(至少在 Linux 上)。

基于此,我假设 Netbeans 正试图变得足够智能,以使用您在配置文件中设置的任何颠覆设置,包括全局和个人。

于 2010-08-05T21:39:02.057 回答