在过去的几天里,我一直在为这件事发疯。我们刚刚完成了一个 Hudson 持续集成服务器的设置。所以它每次提交都会运行一个构建脚本来验证提交。问题是它验证了 repo 中的所有文件都具有 svn:keywords = "Id"
和 svn:eol-style = "LF"
在所有 .php
上设置的属性文件,这通常会很棒(我上次这样做时,我使用了 Eclipse 和 Tortoise SVN,它们都具有 svn::add 功能)。
但问题是我已经非常习惯 Netbeans。而 Netbeans 没有 svn add
我可以找到的功能(它在提交时自动添加文件)。问题是在添加文件之前我无法添加属性。如果我提交而不添加属性,构建将失败。因此,我每次提交都会导致构建失败,因为我需要采取 5 个步骤(提交、递归 propset、提交、确认构建失败、删除失败构建)来执行通常只需要 2 个步骤(propset、提交)的操作。
在这一点上,我真的不想回到 Eclipse,但是当我需要 20 分钟来提交时,因为我需要做 4 次所有事情,它会很快变老......我有什么解决方法吗?缺少(缺少删除属性检查,这将破坏这一点,因为无论如何我都希望设置这些属性)?还是我只是SOL?...
最佳答案
Subversion 有一个 ~/.subversion/config
允许您自定义许多不同设置的文件,其中包括自动 Prop ,根据文件扩展名在文件上自动设置的属性:
因此,假设 Netbeans 尊重该文件,您可以通过更改 [auto-props]
来告诉 svn 自动设置这些属性。要包括的部分 *.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 后,它会正确选取我选择的自动 Prop 并将它们应用于每个新创建的文件。更新 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 正在尝试足够智能以使用您在配置文件中设置的任何颠覆设置,包括全局和个人。
关于svn - Netbeans 缺少 SVN 添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3419210/