2011-04-26 25 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

相關問題