Hi Philip! I'm unsure what you are asking for... Ulrich >>> "Philip Oakley" <philipoakley@xxxxxxx> 04.12.17 0.30 Uhr >>> 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