I have by accident done "git push" when I intended to write "guilt push" a couple of times. If there are guilt patches applied when I do this the result is that (part of) my half-finished patch series is pushed to the master branch. That is of course not good. TopGit avoids this issue since I'm on a separate branch when patches are applied. Mercurial Queues prevents this. If I try to do "hg push" with a patch applied, I get this error: > pushing to /home/cederp/pushstop/hgmaster > abort: source has mq patches applied I'd like to add something similar to Guilt, to avoid making this mistake ever again. (It is quite embarrassing to clean up after you push a couple of half-baked patches.) But I don't know how the feature should be designed. Some ideas: - Add pre-push hooks to Git, like the one proposed back in 2008 in <http://thread.gmane.org/gmane.comp.version-control.git/92900>. Have Guilt automatically install a pre-push hook that produces an error message if Guilt patches are applied. - Have Guilt create a status file (maybe .git/PUSH_FORBIDDEN) whenever patches are applied, and remove the file when it pops all patches. The file would contain the following text: "Refusing to push while guilt patches are applied. Hint: see 'guilt -h commit'." Have "git push" check for that file, and print its contents if it exists. (Or should "git push" check for any file matching the glob pattern ".git/PUSH_FORBIDDEN.*" and Guilt create .git/PUSH_FORBIDDEN.Guilt so that this mechanism is more extensible?) - Have Guilt remove all remotes when patches are pushed, and restore them when all patches are popped. (I don't like this idea; there are too many things that could go wrong. But it would be possible to implement without doing any changes to Git itself.) I hope the Git community can come up with a better design for this feature. /ceder -- 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