git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[GUILT] Preventing "git push" when guilt patches are applied

From
Per Cederqvist <cederp@opera.com>
Date
Apr 19, 2012, 07:23 UTC
Message-ID
<4F8FBD63.9050507@opera.com>

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
Next: Junio C Hamano
Message 1 of 3 in “[GUILT] Preventing "git push" when guilt patches are applied”
  1. Per CederqvistApr 19, 2012
  2. Junio C HamanoApr 19, 2012
  3. Per CederqvistApr 30, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.