summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: b8041fe)
raw | patch | inline | side by side (parent: b8041fe)
author | Junio C Hamano <junkio@cox.net> | |
Mon, 17 Oct 2005 05:41:59 +0000 (22:41 -0700) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Mon, 17 Oct 2005 05:41:59 +0000 (22:41 -0700) |
Signed-off-by: Junio C Hamano <junkio@cox.net>
.gitignore | patch | blob | history | |
Documentation/git-check-ref-format.txt | [new file with mode: 0644] | patch | blob |
Documentation/git-rev-parse.txt | patch | blob | history |
diff --git a/.gitignore b/.gitignore
index 5ad4a2766d34569f3a1278544ab64978fab14cc8..b34a77a33a5f7f1e7a11cf8dda5d2f8b5e9186a1 100644 (file)
--- a/.gitignore
+++ b/.gitignore
git-bisect
git-branch
git-cat-file
+git-check-ref-format
git-checkout
git-checkout-index
git-cherry
diff --git a/Documentation/git-check-ref-format.txt b/Documentation/git-check-ref-format.txt
--- /dev/null
@@ -0,0 +1,50 @@
+git-check-ref-format(1)
+=======================
+
+NAME
+----
+git-check-ref-format - Make sure ref name is well formed.
+
+SYNOPSIS
+--------
+'git-check-ref-format' <refname>
+
+DESCRIPTION
+-----------
+Checks if a given 'refname' is acceptable, and exits non-zero if
+it is not.
+
+A reference is used in git to specify branches and tags. A
+branch head is stored under `$GIT_DIR/refs/heads` directory, and
+a tag is stored under `$GIT_DIR/refs/tags` directory. git
+imposes the following rules on how refs are named:
+
+. It could be named hierarchically (i.e. separated with slash
+ `/`), but each of its component cannot begin with a dot `.`;
+
+. It cannot have two consecutive dots `..` anywhere;
+
+. It cannot have ASCII control character (i.e. bytes whose
+ values are lower than \040, or \177 `DEL`), space, tilde `~`,
+ caret `{caret}`, or colon `:` anywhere;
+
+. It cannot end with a slash `/`.
+
+These rules makes it easy for shell script based tools to parse
+refnames, and also avoids ambiguities in certain refname
+expressions (see gitlink:git-rev-parse[1]). Namely:
+
+. double-dot `..` are often used as in `ref1..ref2`, and in some
+ context this notation means `{caret}ref1 ref2` (i.e. not in
+ ref1 and in ref2).
+
+. tilde `~` and caret `{caret}` are used to introduce postfix
+ 'nth parent' and 'peel onion' operation.
+
+. colon `:` is used as in `srcref:dstref` to mean "use srcref\'s
+ value and store it in dstref" in fetch and push operations.
+
+
+GIT
+---
+Part of the gitlink:git[7] suite
index 694f3a09d493fcbfbfed6e3f3d708a82d16c0e4c..099db294f4316fc39b451e2f54f9736bce9baf3b 100644 (file)
SPECIFYING REVISIONS
--------------------
-A revision parameter typically names a commit object. They use
-what is called an 'extended SHA1' syntax.
+A revision parameter typically, but not necessarily, names a
+commit object. They use what is called an 'extended SHA1'
+syntax.
* The full SHA1 object name (40-byte hexadecimal string), or
a substring of such that is unique within the repository.
equivalent to rev{caret}{caret}{caret} which is equivalent to\
rev{caret}1{caret}1{caret}1.
+* A suffix '{caret}' followed by an object type name enclosed in
+ brace pair (e.g. `v0.99.8{caret}\{commit\}`) means the object
+ could be a tag, and dereference the tag recursively until an
+ object of that type is found or the object cannot be
+ dereferenced anymore (in which case, barf). `rev{caret}0`
+ introduced earlier is a short-hand for `rev{caret}\{commit\}`.
+
+* A suffix '{caret}' followed by an empty brace pair
+ (e.g. `v0.99.8{caret}\{\}`) means the object could be a tag,
+ and dereference the tag recursively until a non-tag object is
+ found.
+
'git-rev-parse' also accepts a prefix '{caret}' to revision parameter,
which is passed to 'git-rev-list'. Two revision parameters
concatenated with '..' is a short-hand for writing a range