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 <trast@xxxxxxxxxxxxxxx> --- 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html