Closed johnwcowan closed 1 year ago
It's worth looking at alternatives to 'git' but I think we'll have more impact trying to work with it.
Git can store binary files, and can use custom diff and merge tools. It might be possible to make do with that.
Git can, and we went that route for a while, but the issue is github and their web interface doesn't let you (as far as I know) provide custom tools (or scripts) to run on their server...
Oh yeah, that's probably right.
However, GitHub is even less likely to support any non-git Monticello-style tools. You'd have to host the version control repo at a separate website, or use diff/merge tools on local machine only. Maybe it'd be enough to have local machine tools + a script to churn out HTML reports of the git history for display at a public website.
I think we can make things work if we use different Lisp-based utilities to compare and merge files. The problem is less "GitHub" and more "GitHub desktop"
Right. Happily, GitHub (and all other git hosts) are 100% compatible with command line git. You could even call out to git
from the emulator's file handling commands or something.
Writing down now what I've been talking about the last few weeks:
This design seems like it's feasible, although there are lots of details. I'm not sure it's worth it. Applying the "Interlisp" file manager methodology to other late-binding Lisp-like languages like JavaScript and Python might have a lot more impact. Or even on top of SBCL.
Just a note that Cuis, a fork of Squeak focussing on simplicity, uses a different approach that works fairly well with git. I don't know if it would be usable here though.
This is an interesting discussion, but I think it's a separate project. We might start with the TEXTMODULES library package, which converts two ways from "file manager style" to "text style" and back.
Squeak and related Smalltalk implementations have the same version-control problem as Medley for distributed development: Git cannot properly diff or properly merge the textual representations of two different images. If anything, the problem is worse in Smalltalk because (a) there is only one text file, not many, and (b) not all bits in the image correspond to code in the text file: some pre-1980 bits were set directly in the image before the text file was started.
However, Squeak uses a version-control system called Monticello that supposedly solves this problem. I know almost nothing about it, but I'm going to investigate it as I can, along with possible alternatives, and report back here.