From: "Junio C Hamano" <gitster@xxxxxxxxx>
"Philip Oakley" <philipoakley@xxxxxxx> writes:
I think it was that currently you are on M, and neither A nor B are
ancestors (i.e. merged) of M.
As Junio said:- "branch -d" protects branches that are yet to be
merged to the **current branch**.
Actually, I think people loosened this over time and removal of
branch X is not rejected even if the range HEAD..X is not empty, as
long as X is marked to integrate with/build on something else with
branch.X.{remote,merge} and the range X@{upstream}..X is empty.
So the stress of "current branch" above you added is a bit of a
white lie.
Ah, thanks. [I haven't had chance to check the code]
The man page does say:
. -d
. Delete a branch. The branch must be fully merged in its upstream
. branch, or in HEAD if no upstream was set with --track
. or --set-upstream.
It's whether or not Ulrich had joined the two aspects together, and if the
doc was sufficient to help recognise the 'unmerged' issue. Ulrich?
--
Philip