IDEA7のShelve Changesが鼻血吹くほど便利な件について

昨日,IDEA7でバージョニングまわりが強化されたと言ってたヤツの一例。いつのころからかChangesウィンドウに"Shelve Changes..."ってメニューが追加されてたんだけど,よく調べもしなかったので放ぽっていたのだが,最近やっと意味が分かった(近頃,こんなんばっかだな)。


簡単に言うと「ローカルのチェンジセットをRevertする前に,パッチ作って寄せておいて,必要に応じて差し戻せる機能」だ。って,Subversionとか使ったことある人にしか通じない説明だな。もっと簡単に言うと「ローカルで変更した内容を,どっかに待避しておいて,好きなときに差し戻す機能」だ。当然,「どっか」ってのはリポジトリじゃないよ。


どんな風に使うかと言えば,こんな感じにローカルチェンジセットから「Shelve Changes...」を選ぶ。


軽く自慢しとくと,ローカルチェンジセットは任意のまとまりで管理することが出来る。つまり,同時並行で複数の作業をしていた場合,その作業ごとにチェンジセットを分けておけるってこと(といっても,同じファイルを修正してると意味無いけどね)。


話を戻す。「Shelve Changes...」を選ぶと,こんなダイアログが出るんで,テキトウにコメント(これがShelve Changesetの名前になる)を入れて,「Shelve Changes」ボタンを押す。


そうすっと,ワーキングコピーからそのチェンジセットの内容が破棄(Revert)され,元に戻る。破棄されたチェンジセットは,Changesウィンドウの「Shelf」タブに待避される。まさに「棚に上げた」って事だ。


待避されたチェンジセットはメニューの「Unshelve Changes」で,再度ワーキングコピーに展開することが出来るんで,リポジトリにコミットしなくても,ローカルだけである程度のバージョニングを行える。


言ってしまえば,ローカルパッチの作成と適用なんで,やる気になればSubversionだけで出来ると思うが,IDEに統合されてるってのに意味があるのじゃ。IDEA7のロードマップに「バージョニングの強化」があったとき「んなん,どーでもいいわ」と思ったが,スイマセン,私が間違ってました。


さほど用途の多い機能とは思わないけど,こうゆうのがあるってのを知っていると,イザというとき便利。
#例えば複数の実装案があって,どっちにしようか試してみるとかできるしね。