All of lore.kernel.org
 help / color / mirror / Atom feed
From: Per Cederqvist <cederp@opera.com>
To: git@vger.kernel.org
Cc: cederp@opera.com, ceder@lysator.liu.se
Subject: [GUILT] Preventing "git push" when guilt patches are applied
Date: Thu, 19 Apr 2012 09:23:15 +0200	[thread overview]
Message-ID: <4F8FBD63.9050507@opera.com> (raw)

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

             reply	other threads:[~2012-04-19  7:24 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-19  7:23 Per Cederqvist [this message]
2012-04-19 15:19 ` [GUILT] Preventing "git push" when guilt patches are applied Junio C Hamano
2012-04-30 10:34   ` Per Cederqvist

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F8FBD63.9050507@opera.com \
    --to=cederp@opera.com \
    --cc=ceder@lysator.liu.se \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.