バージョン管理してますか
こんにちは、サポート部のまさよしです。
寒暖差が激しい季節になってきましたので、健康管理に留意して毎日をお過ごしください。
さて、「管理」というワードがでてきましたが、皆さんはどのようにソースコードの「バージョン管理」されていますか?
バージョン管理とは
プロジェクト対応中に「コードを間違って保存してしまったので前の状態に戻したい」とか「不可解なコードを見つけたが変更者や変更理由が不明」といった場面に遭遇したことありませんか。「バージョン管理」をしていればファイルに対して加えられていく変更が保存され、いつでも当時の状態に戻れるよう変更履歴が残されるので、こういった場面もスムーズに解決できます。そして、「バージョン管理」をサポートしてくれるソフトウェアが一般的にバージョン管理システムと呼ばれています。例えばCVSやGit、SVN、Team Foundation Server、Visual SourceSafe等ありますが、PowerBuilder 2017からGit/SVN対応されたことを皆さんご存じでしょうか?
チェックアウト、コミット、変更の取り消し等の操作がIDEから行うことができて、しかもR3からは連携が強化され、更新履歴のログ表示や変更箇所の差分表示もIDEから呼び出せるようになりました。
そういう訳で、PowerBuilderでのSVNの使い方を今回はご紹介したいと思います。
ワークスペースをリポジトリに追加
SVNサーバーに空のリポジトリが設定されているとします。まず、ワークスペースを選択した後、右クリックメニューから「ソースコントロールに追加」をクリックし、Subversion(SVN)を選択します。そして、「SVNログイン」ダイアログが表示されるので、リポジトリURLやユーザーID、パスワードを設定後、[OK]ボタンをクリックすると「ソースコントロールに追加」ダイアログが表示されます。このコメントに何を入力するかはSVNの運用の仕方でさまざまですが、今回は「SVNに追加!」と入力して[OK]ボタンをクリックしてみましょう。
「ソースコントロールへの追加が完了しました。」と出力されて、ツリービューに表示されているアイコンに緑色のマークがつきました!これでws_svn_test.pbwは無事にリポジトリに追加されました。
リポジトリにあるワークスペースをダウンロード
先ほどリポジトリに追加したワークスペースを他の端末でも修正できるようリポジトリからファイルをダウンロードします。まず、IDEを起動します。ワークスペースが開かれている場合は、メニューの「ワークスペースに接続」がグレイアウトされているので、ワークスペースを閉じてください。「ワークスペースに接続」をクリックすると、「ワークスペースに接続」ダイアログが表示されます。そして、リポジトリURLやワークスペース等を設定後、[OK]ボタンをクリックしてみましょう。
「ワークスペースへの接続が完了しました。」と出力されて、ツリービューに緑色のマークがついているアイコンが表示されました!これでリポジトリにあるws_svn_test.pbwが無事にダウンロードできました。
コミットしてみよう!
ウィンドウオブジェクト(w_svn_test)のコードに対して修正を行います。修正後、ウィンドウオブジェクトを保存すると緑色のマークが丸からチェックに変更されます(チェックマークはファイルの変更が行われたことを意味します)。そして、右クリックメニューから「SVNコミット」をクリックするとコメントの入力が促されますので「MessageBoxと出力文言の修正」と入力して[OK]ボタンをクリックしてみましょう。
「SVN コミットが完了しました。」と出力されて、ツリービューに緑色のマークがチェックから丸に変更されました!これで無事にコミットできました。
最後に、ウィンドウオブジェクトの更新履歴のログ、ファイル差分を表示してみましょう。ウィンドウオブジェクトを選択した後、右クリックメニューから「SVN ログ参照」をクリックします。
この画面では、ウィンドウオブジェクトでの更新履歴のログを含め、過去のRevisionでどのような変更があったのか調べることができます。これなら過去の対応時に修正したファイルが簡単に調べられますね。
また、ウィンドウオブジェクトのコードに対して再度修正を行い保存します。そして、右クリックメニューから「SVN Diff」をクリックします。
この画面では、前のRevisionとの変更箇所が背景色等で強調されて、視覚的にとても分かりやすく表示されます。これならコードレビューで使えそうですね。
まとめ
R3ではSVNが使いやすくなったことで、ソースコードだけでなく、例えばデータベースのテーブル定義や初期データ、環境構築用の設定ファイル・スクリプトも併せて「バージョン管理」すれば開発効率や品質も飛躍的に向上すると思いますので、是非ご活用ください!
以上、サポート部のまさよしでした。