git add -p の e のてすつ
面倒なので件のリポジトリをローカルに clone して無理やり名無し branch を作って、そこから -b を付けて checkout して format-patch で最新との diff を取る形で patch 取得。自分で書いてて何言ってるか意味不明 (?) ですが、add して commit する直前の状態に無理やりしちゃいました。
問題になっている (?) のは以下の部分。
@@ -159,7 +169,7 @@ public class ShakeWatchService extends Service { } private void executeShakeAction() { - Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); - mWakelock.acquire(); +// Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); + mWakelock.acquire(10000); } }
これを異なる commit にしたい、というものです。
- ある commit では Toast.makeText な行はコメントアウトされる
- ある commit では mWAkelock.acquire の引数が追加される
リトライしてみます。以下な手順で
- git add -p
- 最初に s (split) します
- j で一番最後の hunk に移動
- e でエディタ起動
以下な形です。
# Manual hunk edit mode -- see bottom for a quick guide @@ -159,7 +169,7 @@ public class ShakeWatchService extends Service { } private void executeShakeAction() { - Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); - mWakelock.acquire(); +// Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); + mWakelock.acquire(10000); } }
先程はどうしたのだったかを忘れた。たぶんこうしたんだろうな。
# Manual hunk edit mode -- see bottom for a quick guide @@ -159,7 +169,7 @@ public class ShakeWatchService extends Service { } private void executeShakeAction() { - Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); - mWakelock.acquire(); + mWakelock.acquire(10000); } }
git log によれば、なんですがヤッてみます。エラーは出ず、終了。diff は以下。
$ git diff --cached diff --git a/src/jp/shuri/screenonshake/ShakeWatchService.java b/src/jp/shuri/screenonshake/ShakeWatchService.java index 2ead704..2ca1331 100644 --- a/src/jp/shuri/screenonshake/ShakeWatchService.java +++ b/src/jp/shuri/screenonshake/ShakeWatchService.java @@ -159,7 +159,6 @@ public class ShakeWatchService extends Service { } private void executeShakeAction() { - Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); - mWakelock.acquire(); + mWakelock.acquire(10000); } } $
当り前と言えば当り前ですが、こうしたくないんですよね。git reset HEAD してリトライしてみます。こうすりゃ良いのかな。
# Manual hunk edit mode -- see bottom for a quick guide @@ -159,7 +169,7 @@ public class ShakeWatchService extends Service { } private void executeShakeAction() { Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); - mWakelock.acquire(); + mWakelock.acquire(10000); } }
これは駄目なんですよね。あるいはこれはどうか。
# Manual hunk edit mode -- see bottom for a quick guide @@ -159,7 +169,7 @@ public class ShakeWatchService extends Service { } private void executeShakeAction() { - Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); +// Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); mWakelock.acquire(); } }
これも駄目。こうなると他に手は無さげ。あ、こうしてみたらできた。
# Manual hunk edit mode -- see bottom for a quick guide @@ -159,7 +169,7 @@ public class ShakeWatchService extends Service { } private void executeShakeAction() { - Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); +// Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); - mWakelock.acquire(); + mWakelock.acquire(); } }
git diff --cached の出力が以下。
diff --git a/src/jp/shuri/screenonshake/ShakeWatchService.java b/src/jp/shuri/screenonshake/ShakeWatchService.java index 2ead704..9e10d55 100644 --- a/src/jp/shuri/screenonshake/ShakeWatchService.java +++ b/src/jp/shuri/screenonshake/ShakeWatchService.java @@ -159,7 +159,7 @@ public class ShakeWatchService extends Service { } private void executeShakeAction() { - Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); +// Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); mWakelock.acquire(); } }
わははは。勝った (何
結論 (?)
git add -p で以下な hunk をさらに分割したい場合
@@ -159,7 +169,7 @@ public class ShakeWatchService extends Service { } private void executeShakeAction() { - Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); - mWakelock.acquire(); +// Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); + mWakelock.acquire(10000); } }
こうするか
# Manual hunk edit mode -- see bottom for a quick guide @@ -159,7 +169,7 @@ public class ShakeWatchService extends Service { } private void executeShakeAction() { - Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); +// Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); - mWakelock.acquire(); + mWakelock.acquire(); } }
またはこうすれば良い。
# Manual hunk edit mode -- see bottom for a quick guide @@ -159,7 +169,7 @@ public class ShakeWatchService extends Service { } private void executeShakeAction() { - Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); + Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); - mWakelock.acquire(); + mWakelock.acquire(10000); } }
片方が修正されないけれど削除されて追加、という形になってます。微妙な誤魔化しに見えて仕方が無いですが、OK てことで。
ちなみに上の形だと diff が以下になります。
$ git diff --cached diff --git a/src/jp/shuri/screenonshake/ShakeWatchService.java b/src/jp/shuri/screenonshake/ShakeWatchService.java index 2ead704..c928c78 100644 --- a/src/jp/shuri/screenonshake/ShakeWatchService.java +++ b/src/jp/shuri/screenonshake/ShakeWatchService.java @@ -160,6 +160,6 @@ public class ShakeWatchService extends Service { private void executeShakeAction() { Toast.makeText(this, "shaked", Toast.LENGTH_SHORT).show(); - mWakelock.acquire(); + mWakelock.acquire(10000); } } $
ちょっと (結構) 嬉しい。手元のリポジトリの歴史を修正したくなってきてるのですが、どうしよう。