| ▲ | charcircuit 13 hours ago |
| >I definitely reject the "git compatible" approach If your version control system is not compatible with GitHub it will be dead on arrival. The value of allowing people to gradually adopt a new solution can not be understated. There is also value in being compatible with existing git integrations or scripts in projects build systems. |
|
| ▲ | wavemode 2 hours ago | parent | next [-] |
| I don't think Git/GitHub is really all that big of a lock-in in practice for most projects. IMO Git is not an unassailable juggernaut - I think if a new SCM came along and it had a frontend like GitHub and a VSCode plugin, that alone would be enough for a many users to adopt it (barring users who are heavy customers of GitHub Actions). It's just that nobody has decided to do this, since there's no money in it and most people are fine with Git. |
| |
| ▲ | charcircuit 24 minutes ago | parent [-] | | The wall of getting buy in for switching your company over to a new SCM is much higher if you need to move everything over to a new system and switch over all of your developers onto new software at the same time. And if things don't work out you have to do the same expensive process in reverse. On the other hand if you have git compatibility you can start with a small group of developers being able to try out the tool first and see if it is actually beneficial and work your way spreading it through the company. If it turns out the new thing isn't good it is trivial to go back to your old tools since you did not have to do expensive migrations. |
|
|
| ▲ | quadrifoliate 13 hours ago | parent | prev | next [-] |
| Based on reading this, I don't see anything that would prevent keeping track of a repo tracked by this database with Git (and therefore GitHub) in addition to the database. I think the "compatible" bit means more that you have to think in terms of Git concepts everywhere. Curious what the author thinks though, looks like it's posted by them. |
| |
| ▲ | gritzko 13 hours ago | parent [-] | | Technically, exporting changes either way is not a challenge. It only becomes difficult if we have multiple gateways for some reason. One way to do it is to use the new system for the messy part and git/GitHub for "publication". |
|
|
| ▲ | conartist6 13 hours ago | parent | prev [-] |
| A system as described could be forwards compatible with git without being backwards compatible with git. In other words let people migrate easily, but don't force the new system to have all the same flaws of the old |
| |
| ▲ | ongy 12 hours ago | parent [-] | | What issues do you see in git's data model to abandon it as wire format for syncing? | | |
| ▲ | conartist6 12 hours ago | parent [-] | | I wouldn't say I want to abandon anything git is doing as much as evolve it. Objects need to be able to contain syntax tree nodes, and patches need to be able to target changes to particular locations in a syntax tree instead of just by line/col. | | |
| ▲ | ongy 12 hours ago | parent [-] | | An AST is a tree as much as the directory structure currently encoded in git. It shouldn't be hard to build a bijective mapping between a file system and AST. | | |
| ▲ | conartist6 10 hours ago | parent [-] | | Right, but for what purpose? I don't see much gain, and now you're left trying to fit a square peg into a round hole. The git CLI would be technically working, but not practically useful. Same with an IDE: if you checked the files out you could technically open them but not easily change your program. |
|
|
|
|