ホーム > タグ > eclipse

eclipse

eclipseでphpコードをデバッグするとApacheが落ちる

どうも、うしねずみです。
最近eclipseを使ったPHPの開発でハマった(ハマっている)ので書きます。

いまPHPの開発にeclipseのパッケージの一つである、Eclipse for PHP Developersを使っているのですが、どうもコレ、Vistaとの相性が悪いらしい。というより、PHPのデバッガとVistaの相性が悪いらしい。

この開発環境は
Window>Preference>PHP>Debug
のPHP Debuggerの項目でXDebugとZend Debuggerを選べるのですが、ネットで調べてみるとVistaPCでXDebugを使ってデバッグするとApacheが落ちるらしい。私はZendを使っていたので関係ないかと思いきや、Apacheが落ちる落ちる。

最初は2,3回に1回だったので落ちたら再起動して我慢していたのですが、そのうち落ちる頻度が増え、PHPのソース内で読み込んでいるswfファイル(Flexアプリケーション)の挙動まで安定しなくなってきました。もう少し具体的に言うと、Flexアプリ側からPHPにアクセスしてDBからデータを拾ってほしいのですが、PHPから正常に値が返ってこない。最初はFlexアプリ側でどんなに探してもバグらしきものが見つからなくて困りました。しかしブラウザからアクセスすると正常な挙動を示すので、どうやらPHPのデバッガのせい。しまいには、eclipseまで落ちまくるようになって、ホントに困りました。

今のところブラウザからアクセスした感じではアプリ全体にバグがなさそうなのでいいですけど、このままだとPHP部分とFlex部分の結合テストができないなー。。。
あー、面倒だ。

SVNでマージしようとしたらRetrieval of mergeinfo unsupported

どうも、うしねずみです。

最近Flexアプリをeclipse + FlexBuilderプラグイン + subclipseで開発しています。subclipseって言うのはeclipse上で使えるSVNクライアントのプラグインです(他にはsubversiveというのが有名らしい)。

それで、今日コードをSVNリポジトリのtrunkにマージしようとしたら問題が。。。

Retrieval of mergeinfo unsupported by “svn+ssh://hogehoge”

って言われるのです。
どうやら、SVNサーバのバージョンが古くて、SVNクライアント側が必要としている情報が見つからないらしい。ちなみに subclipseのバージョンは1.6.5で、SVNサーバのバージョンは1.2.3。SVNのバージョンは”svn –version”で確認できます。

さて問題が起きた流れを説明してみます。

まず、マージしたいプロジェクトを右クリックして「Team」>「マージ」を選択します。するとマージのダイアログが立ち上がります。
ここです!
私は機能ブランチが完成してトランクにマージしようとしていたので「Reintegrate a branch」 を選びました。これが失敗の原因。 私が使ってるバージョンのsubclipseでは、ブランチを再統合しようとすると、マージすべきリビジョンの範囲をブランチの過去のマージの情報から勝手に取得してくれるっぽいのですが、SVNサーバのバージョンが古いと「ブランチの過去のマージの情報」っていうのが残らないらしく、「そんな情報はないよ」みたいに怒れられるっぽいです。

なので「Merge a range of revisions」を選んで、手動でマージするリビジョン範囲を指定しましょう。
なお、この場合の注意点は、今回どのリビジョンまでをマージしたかを記録しておかないと、次のマージの時にマージすべきリビジョン範囲が分からなくなります。
例えば今回リビジョン1000までマージしたのなら、次回のマージは1001~HEADリビジョンとなるはずです。

SVNはマージの方法とか理解しにくくていつも苦労します。それから「リビジョン」に対する考え方がSVNのコマンドラインクライアントとtortoiseSVN(メジャーなSVNクライアントソフト)では違うらしく、注意が必要です。

TortoiseSVN とコマンドラインクライアントを比較すると、リビジョン範囲を指定する方法に重要な違いがあります。これを思い浮かべる簡単な方法は、フェンスの柱と、フェンスの板について考えることです。コマンドラインクライアントでは、 で指定した 2 本の 「フェンスの柱」 のリビジョンを使用して、マージする変更を指定します。TortoiseSVN では、「フェンスの板」 を使用して、マージする変更セットを指定します。マージするためのリビジョンを指定するログダイアログを使用する場合、チェンジセットとしてどこに各リビジョンが現れるか、明白になるためです。かたまりとしてリビジョンをマージしていると、subversion book にある方法では、今回 100-200 をマージし、次回に 200-300 をマージすることになります。TortoiseSVN では、今回 100-200 をマージし、次回に 201-300 をマージします。この違いは、メーリングリストでたくさんの論争を巻き起こしてきました。私たちは、コマンドラインクライアントと違うことを認めます。しかし、大多数の GUI ユーザにとって、私たちが実装した方法の方が理解しやすいと信じています。

でも、SVNが無い開発はデグレしまくるだろうし、恐ろしくてやってられません。以前マージを手動で(WinMergeというマージツールを使って)一つずつファイルを開いてやったことがありましたが、死にました。
これからもお世話になります、SVN。

ecpliseのout of memory error

どうも、うしねずみです。
最近eclipseのout of memory errorにはまったので書きます。

ことの発端は、PHPとFlex Builderを両方使いだしたこと。
eclipseの最新版(2009年11月6日現在)のgalileo(3.5系)にはEclipse for PHP Developersがあります。でもFlex Builderのプラグインはeclipseの3.2、3.3、3.4にしか対応してないので、この中で最新のganymede(3.4系)にインストールしたのです。

このときeclipseがPCに二つあります。
インストールフォルダはeclipse_galileo、eclipse_ganymedeという風に名前を変えたので問題ないのですが、実行ファイルはどちらもeclipse.exeです。これで何が困るかって、ランチャーソフトで起動するときです。私はLaunchyというランチャーソフトを使っています。キーボードで実行ファイル名を入力するとインクリメンタルサーチしてくれる便利なランチャーです。同じ名前の候補があったら下に候補がプルダウンしてくれるので、同じ名前のソフトが複数あっても問題無いといえば無いのですが、いちいちプルダウンから選択するのはランチャーソフトの手軽さが半減します。

じゃーどうするかって。
実行ファイルの名前を変えればいいじゃなーい。さすがにトラブルが起きそうな気がしたのですが、eclipse.exeをganymede_eclipse.exeに変更しても無事、起動。ここで無事起動したからあとあと、はまることになりました。

この後、Google App Engine for Javaのプラグインも入れて、作業を開始。
ところが、Flexのコードをコンパイルしようとするとout of memory error。

そりゃーね。GAEのプラグインを疑いますよ。だってこれ入れた後にトラブル発生なんだもの。いろいろ調べてみても、JavaのVMに割り当てるメモリ容量を増やせとかしか書いてない。まさかね。実行ファイルをリネームした副作用がout of memory errorなんてね。気づきませんよ。

ま、結局両方ともeclipse.exeに名前を戻して、無事解決しましたとさ。

Vista PCでFlex Builder 3のプラグイン版をインストールした

どうも、うしねずみです。

Flex Builder 3のPlug-in版をeclipseのganymede(3.4系)にインストールしましたが、少しトラぶったので書きます。

まず、ganymedeのclassic eclipseをプロジェクトページからダウンロード。そしてアドビのダウンロードページからAdobe Flex Builder 3 Professional Eclipse plug-in (60 day trial)のWindows, Japaneseをダウンロード。

他の解説しているサイトなどを見ると「ダウンロードしてきたFB3_WWEJ_Plugin.exeを実行せよ」と書いてあるのだが、ダウンロードできるものはexeファイルではなくFB3_WWEJ_Pluginという名前。「まさか、ね」と思いつつファイル名に.exeを追加してみると、何故か実行できる。
えと、まーよくわからんけど、いいや。

ウィザードに従って進むと、どのeclipseにプラグインをインストールするか?といった趣旨のことを聞かれる。さっきダウンロードしてきたeclipseのフォルダを指定。インストールはこれで無事終了。

ところが、eclipseを起動して、新しくFlexプロジェクトを新規作成しようとすると、以下のようなエラーを吐かれる。

The selected wizard could not be started.
Reason: Plug-in com.adobe.flexbuilder.editors.common was unable to load class com.adobe.flexbuilder.editors.commons.ui.project.wizards.NewFlexProjectWizard

 初期設定ファイルを作るためなのかどうかわからないが、インストール後に初めてeclipseを起動するときだけ「管理者として実行」しないとだめらしい。というわけで、eclipse.exeを右クリックして「管理者として実行」を選択。これで問題なく新規Flexプロジェクトを作れました。
2度目以降は管理者として実行しなくても問題なく使えるようです。

Home > Tags > eclipse

Search
Feeds

Return to page top