3 ms·
I wonder why there is no context-aware vcs; e.g. one that understanding the language and resolve diffs at a functional level. Would make change tracking and mer
by NKCSS 10y ago
I wonder why there is no context-aware vcs; e.g. one that understanding the language and resolve diffs at a functional level. Would make change tracking and merging so much easier. Alternative would be to split each function into a separate file, for C# that would mean partials and the compiler just joins them.
- bunderbunder 10y agoPossibly because then you'd need a parser for every language someone might use. But, since you mention C#, see: https://www.semanticmerge.com https://www.semanticmerge.com
- mbrock 10y agoGit is intentionally stupid about file contents to make it simple and robust. Smalltalk has some systems like you describe. They're integrated with the compiler and Smalltalk makes that easy. Otherwise I think it's mostly that such systems are lots of work to make and maintain. Treating files as plain text has huge benefits when you consider simplicity and flexibility. The real "UNIX philosophy" is "worse is better": simpler, quicker, finished solutions are more likely to flourish (except X11).
- palunon 10y agoGit does support external diff and merge tools. I guess they don't want to support every language ever used directly inside the VCS.