On 10/21/2016 03:17 PM, Eric Blake wrote: > At any rate, I'll post the commands I used to make the conversion, once > it is complete; here's my starting point. > > $ git fsck 2>&1 | sed -n 's/error in tag \([^:]*\).*/\1/p' > broken
Here's the final steps I used; the findutils.git repository is now clean, using a script graciously provided by Kyle J. McKay, where the attached file 'broken' is the list of tags that I fixed: $ # get the cleanup script $ wget https://gist.githubusercontent.com/mackyle/9ea081513f6b90bb4470b7b2bc6e4bce/raw/7f1814a5b9823278852731e7f13e717937dffec2/export-fixed-tags $ chmod +x export-fixed-tags $ # create fresh clone, so none of my local tags get pushed $ git clone git://git.sv.gnu.org/findutils.git findutils-cleanup $ cd findutils-cleanup $ # fix up the repository, creating a backdated tag for every broken tag $ ../export-fixed-tags | git fast-import processing invalid tag refs/tags/FINDUTILS-4_1-10 ... skipping OK tag refs/tags/v4.6.0 (v4.6.0) git-fast-import statistics: --------------------------------------------------------------------- Alloc'd objects: 5000 Total objects: 97 ( 0 duplicates ) ... $ # 97 tags were replaced; grab their names into 'broken' $ git push -n --tags 2>&1 | \ sed -n 's/.* \([a-zA-Z0-9_-]*\) .already.*/\1/p' > broken $ # delete the old tags, then push the fixed ones $ git push origin $(sed s/^/:/ broken) $ git push --tags If you have previously checked out the repository, you will NOT get the updated tags unless you FIRST delete all the broken tags you have previously downloaded. If you want to clean things up locally, you can use the following steps: $ git tag -d $(cat broken) $ git fetch origin --tags You can then use git prune to remove the now-dangling broken tags. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
FINDUTILS-4_1-10 FINDUTILS-4_1-11 FINDUTILS-4_1-4 FINDUTILS-4_1-5 FINDUTILS-4_1-6 FINDUTILS-4_1-7 FINDUTILS-4_1-8 FINDUTILS-4_1-9 FINDUTILS_4_1 FINDUTILS_4_1-12 FINDUTILS_4_1-13 FINDUTILS_4_1-14 FINDUTILS_4_1-15 FINDUTILS_4_1-16 FINDUTILS_4_1-17 FINDUTILS_4_1-18 FINDUTILS_4_1-19 FINDUTILS_4_1-20 FINDUTILS_4_1-21 FINDUTILS_4_1-22 FINDUTILS_4_1-23 FINDUTILS_4_1-24 FINDUTILS_4_1-25 FINDUTILS_4_1-26 FINDUTILS_4_1-27 FINDUTILS_4_1-28 FINDUTILS_4_1-29 FINDUTILS_4_1-30 FINDUTILS_4_1-31 FINDUTILS_4_1-32 FINDUTILS_4_1-33 FINDUTILS_4_1-34 FINDUTILS_4_1-35 FINDUTILS_4_1-36 FINDUTILS_4_1-37 FINDUTILS_4_1-40 FINDUTILS_4_1_2 FINDUTILS_4_1_20-1 FINDUTILS_4_1_3 FINDUTILS_4_1_6 FINDUTILS_4_1_6-1 FINDUTILS_4_1_6-2 FINDUTILS_4_1_7 FINDUTILS_4_1_7-1 FINDUTILS_4_1_7-2 FINDUTILS_4_2_0-1 FINDUTILS_4_2_1-1 FINDUTILS_4_2_10-1 FINDUTILS_4_2_11-1 FINDUTILS_4_2_12-1 FINDUTILS_4_2_13-1 FINDUTILS_4_2_14-1 FINDUTILS_4_2_15-1 FINDUTILS_4_2_16-1 FINDUTILS_4_2_17-1 FINDUTILS_4_2_18-1 FINDUTILS_4_2_19-1 FINDUTILS_4_2_20-1 FINDUTILS_4_2_21-1 FINDUTILS_4_2_22-1 FINDUTILS_4_2_23-1 FINDUTILS_4_2_24-1 FINDUTILS_4_2_25-1 FINDUTILS_4_2_26-1 FINDUTILS_4_2_27-1 FINDUTILS_4_2_28-1 FINDUTILS_4_2_29-1 FINDUTILS_4_2_3-1 FINDUTILS_4_2_30-1 FINDUTILS_4_2_31-1 FINDUTILS_4_2_32-1 FINDUTILS_4_2_33-1 FINDUTILS_4_2_4-1 FINDUTILS_4_2_5-1 FINDUTILS_4_2_6-1 FINDUTILS_4_2_7-1 FINDUTILS_4_2_8-1 FINDUTILS_4_2_9-1 FINDUTILS_4_3_0-1 FINDUTILS_4_3_1-1 FINDUTILS_4_3_10-1 FINDUTILS_4_3_11-1 FINDUTILS_4_3_12-1 FINDUTILS_4_3_13-1 FINDUTILS_4_3_2-1 FINDUTILS_4_3_3-1 FINDUTILS_4_3_4-1 FINDUTILS_4_3_5-1 FINDUTILS_4_3_6-1 FINDUTILS_4_3_7-1 FINDUTILS_4_3_8-1 FINDUTILS_4_3_9-1 before_fts_conversion compat_gnulib_2006-07-09 fts-last-merge-from-trunk rel-4-2-fixes-last-merge-to-trunk trunk-before-jy-4_1_20-merge
signature.asc
Description: OpenPGP digital signature