On Mon, Jun 15, 2009 at 02:24:39PM +0800, Ping Yin wrote: > On Mon, Jun 15, 2009 at 2:12 PM, David Aguilar<davvid@xxxxxxxxx> wrote: > > On Mon, Jun 15, 2009 at 11:08:51AM +0800, Ping Yin wrote: > >> file bt.php in the HEAD: > >> > >> function bt_add($path) { > >> return; > >> } > >> > >> file bt.php in the working directory: > >> > >> function bt_move($path, $pos) { > >> return; > >> } > >> function bt_add($path, $pos) { > >> bt_move($path, $pos) > >> return; > >> } > >> > >> Now i want to split the change into two parts: > >> First introduce bt_move > >> Then add a param pos to bt_add and call bt_move > >> > >> With the 'e' action of 'add -p', i got > >> > >> -function bt_add($path) { > >> +function bt_move($path, $pos) { > >> + return; > >> +} > >> +function bt_add($path, $pos) { > >> + bt_move($path, $pos) > >> return; > >> } > >> > >> Then, i want to edit the patch to get > >> > >> > >> function bt_move($path, $pos) { > >> return; > >> } > >> function bt_add($path) { > >> return; > >> } > >> > >> However, whatever i do, the patch fails to apply. Any suggestion? > > > > Use git-gui or git-cola to select just bt_move() for addition. > > You can stage specific lines. > > Doesn't the 'e' action of 'add -p' do the same job with git-gui? It should. I tried it in git-{cola,gui} and I was able to do it by first staging the +bt_add(a,b) line, and then staging only the -bt_add(a) line. For add -e I got it to work by editing the patch to; +function bt_move($path, $pos) { + return; +} function bt_add($path) { return; } The reason it's hard to get right is that you have to reconstruct the context of the original content for the adds/removes and remember to add the space before the reconstructed bt_add($path). Those kinda details are usually easier for software to get right ;-) -- David -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html