#!/bin/bash set -euE -o pipefail add-parents() { [[ $? == 0 ]] local child newparents oldparents child=$1 newparents=${*:2} oldparents=$(git show --no-patch --format='%P' "$child") git replace -f --graft "$child" $oldparents $newparents } move-to-subtree() { [[ $? == 0 ]] local commit=$1 { git checkout "$commit" GIT_AUTHOR_DATE=$(git show --no-patch --format='%at' "$commit") GIT_AUTHOR_NAME=$(git show --no-patch --format='%an' "$commit") GIT_AUTHOR_EMAIL=$(git show --no-patch --format='%ae' "$commit") GIT_COMMITTER_DATE=$(git show --no-patch --format='%ct' "$commit") GIT_COMMITTER_NAME=$(git show --no-patch --format='%cn' "$commit") GIT_COMMITTER_EMAIL=$(git show --no-patch --format='%ce' "$commit") export GIT_{AUTHOR,COMMITTER}_{DATE,NAME,EMAIL} local files files=($(git ls-files |cut -d/ -f1 | sort -u)) mkdir src git mv ${files[*]} src git commit -m "mkdir src && git mv ${files[*]} src" unset GIT_{AUTHOR,COMMITTER}_{DATE,NAME,EMAIL} } >&2 git rev-parse HEAD } # fixup 45.0-2 git replace c9f4a5b95ff90a57e4ef593e152df129d5e869e4 ce379ffef94694e4d4e90a46137da0b254c4a1ce # fixup 48.0-1 git replace f57da7034175f88f07a1fb962479181b99ca495a 1c2b095caaf8ca9001c1c5c2eec38e7925586608 # graft 45.0-1 add-parents c1edcaa8781f464eb848756a1d04afcb04bb384d $(move-to-subtree 7dfb7b150539113b224a76885680d696bf60253a) # graft 45.0-2 add-parents c9f4a5b95ff90a57e4ef593e152df129d5e869e4 $(move-to-subtree c21290c7cc604f1916459b62ad0b2f8f7a21b4fc) # graft 48.0-1 add-parents f57da7034175f88f07a1fb962479181b99ca495a $(move-to-subtree 544e6be87589899a6c97e5595746205bb27cea0c) # graft 49.0-1 add-parents 795d44bb4641df509d891566b0666a10800283af $(move-to-subtree 051f42bcdc9a6d91d3052456189d6491d0867ff1) # graft 50.0-1 add-parents 64f42d9623487237239e24aa9c6e071d6a44d100 $(move-to-subtree 27a7017ab6eb50cd53f14ff87f855c844c0eb640) # graft 52.0-1 add-parents 1034be86c2656eaa4e02b6ef3e80df3b5f804462 $(move-to-subtree 458d41028a245b68f8c5c6b28ec837454988b7f4) git checkout iceweasel-branding/master