summaryrefslogtreecommitdiffstats
path: root/tests/resources/attr/sub/abc
blob: 3e42ffc54a663f9401cc25843d6c0e71a33e4249 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Test file from gitattributes(5) example:

If you have these three gitattributes file:

   (in $GIT_DIR/info/attributes)

	a*      foo !bar -baz

	(in .gitattributes)
	abc     foo bar baz

	(in t/.gitattributes)
	ab*     merge=filfre
	abc     -foo -bar
	*.c     frotz

the attributes given to path t/abc are computed as follows:

1. By examining t/.gitattributes (which is in the same directory as the path
   in question), git finds that the first line matches. merge attribute is
   set. It also finds that the second line matches, and attributes foo and
   bar are unset.
2. Then it examines .gitattributes (which is in the parent directory), and
   finds that the first line matches, but t/.gitattributes file already
   decided how merge, foo and bar attributes should be given to this path,
   so it leaves foo and bar unset. Attribute baz is set.
3. Finally it examines $GIT_DIR/info/attributes. This file is used to
   override the in-tree settings. The first line is a match, and foo is set,
   bar is reverted to unspecified state, and baz is unset.

As the result, the attributes assignment to t/abc becomes:

	foo     set to true
	bar     unspecified
	baz     set to false
	merge   set to string value "filfre"
	frotz   unspecified