[OT] Re: CTFE Status

Dicebot via Digitalmars-d digitalmars-d at puremagic.com
Thu Nov 10 06:31:14 PST 2016


On 11/10/2016 06:07 AM, Nick Sabalausky wrote:
> On 11/08/2016 02:11 PM, Antonio Corbi wrote:
>>
>> Maybe this one is useful for you:
>>
>> http://eagain.net/articles/git-for-computer-scientists/
> On 11/08/2016 03:01 PM, H. S. Teoh via Digitalmars-d wrote:
>> Nothing immediately comes to mind, but thanks to Dr. Google, I found
>> this page that's sorta helpful:
>>
>>     http://ericsink.com/vcbe/html/directed_acyclic_graphs.html
>>
>> And perhaps these:
>>
>>     http://eagain.net/articles/git-for-computer-scientists/
>>     http://marklodato.github.io/visual-git-guide/index-en.html
>>
> 
> Ok, so it looks like each node in the DAG is a commit. I'll definitely
> have to read further. Thanks, both.
> 
> Although I have my doubts it would explain all the issues I've hit upon
> with git's CLI. For example: I don't see why annotated tags aren't the
> default. Or why non-annotated ones even exist at all. When I made
> <https://github.com/Abscissa/gen-package-version>, I noticed that it'll
> *only* work if the version tags are "annotated" tags. Because otherwise
> "git describe" doesn't retrieve the tag. Doesn't even matter one bit
> *what* the tag's message is, just that it exists. Why? Who knows! It's git!

Studying git object model in more details actually explains that.
Annotated tag is a first class git object (like commit), while plain tag
is simply a reference to existing object (like branch). From usability
PoV difference can be negligible but impact on git internals is huge.

The fact that the default is non-annotated tag is still just plain bad
decision though :)

> Its things like that. I'd be surprised if that has much to do with git's
> nature as a "dumb" DAG tool. It's just the general good-design principle
> of "The thing you *want to* or *should* do or *expect* 99% of the time
> should be the DEFAULT, not the obscure incantation".

I think it is related, but is not necessary consequence. My
understanding is that for a long time command line design was given zero
thoughts on its own - it was directly exposing whatever git does
internally with no usability considerations. Which is why it is so
awkward to use unless you really do know internal object model in great
details.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: OpenPGP digital signature
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20161110/6948bc0c/attachment.sig>


More information about the Digitalmars-d mailing list