57 Commits
Author SHA1 Message Date
Trevor Bentley a0d20db711 use correct work dir for per-repo asset files 2025-01-15 00:01:59 +01:00
Trevor Bentley fe81abfdac copy readme files to their real name in addition to the file hash 2025-01-15 00:01:36 +01:00
Trevor Bentley a99f2a72a3 strip trailing / from site URL 2025-01-14 23:50:40 +01:00
Trevor Bentley 0c3c1f7d4a unused copy code for future implementation 2025-01-14 00:03:06 +01:00
Trevor Bentley 55789ff98e better error chaining 2025-01-14 00:00:01 +01:00
Trevor Bentley b5c7f89959 support initializing with specified config (supports testing) 2025-01-13 23:57:10 +01:00
Trevor Bentley fc99b9180d output error when generation fails 2025-01-13 23:55:24 +01:00
Trevor Bentley 10fc58766d clean up render error handling 2025-01-13 23:54:41 +01:00
Trevor Bentley 913e187815 remove internal TODO list comments 2023-01-29 01:31:21 +01:00
Trevor Bentley f89f44b340 fetch_remote setting to disable remote repo updates 2023-01-26 01:30:20 +01:00
Trevor Bentley 691d70c906 remove old TODO about parallelism 2023-01-20 02:32:54 +01:00
Trevor Bentley c257ba12f0 Add limit_commit_ids_to_related setting.
Each template received `commit_ids`, a list of ALL commit hashes known
to Itsy-Gitsy.  For large repos with hundreds of thousands or millions
of commits, this huge list uses lots of memory and takes a long time
to search.

`limit_commit_ids_to_related` reduces the list to just a handful of
relevant commits for certain templates, which can give a massive
performance boost.
2023-01-20 02:26:16 +01:00
Trevor Bentley 5f0f9978c9 improve diff generation during parallel repo parsing
`limit_diff` used to apply to each thread, so you would get
NUM_THREADS*DIFF_LIMIT diffs, potentially much higher than expected.

This new implementation can still overshoot the requested limit, but
has a much tighter bound.
2023-01-19 22:54:31 +01:00
Trevor Bentley 77060540c7 fix parent links when limit_context is specified 2023-01-19 22:51:51 +01:00
Trevor Bentley 6bdc73f807 cargo fmt 2023-01-19 21:03:49 +01:00
Trevor Bentley d83f682aa2 refactor: support parallel execution
* parallel processing of multiple repositories
* parallel parsing of git history
* parallel template output
* configuration option for number of threads
* improved detection of exceeded size limits

Side effects of parallel execution are out-of-order output messages,
and larger potential overshoot in both processing and detecting when
limits are exceeded.  It will stop if it exceeds the limits, but it
can exceed them by more before stopping.

Processing of extremely large repositories is several times faster.

The order of commits in the history output might not match the output
of `git log`, since the order of commits in the log can change when
splitting it up into smaller pieces.
2023-01-19 20:55:26 +01:00
Trevor Bentley 48b6dd056a add support for %NAME% and url_string (permalinks) 2023-01-17 00:24:49 +01:00
Trevor Bentley f787ec91b3 bug fix: file paths missing in 'dir' template 2023-01-17 00:04:17 +01:00
Trevor Bentley 570a357c51 major refactoring: remove 1-to-1 limit of template-to-output
Large refactoring that:
 * allow any template to be used any number of times
 * combine config's gitsy_templates and gitsy_outputs into gitsy_outputs
 * improves safety of output file names
 * prepares foundation for slugified permalinks
 * prepares foundation for parallelizing more execution
2023-01-16 21:56:44 +01:00
Trevor Bentley 78156268ba switch from crazy macro to trait for path variable substitution 2023-01-16 03:42:40 +01:00
Trevor Bentley f07d0a14bf rename repo_summary to summary to match other variables 2023-01-15 21:50:56 +01:00
Trevor Bentley 88e76d788c add a basic default dark theme 2023-01-15 17:50:33 +01:00
Trevor Bentley 88b7524b4a switch default pages to index.html 2023-01-15 03:21:22 +01:00
Trevor Bentley 6a83f74282 fix tags missing from alt_refs 2023-01-15 02:55:47 +01:00
Trevor Bentley 42870f1c77 don't generate asset folder if not used 2023-01-15 02:30:13 +01:00
Trevor Bentley 3a71d80c98 add GPL license and header comments 2023-01-15 02:06:18 +01:00
Trevor Bentley d4100e85ae add ability to sort repo list by date 2023-01-15 01:17:26 +01:00
Trevor Bentley 276b8a01e7 add option to link directly to readme 2023-01-15 00:39:11 +01:00
Trevor Bentley 5191a96b14 add configurable git clone URL 2023-01-14 20:58:39 +01:00
Trevor Bentley 0899d5146c command-line argument to clean output 2023-01-14 20:30:33 +01:00
Trevor Bentley 6d301831b9 config options and behavior tweaks to support large repositories 2023-01-14 19:52:11 +01:00
Trevor Bentley d903e4adb9 CLI options to generate and open local repositories 2023-01-13 17:29:38 +01:00
Trevor Bentley cfc589e3b2 make parsed branch configurable 2023-01-13 17:29:00 +01:00
Trevor Bentley 10082c2096 fix site_assets to be a relative path 2023-01-13 17:26:38 +01:00
Trevor Bentley 0966bb534f add a files output template 2023-01-13 04:37:40 +01:00
Trevor Bentley 51007c68b8 cargo fmt 2023-01-12 21:02:59 +01:00
Trevor Bentley 99cdc02af5 protect against writes outside of output directory 2023-01-12 21:02:38 +01:00
Trevor Bentley 273d62c645 support paginated history, branches, tags 2023-01-12 20:19:48 +01:00
Trevor Bentley b84065e565 apply rustfmt. ugh. 2023-01-12 17:45:49 +01:00
Trevor Bentley bfcd8ca41f refactor into modules 2023-01-12 17:33:18 +01:00
Trevor Bentley d3a2e9432b parallelize file generation (syntax highlighting) 2023-01-12 16:01:45 +01:00
Trevor Bentley ad79db18ac gracefully handle tags to invalid/missing commits 2023-01-12 15:58:01 +01:00
Trevor Bentley 3d3eda5bdc fix repos not inheriting global settings 2023-01-12 15:32:00 +01:00
Trevor Bentley a0ad8a861f cleanup of imports 2023-01-12 03:07:45 +01:00
Trevor Bentley 871ff0a30e added proper default config file 2023-01-12 03:00:35 +01:00
Trevor Bentley d30d031728 make paths relative to the config file 2023-01-12 02:49:28 +01:00
Trevor Bentley c37b7ed8bb cache ref names instead of searching on every commit 2023-01-12 02:25:13 +01:00
Trevor Bentley 581b4fbd74 skip generation of unspecified templates 2023-01-12 02:11:49 +01:00
Trevor Bentley ea48b6828e add support for cloning remote repos (non-authed HTTPS only) 2023-01-12 01:54:18 +01:00
Trevor Bentley c030d31b07 add verbose/quiet options and output messages 2023-01-11 22:44:15 +01:00