Skip to content

Comment on On concepts and realitiesparent

Comments

I don't know what you have in mind for "fixing" version control, but I'm actually working on something like that with a friend.

The basic idea is to diff and merge ASTs rather than long strings. We have some more specific ideas about specific features and advantages, but since we have almost no code yet I won't get into them. We should (since this is actually for school, we have to) have a working prototype several weeks from now, so I'll talk more about it then.

We're not really fixing "version control" per se; rather, we're building a tool that you could use in tandem with existing systems like Git. So we'll help with diffs, interactive merges (maybe even automatic conflict resolutions) and some other stuff but let the actual storage and versioning stay with Git (or any other VCS).

I can't make any promises, but if we get something interesting working I'll be sure to post it here. We actually tried to do something like this for a hackathon once, and it sort of worked, but was really a big hack throughout. Hopefully we'll get it right this time.

That's pretty much what I had in mind: diff at language level not at text level.

Actually, ideally you would have content-aware DIFFs. So source code has one visualiser, images another, each binary format another.

That would make the experience much better.

Sounds awesome. I've been complaining about the lack of AST-awareness in VCS for a few years now, though I haven't done anything about it. Please be sure to keep everyone up to date, even if it's only with the problems you discover about the approach.

Yes, this is a big deal and hasn't been attempted nearly enough yet. I believe Git will let you implement your own "hunk" handlers (I know Darcs would) so you should be able to do it there.

Once you have that it should be much easier to check in more granularity, produce a more accurate map of dependencies and roll out refactorings that didn't work out.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.