こんにちは!先週とある映画を観に行って緑色のぺんぎん(?)のキャラにハマってしまったERP・AI事業部の高槻です。今週は某雪の女王の新作映画も公開を控えているので楽しみです。皆さんは実写映画とアニメ映画どちらがお好みでしょうか。
たまには技術寄りの内容ということで今回は、バージョン管理についてのお話です。
先日、SI News第3号でPG BATTLEについての記事が出ましたがご覧いただけましたでしょうか。最近は仕事でもプログラムの修正を振られるようになり、8月までの研修やこういったプログラミング関係のイベントでの経験が少しずつ活かせているように感じています。研修と実際のプロジェクトで大きく変わったのは開発の進め方です。今までは個人での開発でしたが、プロジェクトではチームで開発を進めていきます。
そこで大事になってくるのが今回お話する「バージョン管理」です。個人開発の場合にはソースを編集するのは自分ひとりなので適用した編集を前に戻したり、どの編集の影響でプログラムが上手く動かなくなったかなどの原因を特定したりするのは比較的容易ですが、複数人での開発の場合、「誰が・いつ・なにを・どのように」編集したのかという情報を管理しないと前の状態に戻したり、チームで作業を共有することが難しくなります。それを助けてくれるのが、バージョン管理システム(ツール)です。バージョン管理の方式には大きく分けて「集中型」と「分散型」の2つがあります。
「集中型のバージョン管理」では、管理サーバー上に元となるソースを配置し、そこに開発メンバーがアクセスして作業します。誰かがあるソースを編集している間は他のメンバーはそのソースを編集することはできないので編集に関する情報は一意に管理することができます。私も研修中はこちらの方式でソースを管理していました。
ですが、現在のプロジェクトでは「分散型のバージョン管理」を行っています。分散型でもサーバー上に元のソースを配置しますが、それの完全なコピーを開発メンバーがそれぞれ自分のPCに複製して編集した後、変更履歴をサーバーに反映させることでバージョン管理を行います。編集に関する情報は履歴として管理されており、その差分が統合されて変更が適用されるので、複数人で同じソースを編集することができます。分散型のバージョン管理は使い始めたばかりでまだまだ慣れない点も多いですが、早く慣れて仕事で使いこなせるようになりたいです。
今回はソースのバージョン管理に関するお話でした。意図的に用語を避けて説明しましたが、詳しく知りたい方はこちらで学んでみてください。代表的な分散型バージョン管理システムであるGitについて学べます。
ではまた、次回。