过去几天,我一直在为自己而疯狂。我们刚刚完成了Hudson Continuous-Integration服务器的设置。因此它运行构建脚本每次提交以验证提交。问题是它验证了repo中的所有文件都在所有svn:keywords = "Id"
文件上设置了svn:eol-style = "LF"
和.php
属性,这通常会很棒(我上次这样做了) ,我使用了Eclipse和Tortoise SVN,它们都有svn :: add功能)。
但问题是我已经习惯了Netbeans。 Netbeans没有我能找到的svn add
功能(它在提交时自动添加文件)。问题是在添加文件之前我无法添加属性。如果我在不添加属性的情况下提交,则构建将失败。所以我最终会在每次提交时失败,因为我需要采取5个步骤(提交,递归propset,提交,确认失败的构建,删除失败的构建),做一些通常只需要2(propset,commit)的东西。 / p>
我现在并不想回到Eclipse,但是当我需要花20分钟才能完成,因为我需要做4次所有事情,它会很快变老...是否有一些解决方法我失踪了(没有删除属性检查,这将打败这一点,因为我想要设置这些属性)?或者我只是SOL?...
答案 0 :(得分:3)
Subversion有一个~/.subversion/config
文件,允许您自定义许多不同的设置,其中包括 auto-props ,这些属性会根据文件的扩展名自动设置在文件上:< / p>
因此,假设Netbeans尊重该文件,您可以通过将[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后,它会正确地选择我选择的 auto-props 并将它们应用到每个新创建的文件中。
更新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试图足够聪明,可以使用您在配置文件中设置的全局和个人的任何subversion设置。