On 24/01/2008, Karl Hasselström <kha@xxxxxxxxxxx> wrote: > On 2008-01-24 15:31:40 +0000, Catalin Marinas wrote: > > > Another thing, can the '--keep' option be added? Can it work with > > the new structure? I use it quite often as I make some minor > > modification and I'd like to pop patches without affecting the local > > changes. > > As is, it works out of the box as long as your local changes are in > files not touched by the command. It used to work in this case as well :-). > Making it work in other cases as well should be doable -- behind the > scenes, we'd save the local changes much like a patch, and try to > apply it at the end. (In fact, we should probably not create this > "patch" until git-read-tree tells us it can't do its job due to local > changes.) My simple approach was to apply the cumulated diff of the patches to be popped in reverse (and change the top of the stack). If there are no conflicts, it works just fine. If it cannot do this, there might be conflicts and I create a temporary patch manually. Merging that patch would probably lead to conflicts needing to be solved. For the push operation, we try the diff applying followed by a three-way merge if the former fails. We could do something similar with the pop operation for keeping the local changes - try the reversed diff or create a temporary patch automatically. But, I'd really like for this not to be enabled by default. I might forget to refresh a patch and will go to another just to realise that there are uncommitted changes, hence the "check_local_changes()" call for most of the commands affecting the stack. -- Catalin - 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