HN user

jskinner

1,192 karma

https://www.sublimetext.com

Posts5
Comments90
View on HN

There are only minor changes in this build: a few bug fixes, plus notarization support, which is required for macOS 10.15.

We've got some pretty exciting changes coming up quite soon, but this isn't it.

Use mmap with care 7 years ago

We do defer to Git for all write operations, but for reading, we do it ourselves partly for efficiency, and partly to get the right data.

In terms of getting the right data, one example is that we need to know the full set of non-ignored sub-directories in the working directory, so we can watch them for changes. It's easy enough to generate this ourselves as we calculate the status output, but I don't believe that git will emit it.

In terms of performance, we rely on being able to read objects efficiently. For example, to show a commit, we can't just use the output of "git diff", as we need the full file contents to be able to calculate syntax highlighting correctly. You could go a long way with "git cat-file --batch", but there are plenty of contexts where you can't practically batch requests, and process creation costs + the lack of caching across requests (which can be quite significantly due to the delta encoding of objects) would be quite significant.

We'll 100% be adding integration in that direction too. A new build of Sublime Text shouldn't be too far off, there are some nice thing's that we've added into Sublime Merge (e.g., an update theme system), that I want to roll into Sublime Text.

With regards to Stage All, we don't have a button, but we do have a key binding: Command+Shift+A to stage all Modified files, and then press it a second time to stage all Untracked files, if desired.