| # Compare a file containing rev-list bitmap traversal output to its non-bitmap |
| # counterpart. You can't just use test_cmp for this, because the two produce |
| # subtly different output: |
| # |
| # - regular output is in traversal order, whereas bitmap is split by type, |
| # with non-packed objects at the end |
| # |
| # - regular output has a space and the pathname appended to non-commit |
| # objects; bitmap output omits this |
| # |
| # This function normalizes and compares the two. The second file should |
| # always be the bitmap output. |
| test_bitmap_traversal () { |
| if test "$1" = "--no-confirm-bitmaps" |
| then |
| shift |
| elif cmp "$1" "$2" |
| then |
| echo >&2 "identical raw outputs; are you sure bitmaps were used?" |
| return 1 |
| fi && |
| cut -d' ' -f1 "$1" | sort >"$1.normalized" && |
| sort "$2" >"$2.normalized" && |
| test_cmp "$1.normalized" "$2.normalized" && |
| rm -f "$1.normalized" "$2.normalized" |
| } |