[{"data":1,"prerenderedAt":233},["ShallowReactive",2],{"project-14210877":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":39,"post_text":41,"what":42,"said":62,"maker_in_thread":124,"shape":129,"grid":133,"attempts":195,"same_week":196,"maker_shows":31,"maker_hidden":225,"reader_version":226,"card":227},"14210877","Pygit","Just enough git to push itself to GitHub","title","Show HN: Pygit – Just enough git to push itself to GitHub","http:\u002F\u002Fbenhoyt.com\u002Fwritings\u002Fpygit\u002F","benhoyt.com","benhoyt",1493295435,2017,208,23,155,2242,7,"notable","dev_tools","version control","library",[24,21,25,26,27],"git","python","github","git internals","debated",0.136,{"positive":31,"neutral":32,"mixed":32,"critical":33},4,1,3,9,{"idea":36,"docs":37},{"positive":31,"critical":33},{"positive":38,"critical":38},0,[40,32,38,38,40,38,38,38,38,33,38,38,32,40,38,38,32,38,38,38,33,38,40],5,null,{"problem":43,"audience":41,"pricing":41,"motivation":41,"time_to_build":41,"stack":55,"openness":61,"stage":61,"team_size":61},{"value":44,"source":45,"evidence":46},"Understanding how git works internally by building a minimal implementation","inferred",[47,51],{"id":48,"by":49,"text":50},"14211695","rpeden","Nice work! I love projects like this, because I think most of us would benefit from re-implementing our dev tools (at least partially) to develop a better understanding of how…",{"id":52,"by":53,"text":54},"14211794","dmytrish","Exercises like this are very educational for taking magic away from version control tools. Some time ago I did a similar exercise in Haskell: https:\u002F\u002Fgithub.com\u002FEarlGray\u002Fomit (it…",[56],{"value":57,"source":45,"evidence":58},"Python",[59],{"id":60},"post","unknown",{"praise":63,"objections":77,"requests":92,"questions":97,"alternatives":102},[64,70],{"value":65,"source":66,"evidence":67},"Educational for understanding git internals","commenter",[68,69],{"id":52,"by":53,"text":54},{"id":48,"by":49,"text":50},{"value":71,"source":66,"evidence":72},"Fun weekend project idea",[73],{"id":74,"by":75,"text":76},"14211697","BackwardSpy","Nice work! This seems like it could be a fun weekend project.",[78,85],{"value":79,"source":66,"evidence":80},"Name may be confused with pygit2",[81],{"id":82,"by":83,"text":84},"14213758","raziel2p","I'd reconsider the name, I'm sure pretty it will cause confusion with pygit2.",{"value":86,"source":66,"evidence":87},"Git's CLI behavior is hard to replicate faithfully",[88],{"id":89,"by":90,"text":91},"14213506","AtticusTheGreat","The thing is, all of these details are implemented in the git command line tool, not in a library. So it is pretty difficult to write a tool that works exactly the same way the…",[93],{"value":94,"source":66,"evidence":95},"Add branches, merges, and remote sync",[96],{"id":52,"by":53,"text":54},[98],{"value":99,"source":66,"evidence":100},"How many more lines would branches, merges and remote sync need",[101],{"id":52,"by":53,"text":54},[103,110,117],{"value":104,"source":66,"evidence":105},"Gitlet, a git implementation in JavaScript",[106],{"id":107,"by":108,"text":109},"14212890","chubot","Related: http:\u002F\u002Fgitlet.maryrosecook.com\u002F Gitlet is an implemention of Git in JavaScript. https:\u002F\u002Fmaryrosecook.com\u002Fblog\u002Fpost\u002Fgit-from-the-inside-out",{"value":111,"source":66,"evidence":112},"Dulwich, a pure-Python git implementation",[113],{"id":114,"by":115,"text":116},"14216227","krallja","See also Dulwich, a pure-Python Git implementation https:\u002F\u002Fgithub.com\u002Fjelmer\u002Fdulwich",{"value":118,"source":66,"evidence":119},"libgit2",[120],{"id":121,"by":122,"text":123},"14225752","steveklabnik","https:\u002F\u002Fgithub.com\u002Flibgit2\u002Flibgit2\u002Fpull\u002F3540 might be of interest (note that it's over a year old at this point)",{"comments":32,"answered":38,"key":125},[126],{"id":127,"text":128},"14213369","Good call! Thanks to Jekyll and Rouge, I added some light syntax highlighting.",{"commenters":130,"max_depth":31,"maker_replies":32,"first_comment_mins":131,"lifespan_hours":132},22,133,45,[134,136,138,142,145,146,149,152,155,157,161,163,166,167,171,174,176,179,183,186,189,192,193],[52,38,40,135,53,38],"project\u002Fpositive\u002Fidea",[89,38,32,137,90,38],"project\u002Fcritical\u002Fidea",[139,38,38,140,141,38],"14213891","other\u002Fneutral\u002Fnone","hdhzy",[143,38,38,140,144,38],"14214410","federicotdn",[48,32,40,135,49,38],[147,32,38,140,148,38],"14212482","pacaro",[150,32,38,140,151,38],"14214708","heywire",[153,32,38,140,154,38],"14213015","abecedarius",[107,156,38,140,108,38],2,[158,33,33,159,160,38],"14213149","maker\u002Fmixed\u002Fdocs","thinkpad20",[127,33,38,162,11,32],"maker\u002Fpositive\u002Fdocs",[164,31,38,140,165,38],"14211959","wooptoo",[82,40,32,137,83,38],[168,169,40,135,170,38],"14212903",6,"thaeli",[172,18,38,140,173,38],"14212092","nkantar",[114,175,38,140,115,38],8,[177,34,32,137,178,38],"14213209","zimbatm",[180,181,38,140,182,38],"14212751",10,"webaholic",[184,181,38,140,185,38],"14213221","acqq",[187,181,38,140,188,38],"14216181","saghm",[190,181,33,191,185,38],"14225706","project\u002Fneutral\u002Fidea",[121,181,38,140,122,38],[74,194,40,135,75,38],11,[],[197,202,206,211,216,221],{"id":198,"name":199,"points":200,"category":201},"14226889","jacquesmattheij.com",1264,"hardware",{"id":203,"name":204,"points":205,"category":20},"14254357","Cone",418,{"id":207,"name":208,"points":209,"category":210},"14240626","Kryptonite",338,"security_privacy",{"id":212,"name":213,"points":214,"category":215},"14212054","Helio Workstation",305,"creative",{"id":217,"name":218,"points":219,"category":220},"14245538","VPS Comparison",228,"infrastructure",{"id":222,"name":223,"points":224,"category":220},"14246334","MStream",162,false,"v2",{"id":228,"name":5,"line":6,"ai":225,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":229,"top":18,"kw":230,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":231,"url":9,"mix":232,"praise":65,"objection":79,"sub":21},14210877,0.14,[24,21,25,26,27],"51005000030015001000305",[31,32,32,33],1794036554809]