[PATCH v4 0/6] Avoid spawning gzip in git archive
From: René Scharfe <hidden>
Date: 2022-06-15 16:54:27
Changes since v3:
- Use deflateSetHeader() correctly, thanks to Dscho.
- New patch to update the format-related documentation.
archive: update format documentation
archive: rename archiver data field to filter_command
archive-tar: factor out write_block()
archive-tar: add internal gzip implementation
archive-tar: use OS_CODE 3 (Unix) for internal gzip
archive-tar: use internal gzip by default
Documentation/git-archive.txt | 21 +++++-----
archive-tar.c | 77 ++++++++++++++++++++++++++++++-----
archive.h | 2 +-
t/t5000-tar-tree.sh | 28 ++++++++++---
4 files changed, 100 insertions(+), 28 deletions(-)
Range-Diff vs. v3:
-: ---------- > 1: 67369ed452 archive: update format documentation
1: 73ccd190bd = 2: 6a7cce50ef archive: rename archiver data field to filter_command
2: 352cff7163 = 3: c86e82bee8 archive-tar: factor out write_block()
3: 4e7cf97631 ! 4: 6196b0e39d archive-tar: add internal gzip implementation
@@ Commit message
## Documentation/git-archive.txt ##
@@ Documentation/git-archive.txt: tar.<format>.command::
- format is given.
+ to the command (e.g., `-9`).
+
- The "tar.gz" and "tgz" formats are defined automatically and default to
--`gzip -cn`. You may override them with custom commands.
-+`gzip -cn`. You may override them with custom commands. An internal gzip
-+implementation can be used by specifying the value `git archive gzip`.
+ The `tar.gz` and `tgz` formats are defined automatically and use the
+-command `gzip -cn` by default.
++command `gzip -cn` by default. An internal gzip implementation can be
++used by specifying the value `git archive gzip`.
tar.<format>.remote::
- If true, enable `<format>` for use by remote clients via
+ If true, enable the format for use by remote clients via
## archive-tar.c ##
@@ archive-tar.c: static int write_tar_filter_archive(const struct archiver *ar,
4: cb2bbe9f6d < -: ---------- archive-tar: use OS_CODE 3 (Unix) for internal gzip
-: ---------- > 5: 19d286af6a archive-tar: use OS_CODE 3 (Unix) for internal gzip
5: 5dd968ced1 ! 6: 74683137af archive-tar: use internal gzip by default
@@ Commit message
## Documentation/git-archive.txt ##
@@ Documentation/git-archive.txt: tar.<format>.command::
- format is given.
+ to the command (e.g., `-9`).
+
- The "tar.gz" and "tgz" formats are defined automatically and default to
--`gzip -cn`. You may override them with custom commands. An internal gzip
--implementation can be used by specifying the value `git archive gzip`.
-+the magic value `git archive gzip`, which invokes an internal
-+implementation of gzip. You may override them with custom commands.
+ The `tar.gz` and `tgz` formats are defined automatically and use the
+-command `gzip -cn` by default. An internal gzip implementation can be
+-used by specifying the value `git archive gzip`.
++magic command `git archive gzip` by default, which invokes an internal
++implementation of gzip.
tar.<format>.remote::
- If true, enable `<format>` for use by remote clients via
+ If true, enable the format for use by remote clients via
## archive-tar.c ##
@@ archive-tar.c: void init_tar_archiver(void)
--
2.36.1