[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.145.161.199: ~ $
gitattributes API
=================

gitattributes mechanism gives a uniform way to associate various
attributes to set of paths.


Data Structure
--------------

`struct git_attr`::

	An attribute is an opaque object that is identified by its name.
	Pass the name to `git_attr()` function to obtain the object of
	this type.  The internal representation of this structure is
	of no interest to the calling programs.  The name of the
	attribute can be retrieved by calling `git_attr_name()`.

`struct git_attr_check`::

	This structure represents a set of attributes to check in a call
	to `git_check_attr()` function, and receives the results.


Attribute Values
----------------

An attribute for a path can be in one of four states: Set, Unset,
Unspecified or set to a string, and `.value` member of `struct
git_attr_check` records it.  There are three macros to check these:

`ATTR_TRUE()`::

	Returns true if the attribute is Set for the path.

`ATTR_FALSE()`::

	Returns true if the attribute is Unset for the path.

`ATTR_UNSET()`::

	Returns true if the attribute is Unspecified for the path.

If none of the above returns true, `.value` member points at a string
value of the attribute for the path.


Querying Specific Attributes
----------------------------

* Prepare an array of `struct git_attr_check` to define the list of
  attributes you would want to check.  To populate this array, you would
  need to define necessary attributes by calling `git_attr()` function.

* Call `git_check_attr()` to check the attributes for the path.

* Inspect `git_attr_check` structure to see how each of the attribute in
  the array is defined for the path.


Example
-------

To see how attributes "crlf" and "indent" are set for different paths.

. Prepare an array of `struct git_attr_check` with two elements (because
  we are checking two attributes).  Initialize their `attr` member with
  pointers to `struct git_attr` obtained by calling `git_attr()`:

------------
static struct git_attr_check check[2];
static void setup_check(void)
{
	if (check[0].attr)
		return; /* already done */
	check[0].attr = git_attr("crlf");
	check[1].attr = git_attr("ident");
}
------------

. Call `git_check_attr()` with the prepared array of `struct git_attr_check`:

------------
	const char *path;

	setup_check();
	git_check_attr(path, ARRAY_SIZE(check), check);
------------

. Act on `.value` member of the result, left in `check[]`:

------------
	const char *value = check[0].value;

	if (ATTR_TRUE(value)) {
		The attribute is Set, by listing only the name of the
		attribute in the gitattributes file for the path.
	} else if (ATTR_FALSE(value)) {
		The attribute is Unset, by listing the name of the
		attribute prefixed with a dash - for the path.
	} else if (ATTR_UNSET(value)) {
		The attribute is not set nor unset for the path.
	} else if (!strcmp(value, "input")) {
		If none of ATTR_TRUE(), ATTR_FALSE(), or ATTR_UNSET() is
		true, the value is a string set in the gitattributes
		file for the path by saying "attr=value".
	} else if (... other check using value as string ...) {
		...
	}
------------


Querying All Attributes
-----------------------

To get the values of all attributes associated with a file:

* Call `git_all_attrs()`, which returns an array of `git_attr_check`
  structures.

* Iterate over the `git_attr_check` array to examine the attribute
  names and values.  The name of the attribute described by a
  `git_attr_check` object can be retrieved via
  `git_attr_name(check[i].attr)`.  (Please note that no items will be
  returned for unset attributes, so `ATTR_UNSET()` will return false
  for all returned `git_array_check` objects.)

* Free the `git_array_check` array.

Filemanager

Name Type Size Permission Actions
api-allocation-growing.html File 17.55 KB 0644
api-allocation-growing.txt File 1019 B 0644
api-argv-array.html File 19.44 KB 0644
api-argv-array.txt File 2.12 KB 0644
api-builtin.html File 19.43 KB 0644
api-builtin.txt File 2 KB 0644
api-config.html File 23.39 KB 0644
api-config.txt File 5.18 KB 0644
api-credentials.html File 27.9 KB 0644
api-credentials.txt File 8.87 KB 0644
api-decorate.html File 16.23 KB 0644
api-decorate.txt File 60 B 0644
api-diff.html File 24.32 KB 0644
api-diff.txt File 5.22 KB 0644
api-directory-listing.html File 20.75 KB 0644
api-directory-listing.txt File 2.71 KB 0644
api-gitattributes.html File 21.9 KB 0644
api-gitattributes.txt File 3.62 KB 0644
api-grep.html File 16.31 KB 0644
api-grep.txt File 76 B 0644
api-hash.html File 18.42 KB 0644
api-hash.txt File 1.4 KB 0644
api-hashmap.html File 35.57 KB 0644
api-hashmap.txt File 7.71 KB 0644
api-history-graph.html File 24.08 KB 0644
api-history-graph.txt File 5.9 KB 0644
api-in-core-index.html File 16.96 KB 0644
api-in-core-index.txt File 457 B 0644
api-index-skel.txt File 431 B 0644
api-index.html File 18.45 KB 0644
api-index.sh File 611 B 0644
api-index.txt File 1.68 KB 0644
api-lockfile.html File 20.05 KB 0644
api-lockfile.txt File 2.92 KB 0644
api-merge.html File 21.36 KB 0644
api-merge.txt File 3.3 KB 0644
api-object-access.html File 16.73 KB 0644
api-object-access.txt File 342 B 0644
api-parse-options.html File 31.03 KB 0644
api-parse-options.txt File 9.36 KB 0644
api-quote.html File 16.42 KB 0644
api-quote.txt File 145 B 0644
api-ref-iteration.html File 19.71 KB 0644
api-ref-iteration.txt File 2.41 KB 0644
api-remote.html File 21.26 KB 0644
api-remote.txt File 3.3 KB 0644
api-revision-walking.html File 19.76 KB 0644
api-revision-walking.txt File 2.39 KB 0644
api-run-command.html File 28.25 KB 0644
api-run-command.txt File 8.08 KB 0644
api-setup.html File 16.51 KB 0644
api-setup.txt File 180 B 0644
api-sha1-array.html File 19.39 KB 0644
api-sha1-array.txt File 2.25 KB 0644
api-sigchain.html File 17.74 KB 0644
api-sigchain.txt File 1.34 KB 0644
api-strbuf.html File 32.15 KB 0644
api-strbuf.txt File 10.17 KB 0644
api-string-list.html File 26.42 KB 0644
api-string-list.txt File 6.84 KB 0644
api-tree-walking.html File 23.17 KB 0644
api-tree-walking.txt File 4.27 KB 0644
api-xdiff-interface.html File 16.3 KB 0644
api-xdiff-interface.txt File 139 B 0644
index-format.html File 27.12 KB 0644
index-format.txt File 6.29 KB 0644
pack-format.html File 24.08 KB 0644
pack-format.txt File 5.54 KB 0644
pack-heuristics.html File 42.74 KB 0644
pack-heuristics.txt File 17.77 KB 0644
pack-protocol.html File 43.12 KB 0644
pack-protocol.txt File 20.99 KB 0644
protocol-capabilities.html File 25.41 KB 0644
protocol-capabilities.txt File 7.09 KB 0644
protocol-common.html File 20.08 KB 0644
protocol-common.txt File 2.7 KB 0644
racy-git.html File 26.85 KB 0644
racy-git.txt File 8.63 KB 0644
send-pack-pipeline.html File 18.73 KB 0644
send-pack-pipeline.txt File 1.92 KB 0644
shallow.html File 18.86 KB 0644
shallow.txt File 2.3 KB 0644
trivial-merge.html File 21.62 KB 0644
trivial-merge.txt File 4.16 KB 0644