[RFC PATCH 1/3] filter-branch: optionally dump all mappings at the end
From: Thomas Rast <hidden>
Date: 2016-06-15 22:50:19
Subsystem:
the rest · Maintainer:
Linus Torvalds
In some cases, like the sub/super-project filtering attempted in this series, it may be necessary to carry over the mappings from one or more filter-branch run to another. As the first part to this, make a --dump-map option that dumps a flat text file with lines of the form $sha1 $(map $sha1) after it has established all mappings. Signed-off-by: Thomas Rast <redacted> --- git-filter-branch.sh | 21 +++++++++++++++++++++ 1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index 962a93b..020b076 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh@@ -126,6 +126,7 @@ orig_namespace=refs/original/ force= prune_empty= remap_to_ancestor= +dump_map= while : do case "$1" in
@@ -194,6 +195,16 @@ do --original) orig_namespace=$(expr "$OPTARG/" : '\(.*[^/]\)/*$')/ ;; + --dump-map) + case "$OPTARG" in + /*) + dump_map="$OPTARG" + ;; + *) + dump_map="$(pwd)/$OPTARG" + ;; + esac + ;; *) usage ;;
@@ -385,6 +396,16 @@ then done < "$tempdir"/heads fi +# At this point the mappings are stable so we can dump them if +# requested + +if test -n "$dump_map"; then + ( cd "$workdir"/../map/; ls ) | + while read sha1; do + echo $sha1 $(map $sha1) + done > "$dump_map" +fi + # Finally update the refs _x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
--
1.7.4.rc0.240.g44e61