はじめに
現在開発しているWebサービスにgitのような特定のリソースを同時編集した際に
自動でマージ・コンフリクトする機能やプルリクエスト的な機能を実装できたらと思い、
いろいろ調べてた結果diff3コマンドというのに出会った。
Wikipediaなんかはこれでマージ機能が実装されてたりするとのこと
Qiitaの編集リクエストなんかもGitかSVNを使ってるものと思ってたけど
もしかしたらこれで実装されてたりするかも?
やり方
OLDFILE.txt
こころぴょんぴょん待ち?。
考えるふりして、もうちょっと近づいちゃえ。
簡単には教えないっ。
こんなに好きなことは内緒なの。
MYFILE.txt
こころぴょんぴょん待ち?。
考えるふりして、もうちょっと近づいちゃえ。
簡単には教えないっ。
ほんとは好きなんだと(好きなんだつまり…ななな!)囁く
YOURFILE.txt
こころぴょんぴょん待ち?。
楽しさ求めて、もうちょっとはじけちゃえ(ぴょんぴょんと)。
簡単には教えないっ。
こんなに好きなことは内緒なの。
↓以下でマージ実行
diff3.sh
diff3 -m MYFILE.txt OLDFILE.txt YOURFILE.txt > 結果.txt
-mオプションはマージの意
これでOLDFILE.txtからYOURFILE.txtへの変更がMYFILE.txtに統合される
結果.txt
こころぴょんぴょん待ち?。
楽しさ求めて、もうちょっとはじけちゃえ(ぴょんぴょんと)。
簡単には教えないっ。
ほんとは好きなんだと(好きなんだつまり…ななな!)囁く
コンフリクト時はこんな感じ
先ほどのYOURFILE.txtを以下に変更
YOURFILE.txt
こころぴょんぴょん待ち?。
考えるふりして、もうちょっと近づいちゃえ。
簡単には教えないっ。
こんなに好きなことは。(いいよね夢、恋の夢、好きなんだつまり…ななな!)。内緒なの。
コンフリクト.txt
こころぴょんぴょん待ち?。
考えるふりして、もうちょっと近づいちゃえ。
簡単には教えないっ。
<<<<<<< my.txt
ほんとは好きなんだと(好きなんだつまり…ななな!)囁く||||||| parent.txt
こんなに好きなことは内緒なの。=======
こんなに好きなことは。(いいよね夢、恋の夢、好きなんだつまり…ななな!)。内緒なの。>>>>>>> your.txt
その他に良い感じの実装方法やライブラリなどあればコメントにて教えていただけると嬉しいです!