| #!/bin/sh | 
 |  | 
 | test_description='git patch-id' | 
 |  | 
 | . ./test-lib.sh | 
 |  | 
 | test_expect_success 'setup' ' | 
 | 	test_commit initial foo a && | 
 | 	test_commit first foo b && | 
 | 	git checkout -b same HEAD^ && | 
 | 	test_commit same-msg foo b && | 
 | 	git checkout -b notsame HEAD^ && | 
 | 	test_commit notsame-msg foo c | 
 | ' | 
 |  | 
 | test_expect_success 'patch-id output is well-formed' ' | 
 | 	git log -p -1 | git patch-id > output && | 
 | 	grep "^[a-f0-9]\{40\} $(git rev-parse HEAD)$" output | 
 | ' | 
 |  | 
 | get_patch_id () { | 
 | 	git log -p -1 "$1" | git patch-id | | 
 | 		sed "s# .*##" > patch-id_"$1" | 
 | } | 
 |  | 
 | test_expect_success 'patch-id detects equality' ' | 
 | 	get_patch_id master && | 
 | 	get_patch_id same && | 
 | 	test_cmp patch-id_master patch-id_same | 
 | ' | 
 |  | 
 | test_expect_success 'patch-id detects inequality' ' | 
 | 	get_patch_id master && | 
 | 	get_patch_id notsame && | 
 | 	! test_cmp patch-id_master patch-id_notsame | 
 | ' | 
 |  | 
 | test_done |