Package: mercurial
Version: 0.9.5-3
Severity: normal

The existing procedure for removing a dead branch
is confusing and risks major damage to the main branch.

As recommended in the mercurial web pages, you
merge with the dead branch, then
un-do the changes.     This works, at least in
uncomplicated cases but it has some drawbacks.

1) The merge can (and typically does) bring up a GUI tools
with all kinds of complicated options and choices.
The correct action is not at all obvious.
What does one do with conflicts?   Does it matter?

2)The risk is large because you are intentionally
(though temporarily) messing up your best code,
merely to get rid of an annoying obsolete branch.

3) Suppose you get interrupted in between the merge and
the undo?   This isn't a theoretical question.   It
happened to me:   I was sitting there looking at the
GUI merge and wondering what to do, when my phone went
off and I just had to lock the screen and run.

4) It leads to a misleading graph of branches on
hg view (and other misleading status information elsewhere).
It *looks* as if you merged with the branch, but really,
you took no information from it.   Really, it has been
dropped from consideration, but it looks like it was used.
(This is not good practice.)

So, I'd strongly suggest adding a special-purpose
"hg drop" command that causes the named branch to be
ignored (unless explicitly referenced).    It should
be reported as dropped in hg view and hg log.
It should be a atomic operation with no options other
than the selection of a branch to drop.
Perhaps it would be good to have a "-m" option so
you could enter a comment about *why* it was dropped.

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.22-3-686 (SMP w/1 CPU core)
Locale: LANG=en_GB, LC_CTYPE=en_GB (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/bash

Versions of packages mercurial depends on:
ii  libc6                         2.7-6      GNU C Library: Shared libraries
ii  python                        2.4.4-6    An interactive high-level object-o
ii  python-support                0.7.6      automated rebuilding support for p

Versions of packages mercurial recommends:
ii  meld                          1.1.5.1-2  graphical tool to diff and merge f
ii  rcs                           5.7-21     The GNU Revision Control System

-- no debconf information



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to