Re: suggestion for a simple addition: git update-ref --ff-only
On Sat, Mar 02, 2013 at 12:18:59AM +0100, David Madore wrote: > I'd like to suggest a very simple, but IMHO quite useful, additional > option to git-update-ref: an option --ff-only which would cause the > command to refuse unless the current ref is an ancestor of the new > one. > > The reason I think it would be useful: I occasionally wish to perform > a trivial (i.e., fast-forward) merge of some branch into another > (e.g., after a git-fetch) without checking it out. Now git-update-ref > is perfect for that, but there is always the possibility of getting > something wrong (which one would not have with git merge --ff-only, > but the latter requires checking out the branch), and this option > would avoid tedious verifications. The update-ref command is plumbing, which is supposed to do one small, well-defined job. But you can compose many plumbing commands to do what you want: # input ref=refs/heads/master new=$some_sha1 # where are we now? old=`git rev-parse --verify $ref` || exit 1 # is it a fast-forward? if ! git merge-base --is-ancestor $old $new; then echo >&2 "Not a fast-forward" exit 1 fi # update it; we do not have to worry about race conditions because # update-ref will abort if somebody touched the ref in the meantime git update-ref $ref $new $old Yes, it's three commands instead of one, but it's much more flexible (you get to write your own message, you can use the same "merge-base" to handle the "already up to date" case, etc). -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: suggestion for a simple addition: git update-ref --ff-only
David Madore writes: > Hi list, > > I'd like to suggest a very simple, but IMHO quite useful, additional > option to git-update-ref: an option --ff-only which would cause the > command to refuse unless the current ref is an ancestor of the new > one. Mild NAK. What you want may be "git push . new_commit:refs/heads/foo", by the way. The "update-ref" plumbing does not want any such frill. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
suggestion for a simple addition: git update-ref --ff-only
Hi list, I'd like to suggest a very simple, but IMHO quite useful, additional option to git-update-ref: an option --ff-only which would cause the command to refuse unless the current ref is an ancestor of the new one. The reason I think it would be useful: I occasionally wish to perform a trivial (i.e., fast-forward) merge of some branch into another (e.g., after a git-fetch) without checking it out. Now git-update-ref is perfect for that, but there is always the possibility of getting something wrong (which one would not have with git merge --ff-only, but the latter requires checking out the branch), and this option would avoid tedious verifications. Happy hacking, -- David A. Madore ( http://www.madore.org/~david/ ) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html