t3700-add.sh 2.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#!/bin/sh
#
# Copyright (c) 2006 Carl D. Worth
#

test_description='Test of git-add, including the -- option.'

. ./test-lib.sh

test_expect_success \
    'Test of git-add' \
    'touch foo && git-add foo'

test_expect_success \
    'Post-check that foo is in the index' \
    'git-ls-files foo | grep foo'

test_expect_success \
    'Test that "git-add -- -q" works' \
    'touch -- -q && git-add -- -q'

22 23 24 25 26 27 28 29
test_expect_success \
	'git-add: Test that executable bit is not used if core.filemode=0' \
	'git repo-config core.filemode 0 &&
	 echo foo >xfoo1 &&
	 chmod 755 xfoo1 &&
	 git-add xfoo1 &&
	 case "`git-ls-files --stage xfoo1`" in
	 100644" "*xfoo1) echo ok;;
30
	 *) echo fail; git-ls-files --stage xfoo1; (exit 1);;
31 32 33 34 35 36 37
	 esac'

test_expect_success \
	'git-update-index --add: Test that executable bit is not used...' \
	'git repo-config core.filemode 0 &&
	 echo foo >xfoo2 &&
	 chmod 755 xfoo2 &&
38
	 git-update-index --add xfoo2 &&
39 40
	 case "`git-ls-files --stage xfoo2`" in
	 100644" "*xfoo2) echo ok;;
41 42 43 44 45 46 47 48 49 50 51
	 *) echo fail; git-ls-files --stage xfoo2; (exit 1);;
	 esac'

test_expect_success \
	'git-update-index --add: Test that executable bit is not used...' \
	'git repo-config core.filemode 0 &&
	 ln -s xfoo2 xfoo3 &&
	 git-update-index --add xfoo3 &&
	 case "`git-ls-files --stage xfoo3`" in
	 120000" "*xfoo3) echo ok;;
	 *) echo fail; git-ls-files --stage xfoo3; (exit 1);;
52 53
	 esac'

J
Junio C Hamano 已提交
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
test_expect_success '.gitignore test setup' '
	echo "*.ig" >.gitignore &&
	mkdir c.if d.ig &&
	>a.ig && >b.if &&
	>c.if/c.if && >c.if/c.ig &&
	>d.ig/d.if && >d.ig/d.ig
'

test_expect_success '.gitignore is honored' '
	git-add . &&
	! git-ls-files | grep "\\.ig"
'

test_expect_success 'error out when attempting to add ignored ones without -f' '
	! git-add a.?? &&
	! git-ls-files | grep "\\.ig"
'

test_expect_success 'error out when attempting to add ignored ones without -f' '
	! git-add d.?? &&
	! git-ls-files | grep "\\.ig"
'

test_expect_success 'add ignored ones with -f' '
	git-add -f a.?? &&
	git-ls-files --error-unmatch a.ig
'

test_expect_success 'add ignored ones with -f' '
	git-add -f d.??/* &&
	git-ls-files --error-unmatch d.ig/d.if d.ig/d.ig
'

87
test_done