git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v3 4/4] filter-branch: use hash-object instead of mktag

From
Ian Campbell <ijc@hellion.org.uk>
Date
Sep 21, 2017, 07:49 UTC
Message-ID
<20170921074932.5490-4-ijc@hellion.org.uk>
In-Reply-To
<1505980146.4636.9.camel@hellion.org.uk>

This allows us to recreate even historical tags which would now be consider invalid, such as v2.6.12-rc2..v2.6.13-rc3 in the Linux kernel source tree which lack the `tagger` header.

    $ git rev-parse v2.6.12-rc2
    9e734775f7c22d2f89943ad6c745571f1930105f
    $ git cat-file tag v2.6.12-rc2 | git mktag
    error: char76: could not find "tagger "
    fatal: invalid tag signature file
    $ git cat-file tag v2.6.12-rc2 | git hash-object -t tag -w --stdin
    9e734775f7c22d2f89943ad6c745571f1930105f
Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
---
 git-filter-branch.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index 956869b8e..3365a3b86 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -561,7 +561,7 @@ if [ "$filter_tag_name" ]; then
 					}' \
 				    -e '/^-----BEGIN PGP SIGNATURE-----/q' \
 				    -e 'p' ) |
-				git mktag) ||
+				git hash-object -t tag -w --stdin) ||
 				die "Could not create new tag object for $ref"
 			if git cat-file tag "$ref" | \
 			   sane_grep '^-----BEGIN PGP SIGNATURE-----' >/dev/null 2>&1
-- 
2.11.0
Previous: Ian CampbellNext: Ian Campbell
Message 3 of 8 in “filter-branch: support for incremental update + fix for ancient tag format”
  1. 0/4 filter-branch: support for incremental update + fix for ancient tag formatIan Campbell, Sep 21, 2017
  2. 2/4 filter-branch: preserve and restore $GIT_AUTHOR_* and $GIT_COMMITTER_*Ian Campbell, Sep 21, 2017
  3. 4/4 filter-branch: use hash-object instead of mktagIan Campbell, Sep 21, 2017
  4. 1/4 filter-branch: reset $GIT_* before cleaning upIan Campbell, Sep 21, 2017
  5. 3/4 filter-branch: stash away ref map in a branchIan Campbell, Sep 21, 2017
  6. Junio C HamanoSep 22, 2017
  7. Ian CampbellSep 22, 2017
  8. Junio C HamanoSep 22, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.