| From | Sent On | Attachments |
|---|---|---|
| Martin Geisler | May 7, 2010 10:33 am | |
| Dirkjan Ochtman | May 7, 2010 10:37 am | |
| Matt Mackall | May 7, 2010 10:59 am | |
| Martin Geisler | May 7, 2010 11:14 am | |
| Matt Mackall | May 7, 2010 11:46 am | |
| Dirkjan Ochtman | May 7, 2010 1:14 pm | |
| Gilles Moris | May 8, 2010 12:10 am | |
| Martin Geisler | May 8, 2010 1:31 am | |
| Martin Geisler | May 8, 2010 1:34 am | |
| Martin Geisler | May 8, 2010 1:48 am | |
| Martin Geisler | May 8, 2010 2:09 am | |
| Gilles Moris | May 8, 2010 3:50 am | |
| Martin Geisler | May 8, 2010 1:10 pm | |
| Gilles Moris | May 9, 2010 9:33 am | |
| Gilles Moris | May 9, 2010 1:49 pm | |
| Gilles Moris | May 9, 2010 1:49 pm | |
| Gilles Moris | May 9, 2010 1:49 pm | |
| Gilles Moris | May 9, 2010 1:49 pm | |
| Gilles Moris | May 9, 2010 1:49 pm | |
| Matt Mackall | May 9, 2010 2:36 pm | |
| Matt Mackall | May 9, 2010 2:43 pm | |
| Matt Mackall | May 9, 2010 2:45 pm | |
| Matt Mackall | May 9, 2010 2:47 pm | |
| Martin Geisler | May 9, 2010 4:11 pm | |
| Dirkjan Ochtman | May 9, 2010 10:50 pm | |
| Gilles Moris | May 9, 2010 11:31 pm | |
| Gilles Moris | May 9, 2010 11:49 pm | |
| Matt Mackall | May 10, 2010 12:04 am | |
| Gilles Moris | May 10, 2010 12:37 am | |
| Gilles Moris | May 10, 2010 12:37 am | |
| Matt Mackall | May 10, 2010 12:38 am | |
| Matt Mackall | May 10, 2010 12:58 am | |
| Sune Foldager | May 11, 2010 2:02 am | |
| Sune Foldager | May 11, 2010 2:08 am | |
| Sune Foldager | May 11, 2010 2:14 am | |
| Sune Foldager | May 11, 2010 2:20 am | |
| Matt Mackall | May 11, 2010 3:53 pm | |
| Matt Mackall | May 11, 2010 3:56 pm | |
| Gilles Moris | May 12, 2010 12:52 am | |
| Gilles Moris | May 12, 2010 1:15 am | |
| Gilles Moris | May 12, 2010 1:15 am | |
| Gilles Moris | May 12, 2010 1:15 am | |
| Gilles Moris | May 12, 2010 1:15 am | |
| Gilles Moris | May 12, 2010 1:15 am | |
| Gilles Moris | May 12, 2010 5:17 am | |
| Augie Fackler | May 12, 2010 7:35 am | |
| Matt Mackall | May 12, 2010 8:33 am | |
| Matt Mackall | May 12, 2010 8:34 am | |
| Matt Mackall | May 12, 2010 8:34 am | |
| Matt Mackall | May 12, 2010 8:55 am | |
| Gilles Moris | May 12, 2010 2:33 pm | |
| Gilles Moris | May 13, 2010 7:31 am | |
| Matt Mackall | May 13, 2010 1:48 pm | |
| Martin Geisler | May 17, 2010 1:09 am | |
| Martin Geisler | May 17, 2010 1:22 am | |
| Rafael Villar Burke (Pachi) | May 17, 2010 2:07 am | |
| Augie Fackler | May 17, 2010 5:57 am | |
| Martin Geisler | May 17, 2010 6:56 am | |
| Augie Fackler | May 17, 2010 7:46 am | |
| Martin Geisler | May 17, 2010 8:13 am | |
| Augie Fackler | May 17, 2010 8:41 am | |
| Gilles Moris | May 19, 2010 8:00 am | |
| Martin Geisler | May 19, 2010 3:53 pm | |
| Martin Geisler | May 19, 2010 3:58 pm | |
| Augie Fackler | May 24, 2010 5:15 am | |
| Peter Arrenbrecht | May 26, 2010 6:23 am | |
| Rafael Fernández López | Jun 3, 2010 5:35 am | |
| Peter Arrenbrecht | Jun 3, 2010 6:14 am | |
| Martin Geisler | Jun 4, 2010 12:18 am |
| Subject: | Re: RFC: dealing with dead, anonymous feature branches | |
|---|---|---|
| From: | Martin Geisler (mg...@aragost.com) | |
| Date: | May 8, 2010 1:10:02 pm | |
| List: | com.selenic.mercurial-devel | |
Gilles Moris <gill...@free.fr> writes:
On Saturday 08 May 2010 10:32:04 am Martin Geisler wrote:
I am more concerned the close-branch behavior itself. May be I am stupid, but I have hard time to understand the logic behind the current implementation. [...]
No, I agree with you and your requirements. They sound like the way I have also imagined closed heads to work.
So I'm suggesting something stronger than you: dead heads behave like "Gilles-style" closed heads and they are not pushed or pulled.
I agree that push/pull can be considered orthogonal, and actually your idea is very neat. But my fears are:
- from user's perspective, comments or bug report like this: "Hey guys, I've found a bug in Mercurial. Pull does not work. I try to pull a nice feature that Bob attempted at one point of time, I can see it's there but pull does not work on his repo."
May be it's just a matter of better advertising closed heads and of education. But we should be prepared to that.
Yeah, there will be the problem of how to discover or re-find the dead heads since I think they should be skipped in 'hg log' by default (not hidden from other parts of Mercurial, just hidden in by default in the various log viewers).
But then again, with an option to 'hg log', 'hg grep', etc. for showing dead changesets, then I don't think the problem is all that big.
Jan had some ideas for building a cache that would be used to track if a changeset is considered dead or alive. A changeset is alive when it is the ancestor of a head that is alive. So figuring out if revision 1 is alive could take a while with 100,000 changesets (hi Greg! :-)
- internally, added complexity on the push/pull changeset discovery algorithm. But may be it's peanuts compared to the logic already in place. I don't know enough to evaluate.
I also don't know the algorithm and the capabilities in detail.
Anyway, it's worth digging as dangling heads has been a longstanding concern.
Indeed -- in some sense one can just leave the dangling heads there, but Mercurial is currently made in such a way that it's an uphill fight to have multiple heads.
So I basically think we need a way to say to Mercurial: "yes, I know there is an extra head, but I've marked it as dead/closed -- please stop bothering me" :-)
Excluding the dead heads from push/pull will furthermore solve the problem people have when they have made a mess and don't want to push it anywhere. Just today a guy came by on IRC who had managed to commit the same change at three different places in his history. Now Mercurial (wisely) told him that he would create multiple heads on push and he was very confused... It would have been great to tell him to do
hg update first-troublesome-head hg commit --mark-dead (or --kill, --murder, etc :-) hg update second-troublesome-head hg commit --mark-dead hg push
Instead I tried to get him to make a good clone with 'hg clone -r', but he said his repository was too big... he just wanted to get rid of the extra heads. Strip would have been an option, but marking them as dead would have been even nicer.
-- Martin Geisler
aragost Trifork Professional Mercurial support http://aragost.com/mercurial/
_______________________________________________ Mercurial-devel mailing list Merc...@selenic.com http://selenic.com/mailman/listinfo/mercurial-devel





