4 ms·
1. Yeah, but it needs to handle unstable web connections gracefully. There's no locking in the UI even when your connection goes down, and when it comes back up
by kajecounterhack 10y ago
1. Yeah, but it needs to handle unstable web connections gracefully. There's no locking in the UI even when your connection goes down, and when it comes back up it just uses last edited version (whether you made changes on your desktop or in the browser). Definitely tied to #2, which is that you need a sane way to merge conflicting changes.
2. I don't know for a fact they're using OTs but given that you can edit from local / web pretty much simultaneously that's a good guess. Since you don't generally get actual simultaneous edits however (or you don't really have to optimize for this use case since a dev is either editing from the IDE or locally and "simultaneous usage" would generally be a product of network latency), one idea is you could use a tree-like CRDT that tracks divergences and have a UI element that allows nice manual conflict merges. Or you could invent an automated merging strategy, which may or may not be pretty hard.
2b. in re distributed building, https://www.bazel.io https://www.bazel.io Google actually open sourced their build system but I'm not sure (I don't think) the distributed building aspect of it is included. Here's to hoping some headstrong engineer decides to write the open source version of it...that said it's probably not actually that important for most software
3. Cool. I'd love to see something like this from Gitlab! I think once people feel that they have control over the software and their code, it's all about usability, and if you nail that there will be plenty evangelizing the solution.
- sytse 10y agoGreat insights and cool to see Bazel. We'll start simple with the terminal https://gitlab.com/gitlab-org/gitlab-ce/issues/22864 https://gitlab.com/gitlab-org/gitlab-ce/issues/22864 and editor https://gitlab.com/gitlab-org/gitlab-ce/issues/22876 https://gitlab.com/gitlab-org/gitlab-ce/issues/22876 and keep iterating from there.