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
next 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.