diff options
author | Russell Belfer <arrbee@arrbee.com> | 2011-12-28 23:28:50 -0800 |
---|---|---|
committer | Russell Belfer <arrbee@arrbee.com> | 2011-12-29 00:01:10 -0800 |
commit | 73b51450a3194ddaa2ac180a1fea25fdf66971bb (patch) | |
tree | 4a6f4f0cfc90ded7f7734da2b6a9353d9bb0890b /tests | |
parent | ee1f0b1aed7798908d9e038b006b66f868613fc3 (diff) | |
download | libgit2-73b51450a3194ddaa2ac180a1fea25fdf66971bb.tar.gz |
Add support for macros and cache flush API.
Add support for git attribute macro definitions. Also, add
support for cache flush API to clear the attribute file content
cache when needed.
Additionally, improved the handling of global and system files,
making common utility functions in fileops and converting config
and attr to both use the common functions.
Adds a bunch more tests and fixed some memory leaks. Note that
adding macros required me to use refcounted attribute assignment
definitions, which complicated, but probably improved memory usage.
Diffstat (limited to 'tests')
19 files changed, 55 insertions, 7 deletions
diff --git a/tests/resources/attr/.gitattributes b/tests/resources/attr/.gitattributes deleted file mode 100644 index f2c6d717c..000000000 --- a/tests/resources/attr/.gitattributes +++ /dev/null @@ -1,4 +0,0 @@ -* rootattr -root_test2 -rootattr -root_test3 !rootattr - diff --git a/tests/resources/attr/.gitted/index b/tests/resources/attr/.gitted/index Binary files differindex 6841fb2ec..9c5907386 100644 --- a/tests/resources/attr/.gitted/index +++ b/tests/resources/attr/.gitted/index diff --git a/tests/resources/attr/.gitted/info/attributes b/tests/resources/attr/.gitted/info/attributes index 93efc0c34..2e9643a53 100644 --- a/tests/resources/attr/.gitted/info/attributes +++ b/tests/resources/attr/.gitted/info/attributes @@ -1,2 +1,2 @@ * repoattr - +a* foo !bar -baz diff --git a/tests/resources/attr/.gitted/logs/HEAD b/tests/resources/attr/.gitted/logs/HEAD index cfd1f9525..3c4045173 100644 --- a/tests/resources/attr/.gitted/logs/HEAD +++ b/tests/resources/attr/.gitted/logs/HEAD @@ -1 +1,2 @@ 0000000000000000000000000000000000000000 6bab5c79cd5140d0f800917f550eb2a3dc32b0da Russell Belfer <arrbee@arrbee.com> 1324416995 -0800 commit (initial): initial test data +6bab5c79cd5140d0f800917f550eb2a3dc32b0da 605812ab7fe421fdd325a935d35cb06a9234a7d7 Russell Belfer <arrbee@arrbee.com> 1325143098 -0800 commit: latest test updates diff --git a/tests/resources/attr/.gitted/logs/refs/heads/master b/tests/resources/attr/.gitted/logs/refs/heads/master index cfd1f9525..3c4045173 100644 --- a/tests/resources/attr/.gitted/logs/refs/heads/master +++ b/tests/resources/attr/.gitted/logs/refs/heads/master @@ -1 +1,2 @@ 0000000000000000000000000000000000000000 6bab5c79cd5140d0f800917f550eb2a3dc32b0da Russell Belfer <arrbee@arrbee.com> 1324416995 -0800 commit (initial): initial test data +6bab5c79cd5140d0f800917f550eb2a3dc32b0da 605812ab7fe421fdd325a935d35cb06a9234a7d7 Russell Belfer <arrbee@arrbee.com> 1325143098 -0800 commit: latest test updates diff --git a/tests/resources/attr/.gitted/objects/3e/42ffc54a663f9401cc25843d6c0e71a33e4249 b/tests/resources/attr/.gitted/objects/3e/42ffc54a663f9401cc25843d6c0e71a33e4249 Binary files differnew file mode 100644 index 000000000..091d79b14 --- /dev/null +++ b/tests/resources/attr/.gitted/objects/3e/42ffc54a663f9401cc25843d6c0e71a33e4249 diff --git a/tests/resources/attr/.gitted/objects/60/5812ab7fe421fdd325a935d35cb06a9234a7d7 b/tests/resources/attr/.gitted/objects/60/5812ab7fe421fdd325a935d35cb06a9234a7d7 new file mode 100644 index 000000000..b0cc51ee6 --- /dev/null +++ b/tests/resources/attr/.gitted/objects/60/5812ab7fe421fdd325a935d35cb06a9234a7d7 @@ -0,0 +1,2 @@ +xN
0;S˻BU J ?lٖygcáU RbacG;l㠝Dq֠ZʫAH<Ǒ3N=J2d3[0= +}ۤIjM"x/[TwU&[/k(tJL
\ No newline at end of file diff --git a/tests/resources/attr/.gitted/objects/94/da4faa0a6bfb8ee6ccf7153801a69202b31857 b/tests/resources/attr/.gitted/objects/94/da4faa0a6bfb8ee6ccf7153801a69202b31857 Binary files differnew file mode 100644 index 000000000..a9ddf5d20 --- /dev/null +++ b/tests/resources/attr/.gitted/objects/94/da4faa0a6bfb8ee6ccf7153801a69202b31857 diff --git a/tests/resources/attr/.gitted/objects/99/eae476896f4907224978b88e5ecaa6c5bb67a9 b/tests/resources/attr/.gitted/objects/99/eae476896f4907224978b88e5ecaa6c5bb67a9 Binary files differnew file mode 100644 index 000000000..8f5acc70a --- /dev/null +++ b/tests/resources/attr/.gitted/objects/99/eae476896f4907224978b88e5ecaa6c5bb67a9 diff --git a/tests/resources/attr/.gitted/objects/9f/b40b6675dde60b5697afceae91b66d908c02d9 b/tests/resources/attr/.gitted/objects/9f/b40b6675dde60b5697afceae91b66d908c02d9 Binary files differnew file mode 100644 index 000000000..7663ad0ad --- /dev/null +++ b/tests/resources/attr/.gitted/objects/9f/b40b6675dde60b5697afceae91b66d908c02d9 diff --git a/tests/resources/attr/.gitted/objects/a5/6bbcecaeac760cc26239384d2d4c614e7e4320 b/tests/resources/attr/.gitted/objects/a5/6bbcecaeac760cc26239384d2d4c614e7e4320 Binary files differnew file mode 100644 index 000000000..d898ae9b8 --- /dev/null +++ b/tests/resources/attr/.gitted/objects/a5/6bbcecaeac760cc26239384d2d4c614e7e4320 diff --git a/tests/resources/attr/.gitted/objects/d8/00886d9c86731ae5c4a62b0b77c437015e00d2 b/tests/resources/attr/.gitted/objects/d8/00886d9c86731ae5c4a62b0b77c437015e00d2 Binary files differnew file mode 100644 index 000000000..83f3b726d --- /dev/null +++ b/tests/resources/attr/.gitted/objects/d8/00886d9c86731ae5c4a62b0b77c437015e00d2 diff --git a/tests/resources/attr/.gitted/objects/ff/69f8639ce2e6010b3f33a74160aad98b48da2b b/tests/resources/attr/.gitted/objects/ff/69f8639ce2e6010b3f33a74160aad98b48da2b Binary files differnew file mode 100644 index 000000000..b736c0b2b --- /dev/null +++ b/tests/resources/attr/.gitted/objects/ff/69f8639ce2e6010b3f33a74160aad98b48da2b diff --git a/tests/resources/attr/.gitted/refs/heads/master b/tests/resources/attr/.gitted/refs/heads/master index 279272e5c..1049fe4b7 100644 --- a/tests/resources/attr/.gitted/refs/heads/master +++ b/tests/resources/attr/.gitted/refs/heads/master @@ -1 +1 @@ -6bab5c79cd5140d0f800917f550eb2a3dc32b0da +605812ab7fe421fdd325a935d35cb06a9234a7d7 diff --git a/tests/resources/attr/binfile b/tests/resources/attr/binfile new file mode 100644 index 000000000..d800886d9 --- /dev/null +++ b/tests/resources/attr/binfile @@ -0,0 +1 @@ +123
\ No newline at end of file diff --git a/tests/resources/attr/gitattributes b/tests/resources/attr/gitattributes new file mode 100644 index 000000000..94da4faa0 --- /dev/null +++ b/tests/resources/attr/gitattributes @@ -0,0 +1,7 @@ +* rootattr +root_test2 -rootattr +root_test3 !rootattr +binfile binary +abc foo bar baz +[attr]mymacro positive -negative !rootattr +macro* mymacro another=77 diff --git a/tests/resources/attr/macro_test b/tests/resources/attr/macro_test new file mode 100644 index 000000000..ff69f8639 --- /dev/null +++ b/tests/resources/attr/macro_test @@ -0,0 +1 @@ +Yo diff --git a/tests/resources/attr/subdir/.gitattributes b/tests/resources/attr/subdir/.gitattributes index 210f3a8ba..99eae4768 100644 --- a/tests/resources/attr/subdir/.gitattributes +++ b/tests/resources/attr/subdir/.gitattributes @@ -1,3 +1,5 @@ * subattr=yes -negattr subdir/*.txt another=one - +ab* merge=filfre +abc -foo -bar +*.c frotz diff --git a/tests/resources/attr/subdir/abc b/tests/resources/attr/subdir/abc new file mode 100644 index 000000000..3e42ffc54 --- /dev/null +++ b/tests/resources/attr/subdir/abc @@ -0,0 +1,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 |