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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]