https://alarmingdevelopment.org/?p=1570 Skip to content Alarming Development Alarming Development Dispatches from the User Liberation Front Posted on October 19, 2021 by Jonathan Edwards Version Control for Structure Editing That's the headline for my latest project (with Tomas Petricek), presented at HATRA. [paper] [recorded talk] With this work I am finally confronting the demon cursing my work: version control. If we are to liberate programming from text we need to make structure editing work, including version control. After all, there will be limited benefit from structure editing if collaboration forces us to return to text editing. It feels like this chronic problem has been dragging me down forever. I've spent endless effort trying to handle differencing and merging with embedded unique IDs, but I never got it fully worked out, and it remained as technical "dark matter" clogging all my projects. I finally had to accept that the whole approach wasn't working, and start over. I've turned to the idea of Operational Transformation (OT), which is how Google Docs works. But OT does synchronization, not version control, so I've repurposed and generalized it to support long-lived variants with difference inspection and manual merging. Surprisingly, it seems no one has done this before, and I had to invent a new theory. The result is "high-level" version control. By observing the history of edits we can do much more intelligent version control. For example a rename refactoring is a single atomic operation that does not conflict with any other, whereas in textual VC it conflicts with every change on the same line as an instance of the name. There is also a big opportunity to simplify the conceptual model of version control, which is frankly an utter disaster in git. Perhaps version control is actually the weak point of the textual edifice, where we might be able to win a battle. The paper situates our work as reviving the "image-based" programming model of Smalltalk and LISP machines and other beloved systems like HyperCard. Images combied all code and data into harmonious and habitable programming worlds. But he difficulty of collaboration and distribution were major blockers for image-based systems. Because images combine code and data, we must also deal with schema change, which we talk about in the paper. We see schema change as another overlooked benefit to structure editing to help incentivize the move from text. We have a long way to go towards that vision, but at least this paper is a concrete step. I haven't published a paper in ages. Thanks to Tomas for helping me reboot. Share this: * Twitter * Email * CategoriesGeneral Leave a Reply Cancel reply Post navigation Previous PostPrevious I wrote a paper Links * About me * Email me * Subtext Meta * Log in * Entries feed * Comments feed * WordPress.org Subscribe to Blog via Email Email Address [ ] Subscribe Archives Archives [Select Month ] Twitter My Tweets * RSS - Posts * RSS - Comments Follow Us Proudly powered by WordPress Send to Email Address [ ] Your Name [ ] Your Email Address [ ] [ ] loading [Send Email] Cancel Post was not sent - check your email addresses! Email check failed, please try again Sorry, your blog cannot share posts by email.