2011-04-26 75 views
2

在一个项目中,我们有几个svn:includes来引入框架和一些第三方插件。由于框架(Symfony)本身通过svn:externals包含了许多其他嵌套库,因此NetBeans可能需要很长时间才能完成自动“扫描项目”的后台工作。在执行“检查外部更改”部分时,它有时会完全卡住。如何为许多svn:externals的大型项目配置Netbeans subversion

我试图通过禁用“扫描外部变化”来解决这个问题,但似乎只是减少问题的频率,同时引入新的不便而不是解决问题。

我希望有人知道一种方法来告诉SVN扫描只查看我们的存储库中的更改(应该只需要几秒钟),而不是嵌套的外部存储库。与使用CLI svn update --ignore-externals命令类似。

背景:在OS X 10.6上运行NetBeans 6.9.1。

+0

可能是脱离主题,但你有没有考虑过使用Maven而不是Subversion来管理依赖关系? – 2011-04-26 03:59:12

+0

不,我们不是真正的java商店,从来没有使用过Maven。由于CLI svn有效地处理了这种情况,我不认为Subversion是这里的弱点。这要么是关于NetBeans如何在底层调用svn,要么是NetBeans正在做的其他一些过程,我可能会错误地归因于此。 – ybull 2011-04-26 04:09:37

回答

3

您可以添加--ignore-externals很多svn子命令,像svn update --ignore-externalssvn st --ignore-externals,但你还得看你如何让Netbeans的做到这一点,因为它有它自己的svn客户端。

您可以Netbeans的使用命令行的通过虽然使用下面的开关的svn:

-J-DsvnClientAdapterFactory=commandline 

http://wiki.netbeans.org/FaqSvnCli

但除此之外,我没有使用svn /的NetBeans的很多知识来执行此操作。我在Windows上用TortoiseGit完成的一件事是将TortoiseGit指向git.cmd并在那里做一些处理,然后使用git.cmd从msysgit调用git.exe。你可以尝试一下。设置一些其他脚本的路径,然后调用svn binary,如下所示?

#!/bin/bash 
svn $* --ignore-externals 

并将其命名为svn并将其命名为svn,并将其设置为可执行文件并将其放在路径中。

(使它检查子命令是更新或状态,然后添加--ignore-externals如果需要的话,如Netbeans的我认为只是解析从SVN命令行客户机的输出和的Subcommand doesn't accept --ignore-externals附加输出可以弄糟其处理)

是的,没有一个确切的答案,但我写下了我的思考过程。

+0

谢谢。我正在探索这种可能性,虽然它比我希望的要复杂得多。我没有看到NetBeans有办法指定一个自定义脚本而不是svn。这意味着如果我尝试安装一个像你所建议的自定义包装脚本,那么当我使用svn时,它会被调用,而不仅仅是通过NetBeans。除非我也想出如何确定调用过程是否是NetBeans的行为不同。 – ybull 2011-04-27 16:43:26

+0

这很麻烦!我没有看到其他选择。如果有人在Netbeans有更多的经验可以回答,这将是伟大的:) – manojlds 2011-04-27 16:51:07

+0

我刚刚给你+1,因为即使我迄今只实现了切换到强制CLI svn在底层,我还没有这个问题重演。它可能只是一个默认使用的缓慢/错误的库。如果没有更简单或更彻底的答案出现在这里,我也会接受你的答案。非常感谢您的帮助! – ybull 2011-04-28 13:43:03

相关问题