with `$Id$` upon check-in.
- Interaction between checkin/checkout attributes
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- In the check-in codepath, the worktree file is first converted
- with `ident` (if specified), and then with `crlf` (again, if
- specified and applicable).
-
- In the check-out codepath, the blob content is first converted
- with `crlf`, and then `ident`.
-
-
`filter`
^^^^^^^^
The content filtering is done to massage the content into a
shape that is more convenient for the platform, filesystem, and
the user to use. The keyword here is "more convenient" and not
- "turning something unusable into usable". In other words, it is
- "hanging yourself because we gave you a long rope" if your
- project uses filtering mechanism in such a way that it makes
- your project unusable unless the checkout is done with a
- specific filter in effect.
+ "turning something unusable into usable". In other words, the
+ intent is that if someone unsets the filter driver definition,
+ or does not have the appropriate filter program, the project
+ should still be usable.
Interaction between checkin/checkout attributes
----------------------------------------------------------------
+Creating an archive
+~~~~~~~~~~~~~~~~~~~
+
+`export-subst`
+^^^^^^^^^^^^^^
+
+If the attribute `export-subst` is set for a file then git will expand
+several placeholders when adding this file to an archive. The
+expansion depends on the availability of a commit ID, i.e. if
+gitlink:git-archive[1] has been given a tree instead of a commit or a
+tag then no replacement will be done. The placeholders are the same
+as those for the option `--pretty=format:` of gitlink:git-log[1],
+except that they need to be wrapped like this: `$Format:PLACEHOLDERS$`
+in the file. E.g. the string `$Format:%H$` will be replaced by the
+commit hash.
+
+
GIT
---
Part of the gitlink:git[7] suite