はじめまして。でーたばんくことバンクです。

社内で用務員と片手間でシステムをやっています。
どうぞよろしくお願いします。

システムメンバーの中でトップバッターを任せられまして、あれこれ悩みましたがあんまり立派そうなハウツーはボクには無理なので、気になっているsvn機能に思いをはせます。

svn chengelistとは

基本いつも自分が使うコマンドは以下ぐらい…

  • svn commit
  • svn update
  • svn st
  • svn diff
  • svn merge
  • svn revert

これ以外にもいろいろ機能があるんだなーと思っていたところ、「こんな機能ありますよ」と紹介うけたのが
svn changelist
でした。

簡単な機能説明をすると
svn上で行った変更をグルーピングできる機能
のようです。

基本、恥ずかしい話ですが merge の際によくコンフリクトを連発するのが日課でして、このchangelist を有効活用することでコンフリクト率を低下できないかというのが今回の趣旨です。

でしたが…

続きを読む

考えれば考えるほど使いどころが不明…

以下、問題点。

  1. mergeはchangelist指定できない
  2. ファイル単位でしかchangelistに加えることができない
  3. changelistに加えるためにもファイルの羅列が必要

この記事を思い立った際には、
「commitする際にchangelistを必須として、別ブランチ、トランクにマージする際changelistを指定すれば機能単位でマージができる」
というボクには確かなビジョンが見えていました。

ところがchangelistはマージには使用できませんでした。
コミットする際に利用できるだけで、その後どのchangelistによってコミットされたかなどの情報を持っておらず、また指定もできませんでした。

じゃあ、
「せめてどの変更が何の機能用の修正なのかを確実に入力しておけばコンフリクトが防げるはず。。。」
と思い立ったのですが、ファイル単位でしか設定できないため2機能の開発が1ファイルに集約する場合、設定できません。

なんとか使い道はないかと思案したところ、commitする際にchangelistで指定できるため、
「ぉ、いちいちファイル指定しなくていいじゃん」
という浅はかな考えでした。

ネタバレ後ですが、changelistに追加する際にファイル指定しているので結局二度手間です。

社では現状開発用ブランチから、本番適用用ブランチへとマージすることによって本番適用を行っています。
changelistはそういった環境を作らず、本番適用までcommitしないような小規模案件には使い道がありそうですが、そもそも小規模案件でversion管理がどこまで必要かわからず、結局うまく使う方法が見いだせませんでした。

今後もこんな使い道あった!!という発想が浮かびましたら続編を書かせていただきます~。

あわせて読みたい記事