From: "Ulrich Windl" <Ulrich.Windl@xxxxxxxxxxxxxxxxxxxx>
Hi!
Sorry for the late response:
On a somewhat not-up-to date manual:
-d, --delete
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.
Maybe the topic of multiple branches pointing to the same commit could be
mentioned (regarding the status of each such branch being considered to be
merged or not). Also "fully merged" could be made a bit more precise,
maybe.
Maybe gitglossary could have definitions for "merged" and "fully merged"
with manual pages referring to it.
Thanks, I'll add your note to my list of clarifications.
Philip
Regards,
Ulrich
"Philip Oakley" <philipoakley@xxxxxxx> schrieb am 08.12.2017 um 21:26
in
Nachricht <582105F8768F4DA6AF4EC82888F0BFBE@PhilipOakley>:
From: "Ulrich Windl" <Ulrich.Windl@xxxxxxxxxxxxxxxxxxxx>
Hi Philip!
I'm unsure what you are asking for...
Ulrich
Hi Ulrich,
I was doing a retrospective follow up (of the second kind [1]).
In your initial email
https://public-inbox.org/git/5A1D70FD020000A100029137@xxxxxxxxxxx-regensburg.d
e/
you said
"I wanted to delete the temporary branch (which is of no use now), I got
a
message that the branch is unmerged.
I think if more than one branches are pointing to the same commit, one
should be allowed to delete all but the last one without warning."
My retrospectives question was to find what what part of the
documentation
could be improved to assist fellow coders and Git users in gaining a
better
understanding here. I think it's an easy mistake [2] to make and that we
should try to make the man pages more assistive.
I suspect that the description for the `git branch -d` needs a few more
words to clarify the 'merged/unmerged' issue for those who recieve the
warning message. Or maybe the git-glossary, etc. I tend to believe that
most
users will read some of the man pages, and would continue to do so if
they
are useful.
I'd welcome any feedback or suggestions you could provide.
--
Philip
>>> "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
[1] Retrospective Second Directive, section 3.4.2 of (15th Ed) Agile
Processes in software engineering and extreme programming. ISBN
1628251042
(for the perspective of the retrospective..)
[2] 'mistake' colloquial part of the error categories of slips lapses and
mistakes : Human Error, by Reason (James, prof) ISBN 0521314194
(worthwhile)