Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [StGit PATCH] edit: Allow setting git tree SHA1 of a patch

From: David Kågedal <hidden>
Date: 2016-06-15 22:48:50

Catalin Marinas [off-list ref] writes:
On 21 May 2010 14:59, David Kågedal [off-list ref] wrote:
quoted
Catalin Marinas [off-list ref] writes:
quoted
2010/5/16 Gustav Hållberg [off-list ref]:
quoted
I would like to have something similar to this patch, which allows for
setting the (git) tree of a particular patch. I would like to use it
(from the Emacs mode) to make it easier to split an old patch into two
(or more).

It might be that this is too "powerful" (read: unsafe), and maybe a
better (safer) command would use whatever is currently in the index
rather than a SHA1.
I'm not against such option (as long as it is somehow mentioned that's
dangerous) though I don't fully understand how one would use it,
especially when the patch is buried under other patches. With a series
of patches, any easily accessible tree (sha1) belongs to one of the
patches.
The idea is that Gustav wants to allow the editing of a file as it
appears in an earlier version. Lets say you have patches A, B, C and
D. You realize that one of the changes in to foo.c in C shuold really be
done in A. So you open the "A version of foo.c" in your editor, do the
change, and then save it. The save operation needs to update A to be
the new tree that contains the updated foo.c, and the remaining patches
will keep their tree. The effect is that the moved change now appears as
a diff in A, but not in C (nor B or D).
This is currently achieved by "pop B C D", edit file, "refresh", "push
--set-tree B C D".
Exactly. But I realize that my example was poor, since this will make B
revert the change and then C reintroduce it. But perhaps this is
actually a defect of the propsed usage model. Gustav, did you think
about this?
Can "edit --set-tree <sha1>" make this simpler?
One think I can think of is that it doesn't have to worry about
modifications to the work tree or the index.
Which <sha1> value would be used with "edit --set-tree" (unless that's
done by Emacs mode behind the scene and it generates the tree that
gets passed to edit).
Yes, that would be up to the tool (emacs in this case) to figure out. I
could probably give a couple of examples when a user could do it
manually, but for those cases the normal push/pop/refresh operations
should be good enough.

-- 
David Kågedal
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help