git/t/t6133-pathspec-rev-dwim.sh

#!/bin/sh

test_description='test dwim of revs versus pathspecs in revision parser'

TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh

test_expect_success 'setup' '
	test_commit base &&
	echo content >"br[ack]ets" &&
	git add . &&
	test_tick &&
	git commit -m brackets
'

test_expect_success 'non-rev wildcard dwims to pathspec' '
	git log -- "*.t" >expect &&
	git log    "*.t" >actual &&
	test_cmp expect actual
'

test_expect_success 'tree:path with metacharacters dwims to rev' '
	git show "HEAD:br[ack]ets" -- >expect &&
	git show "HEAD:br[ack]ets"    >actual &&
	test_cmp expect actual
'

test_expect_success '^{foo} with metacharacters dwims to rev' '
	git log "HEAD^{/b.*}" -- >expect &&
	git log "HEAD^{/b.*}"    >actual &&
	test_cmp expect actual
'

test_expect_success '@{foo} with metacharacters dwims to rev' '
	git log "HEAD@{now [or thereabouts]}" -- >expect &&
	git log "HEAD@{now [or thereabouts]}"    >actual &&
	test_cmp expect actual
'

test_expect_success ':/*.t from a subdir dwims to a pathspec' '
	mkdir subdir &&
	(
		cd subdir &&
		git log -- ":/*.t" >expect &&
		git log    ":/*.t" >actual &&
		test_cmp expect actual
	)
'

test_done