開発メモ,主に補足by子連れ親父プログラマー

2010-03-20

gitを使ってデザイナーとの並行作業でテンプレートを修正する

テンプレートで修正が入った場合について、
例えば自分が作った index.tpl がこんなようなソースだったとする。
<div>
<h1>Colored Pencils</h1>
</div>
まずはコミットする。
$ git add index.tpl
$ git commit -m 'first commit'
ここで一旦リリースするが、その時にブランチを作っておく
$ git branch design_fix
その後なにか修正する。
例えば、以下のようにエラーメッセージの表示を追加した。
<div>
<h1>Colored Pencils</h1>
{$message|escape}
</div>
それをコミットする
$ git commit -a -m 'add message'
それを知らないデザイナーからファイルが届いた。
divにclass指定が追加になってる。
<div class="main">
<h1>Colored Pencils</h1>
</div>
作っておいたデザイナー用のブランチに移動して、
$ git checkout design_fix
この状態で、デザイナーが作った index.tpl をコピーしてからコミットする。
$ git commit -a -m 'design chenged'
再びマスターに戻り、マージする
$ git checkout master
$ git merge design_fix
以下のようにマージされた。
<div class="main">
<h1>Colored Pencils</h1>
{$message|escape}
</div>
ここでまたすかさず次のブランチを作っておくといいかもしれない。

問題なのは、デザイナーの修正が、以下のようなものだった場合、
<div>
<h1>Colored Pencils</h1>
<h2>12 colors</h2>
</div>
マージでエラーになる。
Auto-merging index.tpl
CONFLICT (content): Merge conflict in index.tpl
Automatic merge failed; fix conflicts and then commit the result.
そのindex.tplを見るとこんなんなってる。
<div>
<h1>Colored Pencils</h1>
<<<<<<< HEAD:index.tpl
{$message|escape}
=======
<h2>12 colors</h2>
>>>>>>> design_fix:index.tpl
</div>
message の行と h2 の行とどっちが上でどっちが下か分からないってことだろう。
以下のように順番を決めて編集保存して、
<div>
<h1>Colored Pencils</h1>
<h2>12 colors</h2>
{$message|escape}
</div>
コミットする。
$ git commit -a -m 'design fix'
無事マージされた
--- a/index.tpl
+++ b/index.tpl
@@@ -1,5 -1,5 +1,6 @@@
  <div>
  <h1>Colored Pencils</h1>
+ <h2>12 colors</h2>
 +{$message|escape}
  </div>

このブログを検索

Powered by Blogger.

ラベル

php (17) jQuery (13) OSX (10) MySQL (8) Javascript (7) Postgres (7) port (7) apache (6) Java (3) Smarty (2) html (2) pear (2) FCKEditor (1) XAMPP (1) css (1) git (1) perl (1) ruby (1)

Facebookバナー