Ask HN: "Smart" VCS with a built-in interpreter?
1–5 of 5 posts
Re: Ask HN: "Smart" VCS with a built-in interpreter?
#2Re: Ask HN: "Smart" VCS with a built-in interpreter?
#3What sort of enhanced user experience do you see this providing? Automated change summaries?
- Robustness of versioning. Certain types of errors will become extinct. For example, refactoring will update a variable in all 10 places instead of 9/10.
- VCS can take on tasks of an integration server. The VCS now will be able to make sure that your project "compiles" before accepting a commit.
The real motivation behind this would be to make branch management easier, since the VCS has now more information.
Re: Ask HN: "Smart" VCS with a built-in interpreter?
#4It's generally a very hard problem to go from a series of character updates back to a semantic update. A lot of people say "Well, just parse the source code before check-in, diff the parse trees, and store the parsed representation." The problem is that a lot of information is discarded when you go from flat text to parse trees. Comments, whitespace, linebreaks, code-formatting, etc. What happens if you rename a variable, this makes the line grow longer than 80 characters, and that forces you to add a linebreak and reindent the lines following it? That's trivial for a human to do, fairly hard for an automated refactoring tool (trust me on this ;-)), and nearly impossible to reverse in a manner that preserves the original formatting intent.
Re: Ask HN: "Smart" VCS with a built-in interpreter?
#5I've heard that Darcs had a plugin that did this, but it was hella slow (like much of the rest of Darcs). It's generally a very hard problem to go from a series of character updates back to a semantic update. A lot of people say "Well, just parse the source code before check-in, diff the parse trees, and store the parsed representation." The problem is that a lot of information is discarded when you go from flat text…