bug-mailutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug-mailutils] mailutils git repository corrupt ("missingEmail" in many


From: Daniel Kahn Gillmor
Subject: [bug-mailutils] mailutils git repository corrupt ("missingEmail" in many tags) (and how to fix it!)
Date: Thu, 14 Mar 2019 12:16:22 -0400

Hi all--

I'm trying to look at the git repository for mailutils, and i have
transfer.fsckObjects set to true globally.  I cannot clone the repo:

    0 address@hidden:~$ git clone https://git.savannah.gnu.org/git/mailutils.git
    Cloning into 'mailutils'...
    remote: Counting objects: 73010, done.
    remote: Compressing objects: 100% (12345/12345), done.
    error: object db3f12f432913395f01d3fbf21ddde61c3aa4ad8: missingEmail: 
invalid author/committer line - missing email
    fatal: fsck error in packed object
    fatal: index-pack failed
    128 address@hidden:~$ 

If i clone with --config transfer.fsckobjects=false, and then run "git
fsck" i get:

    Checking object directories: 100% (256/256), done.
    error in tag db3f12f432913395f01d3fbf21ddde61c3aa4ad8: missingEmail: 
invalid author/committer line - missing email
    error in tag 4e6d75a11fbad017ddf58f6c8052ac63e6dd4bf9: missingEmail: 
invalid author/committer line - missing email
    error in tag 46cdd27e51cd0275665536a8952420fae28eff70: missingEmail: 
invalid author/committer line - missing email
    error in tag 77dfb64e904e8d40215f9a51e433aedf0c3e18d1: missingEmail: 
invalid author/committer line - missing email
    error in tag b7e27bce5ccacfceb40f0924640fb7d22b92b9b1: missingEmail: 
invalid author/committer line - missing email
    error in tag 7d45e91505800db42c39dd9c7a47582fa6a01d74: missingEmail: 
invalid author/committer line - missing email
    error in tag 7fe84731720b1f4303d18d7e287131a8e7fa4e86: missingEmail: 
invalid author/committer line - missing email
    error in tag 7cf75bef98046b15cbe85ebb25d42719e25b275d: missingEmail: 
invalid author/committer line - missing email
    error in tag e02aab6e2913c7188e0396de1b68bdb8ea07e44a: missingEmail: 
invalid author/committer line - missing email
    error in tag e908de58ef1a9faad6717cb4b98d1dc3ed446130: missingEmail: 
invalid author/committer line - missing email
    error in tag b2a909aca40284b31faa753597bd7e46ec4c19fa: missingEmail: 
invalid author/committer line - missing email
    error in tag 2d814aa929aa5ffde116acc78894256e3e9f41b1: missingEmail: 
invalid author/committer line - missing email
    error in tag fe68420022a22a448fe975f979a96039befeaabd: missingEmail: 
invalid author/committer line - missing email
    error in tag afc50284c101446bb17e72ef96216b5a042e0915: missingEmail: 
invalid author/committer line - missing email
    error in tag 0e5886c884afed8354f22ec046fa5ffc5e0c37e1: missingEmail: 
invalid author/committer line - missing email
    error in tag 306b6b35b9af77ee389cb5961ae17eb998c9c6b0: missingEmail: 
invalid author/committer line - missing email
    error in tag 560cec7a60688f2628574598073ac9c1bb4a605e: missingEmail: 
invalid author/committer line - missing email
    error in tag 80982187eb0250500c9b016b5a47e4ced869126c: missingEmail: 
invalid author/committer line - missing email
    error in tag 2b19d364a643f2eea20d1e3b0a87b288a1d6f984: missingEmail: 
invalid author/committer line - missing email
    error in tag 3e0b651559df5584f2e4b1c7c7fbdc90624288d3: missingEmail: 
invalid author/committer line - missing email
    error in tag 09fb4b0a70344ff0ce6be311bfdd9600cc0b2deb: missingEmail: 
invalid author/committer line - missing email
    error in tag f544b7863b6b5f8c06023268012b68f836c97c72: missingEmail: 
invalid author/committer line - missing email
    error in tag ec9aa1f040a8e2886a94e8daf4558804a284494c: missingEmail: 
invalid author/committer line - missing email
    Checking objects: 100% (73010/73010), done.

those commits refer to all the following tags:

    alpha_0_6_1
    alpha_0_6_90
    alpha_0_6_91
    alpha_0_6_91_after_namespace
    alpha_0_6_91_before_namespace
    alpha_0_6_91_libmailbox
    alpha_0_6_92
    alpha_0_6_92_before_mu_off_t
    alpha_0_6_95
    mailutils-0-0-9
    mu-1-2-1-before-new-config
    mu-1-2-90-included-argp
    mu-1-2-90-included-gnulib
    mu-1-2-90-separate-argp-cfg
    rel-1_0
    rel_0_1
    rel_0_2
    rel_0_3
    rel_0_3_1
    rel_0_4
    rel_0_5
    rel_0_6
    release_1_1

So i can make the fsck complete OK by doing:

    tags="alpha_0_6_1 alpha_0_6_90 alpha_0_6_91 alpha_0_6_91_after_namespace 
alpha_0_6_91_before_namespace alpha_0_6_91_libmailbox alpha_0_6_92 
alpha_0_6_92_before_mu_off_t alpha_0_6_95 mailutils-0-0-9 
mu-1-2-1-before-new-config mu-1-2-90-included-argp mu-1-2-90-included-gnulib 
mu-1-2-90-separate-argp-cfg rel-1_0 rel_0_1 rel_0_2 rel_0_3 rel_0_3_1 rel_0_4 
rel_0_5 rel_0_6 release_1_1"
    git tag -d $tags
    git gc --prune=all
    git fsck

but of course the tags come back when i pull from the upstream repo.

I note that none of those tags appear to be cryptographically signed,
and none of them have any tag messages either.  so maybe they can just
be removed and replaced?

Perhaps the right way to fix this is:

    for tag in $tags; do
       commitid=$(git for-each-ref --format='%(object)' refs/tags/$tag)
       git tag -d $tag
       git tag -m "GNU Mailutils $tag" $tag $commitid
    done
    git gc --prune=all
    git fsck

And then you'd need to push them to the remote repo (i'm assuming here
that it's named "origin" for you):

    git push origin -f --tags



This doesn't change any of the commit history (since it just modifies
old tags), and once it's done anyone should be able to clone the repo
with transfer.fsckObjects=true.

Please let me know if you do this, i'm happy to test it once it's fixed.

       --dkg

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]