blog

Personal blog
git clone git://git.laack.co/blog.git
Log | Files | Refs

my-ideal-vcs.md (1050B)


      1 # My Ideal VCS
      2 
      3 These are some things I want from a VCS and how I would implement that.
      4 
      5 - Patch based
      6 - Simple to use
      7 - Simple to understand
      8 - Minimal code
      9 - Written in C
     10 
     11 Most of the complexty from VCSs iss how they manage the resolution of conflicting changes. As such, I'd rather not implement that. This should be left as a job for either a) the editor/IDE or b) the humans responsible for the changes. 
     12 
     13 I get concerned by automatic merge conflict resolutions because changes within given file that act upon similar lines of code can often cause unexpected side effects when they are reliant upon the same variables in code. Given this, a human must be in the loop when resolving these conflicts, unless an exceptionally sophisticated VCS uses ASTs to determine if there is interdependence between the code. As such, I'd like my VCS to see when there are changes from differing patches on the same files and inform the use about this. These conflicts should then be resolved by a subsequent patch that combines the prior two patches into one.