mirror of
https://github.com/basecamp/omarchy.git
synced 2025-07-27 04:09:23 +00:00
f81983ec50462b04cba920fb2a7611bb6d663af5

omarchy-update
(#219)
Previously, `omarchy-update` used the timestamp of the most recent git commit to determine which migrations are "new" and should be executed. Unfortunately, that strategy can (and did) fail in certain scenarios. If a migration was generated at time T1 but not merged until time T3, and meanwhile omarchy's `master` branch was updated to a new release with commit timestamp T2 (where T1 < T2 < T3), then anyone who runs `omarchy-update` between T2 and T3 would end up with `last_updated_at` equal to T2; thus, on their next `omarchy-update` it would fail to detect the migration with timestamp T1 as a "new" migration that should be executed. This commit changes the strategy for detecting "new" migrations to avoid that problem. Rather than recording the most recent commit's timestamp, we record its SHA. Then, after pulling the new changes, we can leverage `git diff --name-only --diff-filter=A $SHA.. migrations/*.sh` to return precisely the list of migration files that were introduced by our `git pull`. It doesn't matter if any of those migrations have a timestamp that was earlier than the timestamp of the commit we started on - we will always execute *every* migration that didn't exist before our `git pull`!
Omarchy
Turn a fresh Arch installation into a fully-configured, beautiful, and modern web development system based on Hyprland by running a single command. That's the one-line pitch for Omarchy (like it was for Omakub). No need to write bespoke configs for every essential tool just to get started or to be up on all the latest command-line tools. Omarchy is an opinionated take on what Linux can be at its best.
Read more at omarchy.org.
License
Omarchy is released under the MIT License.
Languages
Shell
78.9%
CSS
16.8%
Lua
4.3%