Skip to content

Commit

Permalink
Refactor OmniCache (#252)
Browse files Browse the repository at this point in the history
Refactor Omnicache to improve performance, handle tags better, and remove internal yaml config file.

Omnicache version 0.11 design notes:
1. Only a single remote per URL will be permitted.
2. Remote names inside omnicache will be UUIDs generated when a new URL is added.
3. Users may specify names for remotes, but they will be treated simply as "display names" without git significance.
4. As many objects as possible will be cached for any given remote; so all remotes will fetch tags.
 4a. To avoid tag name collisions between remotes, tags will be fetched into per-remote namespaces.
5. Older omnicaches will be updated to meet the above design points when first encountered by the script.
 5a. This implementation takes care that the underlying git construction is compatible (but not performant) when an
     older omnicache interacts with it. Older omnicache should not crash when encountering a newer omnicache directory
     but may take a lot of slow and unecessary actions to "re-initialize" it.
  • Loading branch information
joschock authored Jul 9, 2021
1 parent 0aeddee commit 2d10f45
Show file tree
Hide file tree
Showing 3 changed files with 820 additions and 421 deletions.
3 changes: 2 additions & 1 deletion .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@
"dbxupdate",
"FileFlagsMask",
"markdownlint",
"xffd"
"xffd",
"rtags"
]
}
Loading

0 comments on commit 2d10f45

Please sign in to comment.