Message from @pandaxcentric

Discord ID: 464040495304409088


2018-07-04 03:32:50 UTC  

I'm so used to git at ths point I haven't really thought about that, but yeah that's jibberish

2018-07-04 03:36:25 UTC  

I had this printed beside my desktop for a while.

https://cdn.discordapp.com/attachments/423219052849397773/463910931378864148/git-cheat-sheet.png

2018-07-04 03:40:54 UTC  

```
ITT: people who compare Git to CVS as if there were no other modern DVCSes around.

At our company we use Mercurial. It takes us approximately a day of real work (or say half an hour of teaching time) to teach new people who have never used VCS how to use basic commands, including merge and rebase. The only actual entity in Hg is a "changeset", which can have multiple parents and children and an optional branch name ("default" by default). It's trivial to understand.

OTOH it's 2016 and I myself still can't fucking use git. What's the difference between fetch and pull? How do you checkout a specific commit? What do all the resets do? How the fuck do branches even work? What's the point of a version control system when all you do is edit history all day? ELI5.
```
<https://www.reddit.com/r/programminghorror/comments/4qsywz/rant_git_sucks/>

2018-07-04 03:41:43 UTC  

I love how idiots keep throwing "it stores history like a Directed Acyclic Graph", as if it explained anything. I know what a DAG is, and it doesn't make understanding git's workflow any easier.

2018-07-04 03:43:06 UTC  

This also has a great table.

2018-07-04 03:43:49 UTC  

```
hg revert -a | git reset --hard
hg revert some_file | git checkout some_file ```

2018-07-04 03:45:00 UTC  

`hg resolve -a -m` vs `git add -u `

2018-07-04 03:45:52 UTC  

What does `git add -u` do? Well, here's the docs:
```
Update the index just where it already has an entry matching <pathspec>. This removes as well as modifies index entries to match the working tree, but adds no new files.```

2018-07-04 03:46:17 UTC  

Good for the index, I guess. Or maybe not?

2018-07-04 03:47:10 UTC  

I really want to strangle programmers that think generic abstract words, like "index", "context", "entry", "ref", "spec", etc, are meaningful.

2018-07-04 03:48:32 UTC  

What's the equivalent documentation for `hg resolve`?
```
hg resolve [OPTION]... [FILE]...

redo merges or set/view the merge status of files```

2018-07-04 04:17:17 UTC  

yeaht at this point I'm just so used to git I don't even question it. We use it super basic internally - nothing fancy - and everyone preserves the rules enough we have maybe max 1 issue a year

2018-07-04 04:18:33 UTC  

and that issue is usually resolved by just rebuilding a branch or going through stuff with meld

2018-07-04 04:20:02 UTC  

git really is the C++ of the VCS world - a ton of features and everyone uses it differently so you can be a master of it and still not understand what the fuck is going on with someone elses stuff

2018-07-04 04:24:32 UTC  

Except good C++ programmers understand very well how it works, and they can look up quickly what they don't know. Not so much with `git`.

2018-07-04 04:31:41 UTC  

not sure that's true. So many features have been neglected in C++ that soemtimes it's a mystery

2018-07-04 04:32:05 UTC  

I had a physical copy of the C++ standard for a while to look up arcane things

2018-07-04 05:14:06 UTC  

As Stroustrup said, "legacy systems are systems that are known to work."

2018-07-04 07:02:17 UTC  

[*techie arrives*] "what seems to be the problem?"
[*points to TV, NAS and router*] "not streaming media properly, here I'll show you"
[*accidentally jury-rigs the system so it stream*]
[*techie tries to get it to stream properly for the next hours*]
[*can't fix*]
"that'll be $110"

nigga wat

2018-07-04 12:11:15 UTC  

I disagree with equating git to C++

2018-07-04 12:12:58 UTC  

when you work in a language, the more projects you do, the more you start to get a deeper understanding of the language and it's features...but with git, you can go years never needing to do more than 3 commands (pull, merge, push)

2018-07-04 12:13:48 UTC  

so you aren't working your way to a better understanding of what git can do, something goes wrong and you just have to panic google until it isn't going wrong anymore

2018-07-04 12:15:03 UTC  

I'm the git "expert" in my company, so whenever something goes wrong people come to me to figure it out, and if my bag of tricks doesn't work, it's back to panic googling lol

2018-07-04 14:15:50 UTC  

@pandaxcentric that's my point though. C++ has an unfathomable ammount of features and a lot of them most developers don't use or even know about.

2018-07-04 14:16:02 UTC  

Direct qote from Bjarn Stroustrup about the issue:
```
Even I
can’t answer every question about C++ without reference to supporting material (e.g. my own books,
online documentation, or the standard). I’m
sure that if I tried to keep all of that information in my head,
I’d become a worse programmer.
```

2018-07-04 14:16:38 UTC  

I bet I could pick 3 features I know of in C++ off the top of my head and you wouldn't have known one of them existed

2018-07-04 14:16:59 UTC  

lol, I don't code in C++ so I probably wouldn't 😛

2018-07-04 14:17:33 UTC  

I get your point, but I feel like developers deepen their knowledge of the languages they work in as they work in them

2018-07-04 14:17:35 UTC  

if you ever get the chance check the ISO C++ standard book. It's insane

2018-07-04 14:17:49 UTC  

but for git, unless you're doing somethign weird, you never go beyond like 3 commands

2018-07-04 14:18:09 UTC  

I'd agree with you if this was Ruby or Python or even Java, but C++ is a totally different beast

2018-07-04 14:18:19 UTC  

it's crazy

2018-07-04 14:18:26 UTC  

haha, I work in golang, which is a beast too

2018-07-04 14:18:41 UTC  

I know of 5 different variable array types that are in the standard library alone

2018-07-04 14:19:15 UTC  

yeah, that kinda supports my point though, as you used C++ you learned about those 5

2018-07-04 14:19:16 UTC  

wait 6

2018-07-04 14:19:28 UTC  

yeah but those aren't even all of them

2018-07-04 14:19:59 UTC  

you'll never learn all of C++, but you'll continue to learn more about it , and learn more about how it works

2018-07-04 14:20:09 UTC  

right, but that's the point, same with git