業務委託の開発案件を対応していると、何件かの会社ではsvnを未だに使っている。
未だにsvnを使っているのは開発会社上位のSEなりPMがバージョン管理に向き合ってないだけの気がする。
画像の様に切り替えるのはものすごく簡単で、svnのリポジトリをローカルで丸ごとコピーしてそのファイルでgirのリポジトリに上げれば済むだけだ。
gitのベアリポジトリもlinuxのサーバーが必須と言うわけでは無く、Windows Server上の共有フォルダーに作る事が出来るのでリポジトリの問題は恐らく発生しない。
まぁ既にsvnのリポジトリがあるのであればそのサーバーにgitのベアリポジトリを作れば済む話だ。
後は、gitのリポジトリを共有すれば以降完了する。
この単なるコピーするだけの事がなぜ出来ないのか俺には不思議だ。
svnとgitは似て非なるもので、なぜgitなのかと言うと、ローカルリポジトリを経由してPush出来るから便利なのだ。
svnで開発する場合、変更したソースは直リポジトリなのでマージするタイミングがない。
所がgitの場合は一旦ローカルリポジトリにCOMMITしておき、Pushしなくてもどんどんローカルでバージョン管理を継続出来るので、開発中は失敗しようが変更した内容を忘れたとしても、自分の開発領域で、元のソースに戻したり変更したソースをコンパイルしてテストしたりと非常に自由度が高いので何も気にせず、最後にPushして共有すれば良い。
それに、その間に他の人が同じファイルをいじっていた場合、最初にフェッチしておき、マージしてからPush出来るのでデグレを起こさなくて済むわけだ。
開発の安全性とバージョン管理を良い方向にするのがgitなのに、なぜそう言う安全性を取らないのだろうか。
こう言う場合は、gitのリポジトリは作らないが自分の開発環境にはローカルリポジトリを作って開発する様にしている。
この時助かるのがWinMargeの存在で、svnのフォルダーとgitのフォルダー比較をやって、変更したファイルだけsvnのローカルに上書きコピーするだけで良い。
後は、svnのフォルダーをPushすれば企業の開発要件を踏襲しながら自分自身ではgitでバージョン管理して安全に開発出来るのでgitはsvn環境でも何ら問題無く導入出来るわけだ。
まぁWinMareでコピーするのが手間だが、大した手間ではなく、メリットの方が多いのでgit管理に変更した方が断然楽で良い。
そう言うヒントを開発の現場で教えるのだが、しつこくSVN使い続ける気が知れないなぁと思う。
幸い今もらってる案件はgit管理で、ひょっとすると元々git管理していた案件は初めてかも知れない。
支給してくれたPCはRYZEN7だし、GIT管理だし、良いところから案件もらったなぁとつくづく思う。
未だにsvnで管理している所は良いプログラム提供してないのを地で行っている様にも思える。
基本的に開発に携わるスタッフは全員エンジニアなわけで、svnだろうがgitだろうが扱いに困ることはない。
と言う事は、誰が切り替えないか自ずと見えてくる。
SI屋ってそんな所多いなぁ。
コメント