Answers.Body: <p>I think you are looking for <a href="https://en.wikipedia.org/wiki/Retroactive_data_structure" rel="nofollow noreferrer">retroactive data structures</a>.</p>
  <p>These are used with Git (<a href="https://thescipub.com/pdf/jcssp.2020.906.915.pdf" rel="nofollow noreferrer">ref</a>)</p>
  <p>The MIT Open Courseware for <a href="https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-851-advanced-data-structures-spring-2012/index.htm" rel="nofollow noreferrer">Advanced Data Structures</a> by Prof. Erik Demaine teaches this in <a href="https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-851-advanced-data-structures-spring-2012/lecture-videos/session-2-retroactive-data-structures/" rel="nofollow noreferrer">Session 2: Retroactive Data Structures</a></p>
  <p>HTH</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-09-27T17:34:12.553Z
Answers.Text: From the description on that wikipedia page (and from the article you linked to as well), it sounds like git uses persistent data structures rather than retroactive.  Github at least uses blobs, which are immutable.
Answers.UserDisplayName: Ben I.
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-10-01T12:05:18.740Z
Answers.Text: @BenI. While I am not Git Jedi I do recall that deep down in Git one can retroactively change a commit, thus retroactive instead of persistent. I don't have the time at present to research this but the 8-ball says `sounds reasonable`
Answers.UserDisplayName: Guy Coder
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-10-03T14:21:13.397Z
Answers.Text: No, no, I mean that the reference you linked to states outright that it's persistent.
Answers.UserDisplayName: Ben I.
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-09-27T15:13:05.047Z
Answers.LastActivityDate: 2021-09-27T15:13:05.047Z
Answers.UserDisplayName: Guy Coder
Body: <p>A few years ago I visited a university (very likely an US university) lecture website that teaches perhaps file system or version control system (I'm really unsure here), which gradually lead students to build a simplified git. Can someone who has seen something similar tell me what lecture is it?</p>
  <p>(I have been searching using varied keywords but got nothing.)</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-04-29T02:38:56.137Z
Comments.Text: This?  https://www.freecodecamp.org/news/boost-programming-skills-read-git-code/amp/
Comments.UserDisplayName: Rushi
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-04-29T08:05:10.850Z
Comments.Text: @Rusi no, I remember it was an university lecture.
Comments.UserDisplayName: Rahn
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-04-30T12:31:59.997Z
Comments.Text: IIRC, CMU does a big git-creation lab, though I can't find any links.  ("git" is such a popular search term!)
Comments.UserDisplayName: Ben I.
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-22T20:21:29.760Z
Comments.Text: Not a university lecture, but [build your own git](https://github.com/danistefanovic/build-your-own-x#build-your-own-git) has a handful of useful resources.
Comments.UserDisplayName: ggorlen
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-28T15:23:09.687Z
Comments.Text: I am guessing that you are asking about the beautifully elegant internals of `git`, not the ugly user interface.
Comments.UserDisplayName: ctrl-alt-delor
Tags: <git>
Title: a lecture that guides students to re-create git
ThreadText: # a lecture that guides students to re-create git
  
  (Asked by: username_0 on 2021-04-28)
  
  A few years ago I visited a university (very likely an US university) lecture website that teaches perhaps file system or version control system (I'm really unsure here), which gradually lead students to build a simplified git. Can someone who has seen something similar tell me what lecture is it?
  
  (I have been searching using varied keywords but got nothing.)
  
  **Tags:** git
  
  > **Comments:**
  > **username_1**: This?  https://www.freecodecamp.org/news/boost-programming-skills-read-git-code/amp/  
  > **username_0**: @Rusi no, I remember it was an university lecture.  
  > **username_2**: IIRC, CMU does a big git-creation lab, though I can't find any links.  ("git" is such a popular search term!)  
  > **username_3**: Not a university lecture, but [build your own git](https://github.com/danistefanovic/build-your-own-x#build-your-own-git) has a handful of useful resources.  
  > **username_4**: I am guessing that you are asking about the beautifully elegant internals of `git`, not the ugly user interface.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_5 on 2021-09-27. Score: 1
  
  I think you are looking for [retroactive data structures](https://en.wikipedia.org/wiki/Retroactive_data_structure).
  
  These are used with Git ([ref](https://thescipub.com/pdf/jcssp.2020.906.915.pdf))
  
  The MIT Open Courseware for [Advanced Data Structures](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-851-advanced-data-structures-spring-2012/index.htm) by Prof. Erik Demaine teaches this in [Session 2: Retroactive Data Structures](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-851-advanced-data-structures-spring-2012/lecture-videos/session-2-retroactive-data-structures/)
  
  HTH
  
  > **Comments:**
  > **username_2**: From the description on that wikipedia page (and from the article you linked to as well), it sounds like git uses persistent data structures rather than retroactive.  Github at least uses blobs, which are immutable.  
  > **username_5**: @BenI. While I am not Git Jedi I do recall that deep down in Git one can retroactively change a commit, thus retroactive instead of persistent. I don't have the time at present to research this but the 8-ball says `sounds reasonable`  
  > **username_2**: No, no, I mean that the reference you linked to states outright that it's persistent.  
  
  ---
  
  