Handmade Hero»Episode Guide
Introduction to Git
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:01Welcome with introductory thoughts on professional-grade source code control
🗩
0:01Welcome with introductory thoughts on professional-grade source code control
🗩
0:01Welcome with introductory thoughts on professional-grade source code control
🗩
2:15Introducing git1
🗹
2:15Introducing git1
🗹
2:15Introducing git1
🗹
3:13`git help -a`
🗹
3:13`git help -a`
🗹
3:13`git help -a`
🗹
6:23`git clone`, followed by preparation using `git bless`2
🗹
6:23`git clone`, followed by preparation using `git bless`2
🗹
6:23`git clone`, followed by preparation using `git bless`2
🗹
10:40Understanding and addressing git's ERROR G0099 "unrevertmail would overwrite previous degettree" using `git unrevertmail`
🗹
10:40Understanding and addressing git's ERROR G0099 "unrevertmail would overwrite previous degettree" using `git unrevertmail`
🗹
10:40Understanding and addressing git's ERROR G0099 "unrevertmail would overwrite previous degettree" using `git unrevertmail`
🗹
16:06Addressing git's ERROR G0102 "unsetup-graph over graph 4f7b4e1a failed" using `git reset --no-hermeneutics --force`
🗹
16:06Addressing git's ERROR G0102 "unsetup-graph over graph 4f7b4e1a failed" using `git reset --no-hermeneutics --force`
🗹
16:06Addressing git's ERROR G0102 "unsetup-graph over graph 4f7b4e1a failed" using `git reset --no-hermeneutics --force`
🗹
18:51Addressing git's ERROR G0103 "Can't trihash-scribe-index", understanding mail servers and hashing, using `git retract` (and flags)
🗹
18:51Addressing git's ERROR G0103 "Can't trihash-scribe-index", understanding mail servers and hashing, using `git retract` (and flags)
🗹
18:51Addressing git's ERROR G0103 "Can't trihash-scribe-index", understanding mail servers and hashing, using `git retract` (and flags)
🗹
22:55Addressing git's ERROR G0097 "trirevert-index / mail 436dbcfa conflicted with quadreadporcelainmsg", using `git retract` with the --no-porcelain and --unprint-errors flags
🗹
22:55Addressing git's ERROR G0097 "trirevert-index / mail 436dbcfa conflicted with quadreadporcelainmsg", using `git retract` with the --no-porcelain and --unprint-errors flags
🗹
22:55Addressing git's ERROR G0097 "trirevert-index / mail 436dbcfa conflicted with quadreadporcelainmsg", using `git retract` with the --no-porcelain and --unprint-errors flags
🗹
24:56Addressing git's ERROR G0103 "quadverify-quote over format 315c4d46 failed" using `git retract` with the --ignore-quilt-errors and --requilt-unquilted-formats flags
🗹
24:56Addressing git's ERROR G0103 "quadverify-quote over format 315c4d46 failed" using `git retract` with the --ignore-quilt-errors and --requilt-unquilted-formats flags
🗹
24:56Addressing git's ERROR G0103 "quadverify-quote over format 315c4d46 failed" using `git retract` with the --ignore-quilt-errors and --requilt-unquilted-formats flags
🗹
26:24Reflect on the simple and rewarding nature of the aforementioned process
🗩
26:24Reflect on the simple and rewarding nature of the aforementioned process
🗩
26:24Reflect on the simple and rewarding nature of the aforementioned process
🗩
29:25reductum Q: Could you go over the git-soil-archive command? I've had a really hard time understanding the docs on it3
🗪
29:25reductum Q: Could you go over the git-soil-archive command? I've had a really hard time understanding the docs on it3
🗪
29:25reductum Q: Could you go over the git-soil-archive command? I've had a really hard time understanding the docs on it3
🗪
29:56`git git-soil-archive` and the notion of gardening
🗹
29:56`git git-soil-archive` and the notion of gardening
🗹
29:56`git git-soil-archive` and the notion of gardening
🗹
33:59jkfsda Q: What if the atomization fails?
🗪
33:59jkfsda Q: What if the atomization fails?
🗪
33:59jkfsda Q: What if the atomization fails?
🗪
34:51ivereadthesequel Q: I heard Knuth recently proved gardening had a probabilistic polynomial time algorithm? It just has huge coefficients
🗪
34:51ivereadthesequel Q: I heard Knuth recently proved gardening had a probabilistic polynomial time algorithm? It just has huge coefficients
🗪
34:51ivereadthesequel Q: I heard Knuth recently proved gardening had a probabilistic polynomial time algorithm? It just has huge coefficients
🗪
35:18longboolean Q: I am still skeptical. Will this affect the arrangement of my garden gnomes? Rearranging them is not really something that I am able to do as they are permanently fixed in place
🗪
35:18longboolean Q: I am still skeptical. Will this affect the arrangement of my garden gnomes? Rearranging them is not really something that I am able to do as they are permanently fixed in place
🗪
35:18longboolean Q: I am still skeptical. Will this affect the arrangement of my garden gnomes? Rearranging them is not really something that I am able to do as they are permanently fixed in place
🗪
36:14`git bless --by-gnome --assume-mutable-gnomes`
🗹
36:14`git bless --by-gnome --assume-mutable-gnomes`
🗹
36:14`git bless --by-gnome --assume-mutable-gnomes`
🗹
36:54Understanding git's ERROR G0104 "Can't procpinsta-column after uncheckmultiimap with map 27ac3787"
🗩
36:54Understanding git's ERROR G0104 "Can't procpinsta-column after uncheckmultiimap with map 27ac3787"
🗩
36:54Understanding git's ERROR G0104 "Can't procpinsta-column after uncheckmultiimap with map 27ac3787"
🗩
37:37vtlmks Q: Can you explain the --tricycleentropy option?
🗪
37:37vtlmks Q: Can you explain the --tricycleentropy option?
🗪
37:37vtlmks Q: Can you explain the --tricycleentropy option?
🗪
39:25Addressing Microsoft Visual Studio's Error '$Loader is undefined' by using x13pixels' remedybg
🗹
39:25Addressing Microsoft Visual Studio's Error '$Loader is undefined' by using x13pixels' remedybg
🗹
39:25Addressing Microsoft Visual Studio's Error '$Loader is undefined' by using x13pixels' remedybg
🗹
43:15Launch and add our project to remedybg4
🗹
43:15Launch and add our project to remedybg4
🗹
43:15Launch and add our project to remedybg4
🗹
45:40Organise our remedybg layout
🗹
45:40Organise our remedybg layout
🗹
45:40Organise our remedybg layout
🗹
49:26Set up to fix the clipping of our hero's body with the floor during shearing
🏃
49:26Set up to fix the clipping of our hero's body with the floor during shearing
🏃
49:26Set up to fix the clipping of our hero's body with the floor during shearing
🏃
53:16Walk through the ZDisplacement code
📖
53:16Walk through the ZDisplacement code
📖
53:16Walk through the ZDisplacement code
📖
57:06Change SpriteValuesForUpright() to use the sheared YAxis in the ZDisplacement computation
57:06Change SpriteValuesForUpright() to use the sheared YAxis in the ZDisplacement computation
57:06Change SpriteValuesForUpright() to use the sheared YAxis in the ZDisplacement computation
57:18Find that that doesn't improve our clipping situation
🏃
57:18Find that that doesn't improve our clipping situation
🏃
57:18Find that that doesn't improve our clipping situation
🏃
57:28Prevent SpriteValuesForUpright() from factoring the WorldDim into the ZDisplacement computation
57:28Prevent SpriteValuesForUpright() from factoring the WorldDim into the ZDisplacement computation
57:28Prevent SpriteValuesForUpright() from factoring the WorldDim into the ZDisplacement computation
57:52Find that that does solve our clipping problem, except on stairs where our hopping arc is too shallow
🏃
57:52Find that that does solve our clipping problem, except on stairs where our hopping arc is too shallow
🏃
57:52Find that that does solve our clipping problem, except on stairs where our hopping arc is too shallow
🏃
1:00:20Note that the top stairs sometimes flash in and out of our fog range
🏃
1:00:20Note that the top stairs sometimes flash in and out of our fog range
🏃
1:00:20Note that the top stairs sometimes flash in and out of our fog range
🏃
1:02:26Determine to finish up the asset packing for sounds, admiring our realistic lighting
🏃
1:02:26Determine to finish up the asset packing for sounds, admiring our realistic lighting
🏃
1:02:26Determine to finish up the asset packing for sounds, admiring our realistic lighting
🏃
1:04:24Note our need to assess the ZDisplacement calculation for spinning entities
1:04:24Note our need to assess the ZDisplacement calculation for spinning entities
1:04:24Note our need to assess the ZDisplacement calculation for spinning entities
1:05:03Listen to and organise our audio assets
🗹
1:05:03Listen to and organise our audio assets
🗹
1:05:03Listen to and organise our audio assets
🗹
1:08:33Set up to parse audio assets
📖
1:08:33Set up to parse audio assets
📖
1:08:33Set up to parse audio assets
📖
1:10:12Add a "music" block to intro_cutscene.hht, introducing IntroCutscene and TitleScreen tags
1:10:12Add a "music" block to intro_cutscene.hht, introducing IntroCutscene and TitleScreen tags
1:10:12Add a "music" block to intro_cutscene.hht, introducing IntroCutscene and TitleScreen tags
1:14:32Add "sound" blocks to base_game.hht, introducing tags for our audio assets, including the concept of a Variant
1:14:32Add "sound" blocks to base_game.hht, introducing tags for our audio assets, including the concept of a Variant
1:14:32Add "sound" blocks to base_game.hht, introducing tags for our audio assets, including the concept of a Variant
1:18:15Enable ParseTopLevelBlock() to handle "music" and "sound" blocks
1:18:15Enable ParseTopLevelBlock() to handle "music" and "sound" blocks
1:18:15Enable ParseTopLevelBlock() to handle "music" and "sound" blocks
1:27:55Introduce ProcessAudioImport() and ParseWAV(), guided by the PNG equivalents
1:27:55Introduce ProcessAudioImport() and ParseWAV(), guided by the PNG equivalents
1:27:55Introduce ProcessAudioImport() and ParseWAV(), guided by the PNG equivalents
1:36:52Copy in our WAVE code from test_asset_builder.c
1:36:52Copy in our WAVE code from test_asset_builder.c
1:36:52Copy in our WAVE code from test_asset_builder.c
1:40:51The Resource Interchange File Format5
📖
1:40:51The Resource Interchange File Format5
📖
1:40:51The Resource Interchange File Format5
📖
1:42:14Reacquaint ourselves with LoadWAV()
📖
1:42:14Reacquaint ourselves with LoadWAV()
📖
1:42:14Reacquaint ourselves with LoadWAV()
📖
1:45:54Change ParseWAV() to process the entire stream, delegating any chunking to users of LoadWAV()
1:45:54Change ParseWAV() to process the entire stream, delegating any chunking to users of LoadWAV()
1:45:54Change ParseWAV() to process the entire stream, delegating any chunking to users of LoadWAV()
1:50:29Audio sample rate and bit depth
🗩
1:50:29Audio sample rate and bit depth
🗩
1:50:29Audio sample rate and bit depth
🗩
1:55:32#if 0 out ParseWAV() with the determination to do it tomorrow
1:55:32#if 0 out ParseWAV() with the determination to do it tomorrow
1:55:32#if 0 out ParseWAV() with the determination to do it tomorrow
1:56:04Q&A
🗩
1:56:04Q&A
🗩
1:56:04Q&A
🗩
1:56:51jkfsda Q: Will C++ add CSP type concurrency in the next edition?
🗪
1:56:51jkfsda Q: Will C++ add CSP type concurrency in the next edition?
🗪
1:56:51jkfsda Q: Will C++ add CSP type concurrency in the next edition?
🗪
1:58:35ejgremlin Q: Have you seen Bret Victor's talk Inventing on Principle?
🗪
1:58:35ejgremlin Q: Have you seen Bret Victor's talk Inventing on Principle?
🗪
1:58:35ejgremlin Q: Have you seen Bret Victor's talk Inventing on Principle?
🗪
1:58:41ivereadthesequel Q: On the pre-stream I'd asked about finding the filter kernels and you asked whether I meant the integer one or the floating point. Do you mind explaining how you found each? Thanks!
🗪
1:58:41ivereadthesequel Q: On the pre-stream I'd asked about finding the filter kernels and you asked whether I meant the integer one or the floating point. Do you mind explaining how you found each? Thanks!
🗪
1:58:41ivereadthesequel Q: On the pre-stream I'd asked about finding the filter kernels and you asked whether I meant the integer one or the floating point. Do you mind explaining how you found each? Thanks!
🗪
2:00:47jkfsda Q: Have you tried Oni?6
🗪
2:00:47jkfsda Q: Have you tried Oni?6
🗪
2:00:47jkfsda Q: Have you tried Oni?6
🗪
2:02:15philliptrudeau Q: Don't we want 32-bit floating samples for high quality audio streams? Additionally, are we planning to support surround sound later?
🗪
2:02:15philliptrudeau Q: Don't we want 32-bit floating samples for high quality audio streams? Additionally, are we planning to support surround sound later?
🗪
2:02:15philliptrudeau Q: Don't we want 32-bit floating samples for high quality audio streams? Additionally, are we planning to support surround sound later?
🗪
2:04:41ormone88 Q: What do you think about procedural audio? Will we explore something about this during future streams?
🗪
2:04:41ormone88 Q: What do you think about procedural audio? Will we explore something about this during future streams?
🗪
2:04:41ormone88 Q: What do you think about procedural audio? Will we explore something about this during future streams?
🗪
2:04:50ivereadthesequel Q: Thanks! Also, why was the windowed sinc worse than the one you found, if sincs are ideal? Does the kernel need slight changes from the ideal's values once it is windowed?
🗪
2:04:50ivereadthesequel Q: Thanks! Also, why was the windowed sinc worse than the one you found, if sincs are ideal? Does the kernel need slight changes from the ideal's values once it is windowed?
🗪
2:04:50ivereadthesequel Q: Thanks! Also, why was the windowed sinc worse than the one you found, if sincs are ideal? Does the kernel need slight changes from the ideal's values once it is windowed?
🗪
2:05:56centhusiast Q: Is it possible to write a graphics card debugger like NSight, or is it something that has to be done by graphics card vendors?
🗪
2:05:56centhusiast Q: Is it possible to write a graphics card debugger like NSight, or is it something that has to be done by graphics card vendors?
🗪
2:05:56centhusiast Q: Is it possible to write a graphics card debugger like NSight, or is it something that has to be done by graphics card vendors?
🗪
2:07:27godgifts handmade_hero Hello, I'm a computer science student but recently started following your series on YouTube. They helped me a lot because you explain really good in depth. I just want to say thanks for all the work you do for us and I hope that I never catch up with the series because you will never stop doing them
🗪
2:07:27godgifts handmade_hero Hello, I'm a computer science student but recently started following your series on YouTube. They helped me a lot because you explain really good in depth. I just want to say thanks for all the work you do for us and I hope that I never catch up with the series because you will never stop doing them
🗪
2:07:27godgifts handmade_hero Hello, I'm a computer science student but recently started following your series on YouTube. They helped me a lot because you explain really good in depth. I just want to say thanks for all the work you do for us and I hope that I never catch up with the series because you will never stop doing them
🗪
2:08:31ivereadthesequel Q: I'm still wondering why we should choose git over TRAVELMAN? Despite its simplicity, I'm just not convinced it's better
🗪
2:08:31ivereadthesequel Q: I'm still wondering why we should choose git over TRAVELMAN? Despite its simplicity, I'm just not convinced it's better
🗪
2:08:31ivereadthesequel Q: I'm still wondering why we should choose git over TRAVELMAN? Despite its simplicity, I'm just not convinced it's better
🗪
2:09:24Add the -diagnostics:column flag to our cl line in build.bat, for columnar errors
2:09:24Add the -diagnostics:column flag to our cl line in build.bat, for columnar errors
2:09:24Add the -diagnostics:column flag to our cl line in build.bat, for columnar errors
2:11:54jbcgannon Q: You made an off-hand comment on a source control tool you made yourself. I take it few have seen it other than yourself?
🗪
2:11:54jbcgannon Q: You made an off-hand comment on a source control tool you made yourself. I take it few have seen it other than yourself?
🗪
2:11:54jbcgannon Q: You made an off-hand comment on a source control tool you made yourself. I take it few have seen it other than yourself?
🗪
2:12:15aidsjorb Q: They intentionally didn't make reporting columns the default behavior in order to not break backwards compatibility
🗪
2:12:15aidsjorb Q: They intentionally didn't make reporting columns the default behavior in order to not break backwards compatibility
🗪
2:12:15aidsjorb Q: They intentionally didn't make reporting columns the default behavior in order to not break backwards compatibility
🗪
2:12:51jkfsda Q: Have you seen V-lang? Is it vaporware?
🗪
2:12:51jkfsda Q: Have you seen V-lang? Is it vaporware?
🗪
2:12:51jkfsda Q: Have you seen V-lang? Is it vaporware?
🗪
2:13:20ivereadthesequel handmade_hero Since there are so few questions, can I just comment that your coding style is super pleasing? Just popping out structs left and right, so procedural, no weird modern C++-isms, verbose variable and function names so there's no ambiguity. It's nice and has had a huge influence on my style for the better!
🗪
2:13:20ivereadthesequel handmade_hero Since there are so few questions, can I just comment that your coding style is super pleasing? Just popping out structs left and right, so procedural, no weird modern C++-isms, verbose variable and function names so there's no ambiguity. It's nice and has had a huge influence on my style for the better!
🗪
2:13:20ivereadthesequel handmade_hero Since there are so few questions, can I just comment that your coding style is super pleasing? Just popping out structs left and right, so procedural, no weird modern C++-isms, verbose variable and function names so there's no ambiguity. It's nice and has had a huge influence on my style for the better!
🗪
2:16:06roam00010011 Q: Hit a wall, every company I lookup demands OOP, and not a healthy balance of OO and procedural, but the ultra radical OO and nothing but OO
🗪
2:16:06roam00010011 Q: Hit a wall, every company I lookup demands OOP, and not a healthy balance of OO and procedural, but the ultra radical OO and nothing but OO
🗪
2:16:06roam00010011 Q: Hit a wall, every company I lookup demands OOP, and not a healthy balance of OO and procedural, but the ultra radical OO and nothing but OO
🗪
2:16:24centhusiast Q:At work, I started rewriting a python package in C since its performance is so bad that nobody wants it anymore. I was wondering why people do not write in native code that often anymore and choose the scripting languages that causes lots of problems further down the road. Do you have any comment on that?
🗪
2:16:24centhusiast Q:At work, I started rewriting a python package in C since its performance is so bad that nobody wants it anymore. I was wondering why people do not write in native code that often anymore and choose the scripting languages that causes lots of problems further down the road. Do you have any comment on that?
🗪
2:16:24centhusiast Q:At work, I started rewriting a python package in C since its performance is so bad that nobody wants it anymore. I was wondering why people do not write in native code that often anymore and choose the scripting languages that causes lots of problems further down the road. Do you have any comment on that?
🗪
2:18:12End it there
🗩
2:18:12End it there
🗩
2:18:12End it there
🗩