[{"data":1,"prerenderedAt":365},["ShallowReactive",2],{"project-4443321":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":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":42,"post_text":45,"what":46,"said":84,"maker_in_thread":209,"shape":217,"grid":221,"attempts":327,"same_week":328,"maker_shows":43,"maker_hidden":357,"reader_version":358,"card":359},"4443321","phoenixfs","A versioned filesystem inspired by Git","title","Show HN: A versioned filesystem inspired by Git","http:\u002F\u002Fgithub.com\u002Fartagnon\u002Fphoenixfs","github.com","artagnon",1346157263,2012,115,46,181,1677,11,"notable","infrastructure","versioned filesystem","other",[21,24,25,26],"git","fuse","file revisions","curious",0.243,{"positive":30,"neutral":31,"mixed":32,"critical":33},6,12,0,2,20,{"idea":36,"execution":38,"performance":40,"docs":41},{"positive":37,"critical":32},4,{"positive":39,"critical":33},1,{"positive":32,"critical":32},{"positive":32,"critical":32},[43,32,32,32,32,32,32,32,32,43,32,44,43,43,39,32,32,43,43,32,43,32,44,32,32,32,44,32,39,43,43,32,43,43,44,32,44,32,43,44],3,5,null,{"problem":47,"audience":45,"pricing":45,"motivation":45,"time_to_build":45,"stack":54,"openness":81,"stage":82,"team_size":83},{"value":48,"source":49,"evidence":50},"Automatically keeps revisions of files as they are edited and saved, without manual commits","maker",[51],{"id":52,"by":11,"text":53},"4443903","The seamless workflow that only a full-blown filesystem can offer- new revisions are created automatically when files are edited and saved.",[55,63,72],{"value":56,"source":57,"evidence":58},"C","inferred",[59],{"id":60,"by":61,"text":62},"4445603","halayli","https:\u002F\u002Fgithub.com\u002Fartagnon\u002Fphoenixfs\u002Fblob\u002Fmaster\u002Fdelta.c#L489 https:\u002F\u002Fgithub.com\u002Fartagnon\u002Fphoenixfs\u002Fblob\u002Fmaster\u002Ffuse.c#L594 Missed malloc check.…",{"value":64,"source":49,"evidence":65},"FUSE",[66,69],{"id":67,"by":11,"text":68},"4444385","Yes. The event is called `release`: see phoenixfs_release() in fuse.c:374.",{"id":70,"by":11,"text":71},"4444519","There's a FUSE for OS X, so a port should be possible (should be possible for other *nix too, as long as they have FUSE). I currently don't have access to an OS X machine, so no…",{"value":73,"source":49,"evidence":74},"git packfile code",[75,78],{"id":76,"by":11,"text":77},"4443820","It's a bit of an overkill for my purposes- I've only copied out (and modified) a little of the packfile\u002F packfile index generation code from git.git. Plus, dealing with the…",{"id":79,"by":11,"text":80},"4444550","1. I only use (a modified version of) packfile\u002F packfile idx from Git. No commits are actually created. It sounds like you're looking for something like flashbake…","open_source","prototype","unknown",{"praise":85,"objections":117,"requests":128,"questions":151,"alternatives":182},[86,102],{"value":87,"source":88,"evidence":89},"Impressive technical feat and an interesting concept","commenter",[90,94,98],{"id":91,"by":92,"text":93},"4443781","akg","Congrats on a tremendous technical feat! Any advantage of using a full-scale FS over something like git-annex (http:\u002F\u002Fgit-annex.branchable.com\u002F)?",{"id":95,"by":96,"text":97},"4443739","nicholassmith","This looks pretty good. I had a look at doing something similar (but wayyyyy smaller scale than full FS), and gave up as there was many dragons. Nice to see someone pull it off.",{"id":99,"by":100,"text":101},"4443831","prezjordan","Wow, awesome project!",{"value":103,"source":88,"evidence":104},"Reminds commenters of VMS file versioning",[105,109,113],{"id":106,"by":107,"text":108},"4444081","fuzzix","I like it. It reminds me of VMS's versioning. I implemented something like VMS style versioning with Fuse and Perl for a talk\u002Fdemo a couple of years ago - it simply created a new…",{"id":110,"by":111,"text":112},"4444239","mosburger","Nice! Reminds me a bit of a better version of VMS's versioned filesystem. Also: I'm old enough to have used VMS's filesystem. :(",{"id":114,"by":115,"text":116},"4444744","josephscott","Agreed, VMS filesystem was the first thing that came to mind for me as well. Seems rather sad that in 2012 we don't have that as a standard feature like we did back then. For the…",[118,122],{"value":119,"source":88,"evidence":120},"Bugs noted in code such as missing malloc and unchecked system call returns",[121],{"id":60,"by":61,"text":62},{"value":123,"source":88,"evidence":124},"Fsnotify-style watching cannot give atomic per-edit revisions",[125],{"id":126,"by":61,"text":127},"4445685","No, you cannot achieve atomicity using these calls. By the time you receive a notification the file might have been edited twice.",[129,140,144],{"value":130,"source":88,"evidence":131},"Mac OS X support",[132,136],{"id":133,"by":134,"text":135},"4444472","tolmasky","OK, first off -- awesome! Secondly, I have a number of questions that probably have to do with the fact that I'm unfamiliar with a lot of this stuff. 1. Would it be possible to…",{"id":137,"by":138,"text":139},"4444418","jblz","This is tremendously cool! Any plans for MacOS (or other *nix) support?",{"value":141,"source":88,"evidence":142},"Git-compatible commits and push to remote",[143],{"id":133,"by":134,"text":135},{"value":145,"source":88,"evidence":146},"Good handling of large binary files",[147],{"id":148,"by":149,"text":150},"4444858","gcr","Can this handle large binary files? That's been my main problem with storing backups of my servers in git, and it's one of the strong-ish points of git-annex. There seems to be…",[152,160,167],{"value":153,"source":88,"evidence":154},"Can it be built on top of git or libgit2",[155,156],{"id":133,"by":134,"text":135},{"id":157,"by":158,"text":159},"4443650","al3xbio","Nice. Why not use libgit2 (https:\u002F\u002Fgithub.com\u002Flibgit2\u002Flibgit2)?",{"value":161,"source":88,"evidence":162},"Does it version whole trees or individual files",[163],{"id":164,"by":165,"text":166},"4444587","p9idf","Does your file system create revisions of the entire tree, or only revisions of individual files within the tree as VMS and RCS do?† Because there are some problems with the…",{"value":168,"source":88,"evidence":169},"When does a new revision get created (on close, fsync)",[170,174,178],{"id":171,"by":172,"text":173},"4443791","icebraining","Extremely interesting. I wonder: when does it \"commit\"\u002Fcreate a new rev?",{"id":175,"by":176,"text":177},"4444115","rix0r","So on close() ?",{"id":179,"by":180,"text":181},"4465775","ferrouswheel","What about when a file is fsynced?",[183,187,198,205],{"value":184,"source":88,"evidence":185},"git-annex",[186],{"id":91,"by":92,"text":93},{"value":188,"source":88,"evidence":189},"ZFS and btrfs snapshots",[190,194],{"id":191,"by":192,"text":193},"4443879","adam-a","Sounds a bit like ZFS snapshots[1]. I always wished that would catch on a bit more, seems like it would be very useful. [1]: http:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FZFS#Snapshots_and_clones",{"id":195,"by":196,"text":197},"4444637","justinmk","And btrfs[1] of course. There's also git bup[2] and git-annex[3]. [1] http:\u002F\u002Fwww.dedoimedo.com\u002Fcomputers\u002Fbtrfs-snapshots.html [2] https:\u002F\u002Fgithub.com\u002Fapenwarr\u002Fbup [3]…",{"value":199,"source":88,"evidence":200},"SparkleShare",[201],{"id":202,"by":203,"text":204},"4445300","s_tec","Have you tried SparkleShare? It sounds exactly like what you want. It connects to a normal Git server and presents the repository as a Dropbox-esque folder. It has support for…",{"value":206,"source":88,"evidence":207},"bup",[208],{"id":148,"by":149,"text":150},{"comments":210,"answered":210,"key":211},8,[212,213,214],{"id":79,"text":80},{"id":52,"text":53},{"id":215,"text":216},"4444634","Revisions of individual files only. Yeah, you can't do that kind of sorcery with phoenixfs. † Fixed. Sorry about that.",{"commenters":218,"max_depth":30,"maker_replies":210,"first_comment_mins":219,"lifespan_hours":220},35,78,109,[222,224,228,230,233,236,239,241,243,246,249,250,251,253,254,255,259,261,265,268,271,272,275,279,280,282,283,286,287,290,293,294,295,297,301,302,304,305,306,307,310,314,317,320,322,324],[133,32,43,223,134,32],"project\u002Fneutral\u002Fidea",[225,32,32,226,227,32],"4444502","other\u002Fneutral\u002Fnone","martythemaniak",[229,32,32,226,134,32],"4444534",[231,32,32,226,232,32],"4445434","debacle",[234,32,32,226,235,32],"4446287","zerovox",[237,32,32,226,238,32],"4446572","RKearney",[79,32,32,240,11,39],"maker\u002Fneutral\u002Fidea",[202,32,32,242,203,32],"other\u002Fneutral\u002Fidea",[244,32,32,226,245,32],"4446109","sciurus",[247,32,32,248,134,32],"4446901","other\u002Fpositive\u002Fnone",[91,39,43,223,92,32],[52,39,32,240,11,39],[106,39,44,252,107,32],"project\u002Fpositive\u002Fidea",[164,39,43,223,165,32],[215,39,32,240,11,39],[256,39,43,257,258,32],"4445464","project\u002Fneutral\u002Fexecution","spartango",[126,39,39,260,61,32],"project\u002Fcritical\u002Fexecution",[262,39,32,263,264,32],"4445809","commenter\u002Fneutral\u002Fexecution","gwern",[266,39,32,263,267,32],"4445848","rhizome",[269,39,43,270,258,32],"4445978","project\u002Fneutral\u002Fperformance",[148,33,43,270,149,32],[273,33,32,274,11,39],"4444902","maker\u002Fpositive\u002Fperformance",[276,43,32,277,278,32],"4445082","other\u002Fpositive\u002Fidea","tensor",[157,37,43,257,158,32],[76,37,32,281,11,39],"maker\u002Fneutral\u002Fexecution",[110,44,44,252,111,32],[284,44,32,226,285,32],"4444730","ScottBurson",[114,44,32,226,115,32],[288,44,32,226,289,32],"4444789","Hominem",[291,44,32,226,292,32],"4444828","ylem",[191,30,44,252,192,32],[195,30,32,242,196,32],[60,296,39,260,61,32],7,[298,296,43,299,300,32],"4446838","maker\u002Fneutral\u002Fdocs","voltagex_",[171,210,43,223,172,32],[303,210,32,240,11,39],"4443828",[175,210,43,257,176,32],[67,210,32,281,11,39],[179,210,43,281,180,32],[95,308,44,309,96,32],9,"project\u002Fpositive\u002Fexecution",[311,312,32,242,313,32],"4446280",10,"jarvuschris",[315,18,44,252,316,32],"4444225","jeremyjh",[318,18,32,242,319,32],"4445730","RobotCaleb",[137,31,43,321,138,32],"project\u002Fneutral\u002Fnone",[70,31,32,323,11,39],"maker\u002Fneutral\u002Fperformance",[99,325,44,326,100,32],13,"project\u002Fpositive\u002Fnone",[],[329,334,338,342,347,352],{"id":330,"name":331,"points":332,"category":333},"4424081","Watsi",462,"web_saas",{"id":335,"name":336,"points":337,"category":333},"4438194","Business.txt",264,{"id":339,"name":340,"points":341,"category":20},"4427174","GoScale",118,{"id":343,"name":344,"points":345,"category":346},"4448043","Coding.fm",81,"productivity",{"id":348,"name":349,"points":350,"category":351},"4439772","pry-rescue",69,"dev_tools",{"id":353,"name":354,"points":355,"category":356},"4429053","ASCII Animals",62,"creative",false,"v2",{"id":360,"name":5,"line":6,"ai":357,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":361,"top":18,"kw":362,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":363,"url":9,"mix":364,"praise":87,"objection":119,"sub":21},4443321,0.24,[21,24,25,26],"3000000003053310033030500050133033505035",[30,31,32,33],1793990884706]