{"thread":{"id":"12155","subject":"[RFC] Issues around C rebase--interactive","startedAt":"2008-02-17T19:15:48Z","lastAt":"2008-02-17T19:42:00Z","messageCount":3,"participants":["Daniel Barkalow","Johannes Schindelin","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"69026","messageId":"alpine.LNX.1.00.0802171347060.5816@iabervon.org","threadId":"12155","inReplyTo":null,"subject":"[RFC] Issues around C rebase--interactive","fromName":"Daniel Barkalow","fromEmail":"barkalow@iabervon.org","sentAt":"2008-02-17T19:15:48Z","receivedAt":"2008-02-17T19:15:48Z","isPatch":false,"sender":{"key":"barkalow@iabervon.org","avatar":"https://avatars.githubusercontent.com/u/55364219?v=4"},"body":"I'm working on porting rebase--interactive to C. This has a number of \ninteresting issues:\n\nThis will be the first C command which stops in the middle and then gets \nresumed. I've been thinking it would be nice if all of the commands like \nthat shared handling of the process in some way. I think it would be good \nto have a \"git abort\" that would reset a conflicted merge, abort a rebase, \netc., and probably \"git checkout\" should either require that there's \nnothing in progress or should abort anything that is in progress. (You can \npresently get lots of fun confusion by starting a rebase, checking out a \ndifferent branch, deleting the branch that you were rebasing, attempting \nanother rebase and trying to clean up.)\n\nIt would also be nice to have a \"git resume\" that would continue whatever \nneeded user attention after you've done it. (But you'd still need \"git \nrebase skip\" to do that command-specific first step before resuming.)\n\nThere's a lot of stuff stored presently in ways that are convenient for \nshell scripts and inconvenient for C. Is anything else depending on the \ncontents or location of \".git/.dotest-merge\"?\n\n\t-Daniel\n*This .sig left intentionally blank*\n"},{"id":"69028","messageId":"alpine.LSU.1.00.0802171932470.30505@racer.site","threadId":"12155","inReplyTo":"alpine.LNX.1.00.0802171347060.5816@iabervon.org","subject":"Re: [RFC] Issues around C rebase--interactive","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-02-17T19:34:28Z","receivedAt":"2008-02-17T19:34:28Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Sun, 17 Feb 2008, Daniel Barkalow wrote:\n\n> There's a lot of stuff stored presently in ways that are convenient for \n> shell scripts and inconvenient for C.\n\nWe could have both, actually.  There could be a \".git/state\" to tell git \nabort/resume what the current actions are, and in addition the files that \nused to be there, too.\n\n> Is anything else depending on the contents or location of \n> \".git/.dotest-merge\"?\n\nThis has been discussed recently.  I offered the opinion that some \npeople's scripts might rely on the location, but was all but shot down.  I \nguess we'll have to change it to find out.\n\nCiao,\nDscho\n"},{"id":"69031","messageId":"7vablzz7xz.fsf@gitster.siamese.dyndns.org","threadId":"12155","inReplyTo":"alpine.LNX.1.00.0802171347060.5816@iabervon.org","subject":"Re: [RFC] Issues around C rebase--interactive","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-17T19:42:00Z","receivedAt":"2008-02-17T19:42:00Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Daniel Barkalow <barkalow@iabervon.org> writes:\n\n> ... I think it would be good \n> to have a \"git abort\" that would reset a conflicted merge, abort a rebase, \n\nYes, we would want a consolidated \"git sequencer\" that can be\nreused by \"am\" and \"rebase\".  The command set to the sequencer\nwould be a slight superset to what rebase--interactive uses in\nits todo file, I would imagine.  To support \"am\" (and non-merge\nversion of \"rebase\") it would add \"apply <filename>\" command.\n"}]}