On 07/09/2013 02:08 PM, Thomas Rast wrote: > Michael Haggerty <mhagger@xxxxxxxxxxxx> writes: > >> Since you've already implemented a way to merge into the index (even an >> alternative index) without touching the working copy, I'll just cross my >> fingers and hope for the appearance of an option that makes merge leave >> HEAD, MERGE_HEAD, etc. untouched. > > The most annoying part is probably where to put the output, since > merging is more or less defined to do one of: > > - update HEAD and return 0 > - update MERGE_HEAD and return 1 I don't understand what you mean here. Why does *any* reference need to be updated? Why not * load arbitrary commit-ish A into index * merge arbitrary commit-ish B into index * return error/OK depending on whether there was a conflict ? The script that started the whole process would know what A and B are and could create the commit itself using "git write-tree" and "git commit-tree -p A -p B". And if the index were an alternative index chosen via GIT_INDEX_FILE then the rest of the git repo would be none the wiser. > I'm not sure how much flexibility is worth having. Would it be > sufficient if you had an option, e.g. -Xresult-ref=refs/heads/foo, that > changes it to: > > - update refs/heads/foo and return 0 > - return 1, not updating any refs > > That would mean that it would only work for noninteractive use. In the > conflicting case, the driving script would need to remember what it > wanted to merge so as have the information when finally committing. That would be fine with me. Michael -- Michael Haggerty mhagger@xxxxxxxxxxxx http://softwareswirl.blogspot.com/ -- 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