TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Large-scale, well-typed edits in Unison, and reimagining version control

44 pointsby dahjellealmost 10 years ago

4 comments

Rexxaralmost 10 years ago
At the first sight, I though it was a new version of <a href="https:&#x2F;&#x2F;www.cis.upenn.edu&#x2F;~bcpierce&#x2F;unison&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.cis.upenn.edu&#x2F;~bcpierce&#x2F;unison&#x2F;</a> but it seems completely different.
TheLoneWolflingalmost 10 years ago
I personally like the (language-dependent) &quot;series of actions&quot; approach.<p>So, you quite literally send to the VCS &quot;add this parameter with default value &lt;foo&gt; to this function&quot;, &quot;make a copy of this function&quot;, &quot;add this function&quot;, etc. With transactions.<p>And the VCS &quot;just&quot; replays the edits. Note that the VCS will occasionally have to munge the human-readable names in the case of what would be otherwise a conflict. But the VCS doesn&#x27;t deal with things at that level anyways. You really should end up dealing with things at the AST level and rebuilding the source code when necessary.<p>Think of it like a refactoring tool integrated with the VCS.
pshcalmost 10 years ago
This is a huge surprise! I had been under the assumption that asynchronous semantic edits were the only true way forward. Synchronous large-scale edits?! If you can make it work, even only half of the time... that is an enormous productivity boost.<p>Well--fair warning, it&#x27;s happy hour--but allow me dump my incoherent gut armchair objections.<p>- Large-scale edits mess with large-scale invariants. Can this edit calculus and scoping mechanism truly deal with arbitrary changes? Or is &quot;arbitrary changes&quot; a white rabbit, and can you come up with a calculus that handles all &quot;reasonable&quot; changes?<p>- I had previously thought that the only way we&#x27;re going to get past the {software upgrade,data migration} bottleneck is through semantic VC. Developers make mistakes. Software evolution as a gradient (rather than the status quo of progress in fits-and-starts) seems extremely unsafe. Does Unison make all mistakes undo-able?<p>- Won&#x27;t &quot;branchless&quot; conflict-free versioning be the same as constant forking, creating an enormously fragmented software project? (So postmodern!) How do you get everyone back on the same &quot;master&quot; mainline; surely not all possible Edits can commute?<p>I guess all these concerns are irrelevant if you treat synchronous editing as the golden path, and fall back to async for the hard stuff.
评论 #9709419 未加载
coolsunglassesalmost 10 years ago
Patch theory?
评论 #9710891 未加载
评论 #9710871 未加载