diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/config.txt | 8 | ||||
-rw-r--r-- | Documentation/core-tutorial.txt | 4 | ||||
-rw-r--r-- | Documentation/everyday.txt | 6 | ||||
-rw-r--r-- | Documentation/git-branch.txt | 10 | ||||
-rw-r--r-- | Documentation/git-checkout.txt | 7 | ||||
-rw-r--r-- | Documentation/git-read-tree.txt | 11 | ||||
-rw-r--r-- | Documentation/git-rev-parse.txt | 7 | ||||
-rw-r--r-- | Documentation/git-update-ref.txt | 28 | ||||
-rw-r--r-- | Documentation/git-write-tree.txt | 8 | ||||
-rw-r--r-- | Documentation/repository-layout.txt | 11 | ||||
-rw-r--r-- | Documentation/technical/pack-format.txt | 11 | ||||
-rw-r--r-- | Documentation/tutorial-2.txt | 2 | ||||
-rw-r--r-- | Documentation/tutorial.txt | 12 |
13 files changed, 108 insertions, 17 deletions
diff --git a/Documentation/config.txt b/Documentation/config.txt index d1a4bec0d4..e178ee2de1 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -70,6 +70,14 @@ core.preferSymlinkRefs:: This is sometimes needed to work with old scripts that expect HEAD to be a symbolic link. +core.logAllRefUpdates:: + If true, `git-update-ref` will append a line to + "$GIT_DIR/logs/<ref>" listing the new SHA1 and the date/time + of the update. If the file does not exist it will be + created automatically. This information can be used to + determine what commit was the tip of a branch "2 days ago". + This value is false by default (no logging). + core.repositoryFormatVersion:: Internal variable identifying the repository format and layout version. diff --git a/Documentation/core-tutorial.txt b/Documentation/core-tutorial.txt index d1360ecde2..5a831adf43 100644 --- a/Documentation/core-tutorial.txt +++ b/Documentation/core-tutorial.txt @@ -1,5 +1,5 @@ -A short git tutorial -==================== +A git core tutorial for developers +================================== Introduction ------------ diff --git a/Documentation/everyday.txt b/Documentation/everyday.txt index 4b56370937..2ad2d61300 100644 --- a/Documentation/everyday.txt +++ b/Documentation/everyday.txt @@ -66,7 +66,7 @@ $ git prune <4> <1> running without "--full" is usually cheap and assures the repository health reasonably well. <2> check how many loose objects there are and how much -diskspace is wasted by not repacking. +disk space is wasted by not repacking. <3> without "-a" repacks incrementally. repacking every 4-5MB of loose objects accumulation may be a good rule of thumb. <4> after repack, prune removes the duplicate loose objects. @@ -86,7 +86,7 @@ Individual Developer (Standalone)[[Individual Developer (Standalone)]] ---------------------------------------------------------------------- A standalone individual developer does not exchange patches with -other poeple, and works alone in a single repository, using the +other people, and works alone in a single repository, using the following commands. * gitlink:git-show-branch[1] to see where you are. @@ -370,7 +370,7 @@ Examples Run git-daemon to serve /pub/scm from inetd.:: + ------------ -$ grep git /etc/inet.conf +$ grep git /etc/inetd.conf git stream tcp nowait nobody \ /usr/bin/git-daemon git-daemon --inetd --syslog --export-all /pub/scm ------------ diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt index 0b37e2bfc8..d43ef1dec4 100644 --- a/Documentation/git-branch.txt +++ b/Documentation/git-branch.txt @@ -9,7 +9,7 @@ SYNOPSIS -------- [verse] 'git-branch' [-r] -'git-branch' [-f] <branchname> [<start-point>] +'git-branch' [-l] [-f] <branchname> [<start-point>] 'git-branch' (-d | -D) <branchname>... DESCRIPTION @@ -23,7 +23,8 @@ If no <start-point> is given, the branch will be created with a head equal to that of the currently checked out branch. With a `-d` or `-D` option, `<branchname>` will be deleted. You may -specify more than one branch for deletion. +specify more than one branch for deletion. If the branch currently +has a ref log then the ref log will also be deleted. OPTIONS @@ -34,6 +35,11 @@ OPTIONS -D:: Delete a branch irrespective of its index status. +-l:: + Create the branch's ref log. This activates recording of + all changes to made the branch ref, enabling use of date + based sha1 expressions such as "<branchname>@{yesterday}". + -f:: Force the creation of a new branch even if it means deleting a branch that already exists with the same name. diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt index d82efc00d4..fbdbadc74f 100644 --- a/Documentation/git-checkout.txt +++ b/Documentation/git-checkout.txt @@ -8,7 +8,7 @@ git-checkout - Checkout and switch to a branch SYNOPSIS -------- [verse] -'git-checkout' [-f] [-b <new_branch>] [-m] [<branch>] +'git-checkout' [-f] [-b <new_branch> [-l]] [-m] [<branch>] 'git-checkout' [-m] [<branch>] <paths>... DESCRIPTION @@ -40,6 +40,11 @@ OPTIONS by gitlink:git-check-ref-format[1]. Some of these checks may restrict the characters allowed in a branch name. +-l:: + Create the new branch's ref log. This activates recording of + all changes to made the branch ref, enabling use of date + based sha1 expressions such as "<branchname>@{yesterday}". + -m:: If you have local modifications to one or more files that are different between the current branch and the branch to diff --git a/Documentation/git-read-tree.txt b/Documentation/git-read-tree.txt index 844cfda8d2..1f21d95684 100644 --- a/Documentation/git-read-tree.txt +++ b/Documentation/git-read-tree.txt @@ -8,7 +8,7 @@ git-read-tree - Reads tree information into the index SYNOPSIS -------- -'git-read-tree' (<tree-ish> | [[-m [--aggressive]| --reset] [-u | -i]] <tree-ish1> [<tree-ish2> [<tree-ish3>]]) +'git-read-tree' (<tree-ish> | [[-m [--aggressive] | --reset | --prefix=<prefix>] [-u | -i]] <tree-ish1> [<tree-ish2> [<tree-ish3>]]) DESCRIPTION @@ -63,6 +63,15 @@ OPTIONS * when both sides adds a path identically. The resolution is to add that path. +--prefix=<prefix>/:: + Keep the current index contents, and read the contents + of named tree-ish under directory at `<prefix>`. The + original index file cannot have anything at the path + `<prefix>` itself, and have nothing in `<prefix>/` + directory. Note that the `<prefix>/` value must end + with a slash. + + <tree-ish#>:: The id of the tree object(s) to be read/merged. diff --git a/Documentation/git-rev-parse.txt b/Documentation/git-rev-parse.txt index ab896fcf83..b894694367 100644 --- a/Documentation/git-rev-parse.txt +++ b/Documentation/git-rev-parse.txt @@ -124,6 +124,13 @@ syntax. happen to have both heads/master and tags/master, you can explicitly say 'heads/master' to tell git which one you mean. +* A suffix '@' followed by a date specification enclosed in a brace + pair (e.g. '\{yesterday\}', '\{1 month 2 weeks 3 days 1 hour 1 + second ago\}' or '\{1979-02-26 18:30:00\}') to specify the value + of the ref at a prior point in time. This suffix may only be + used immediately following a ref name and the ref must have an + existing log ($GIT_DIR/logs/<ref>). + * A suffix '{caret}' to a revision parameter means the first parent of that commit object. '{caret}<n>' means the <n>th parent (i.e. 'rev{caret}' diff --git a/Documentation/git-update-ref.txt b/Documentation/git-update-ref.txt index 475237f19e..e062030e91 100644 --- a/Documentation/git-update-ref.txt +++ b/Documentation/git-update-ref.txt @@ -7,7 +7,7 @@ git-update-ref - update the object name stored in a ref safely SYNOPSIS -------- -'git-update-ref' <ref> <newvalue> [<oldvalue>] +'git-update-ref' [-m <reason>] <ref> <newvalue> [<oldvalue>] DESCRIPTION ----------- @@ -49,6 +49,32 @@ for reading but not for writing (so we'll never write through a ref symlink to some other tree, if you have copied a whole archive by creating a symlink tree). +Logging Updates +--------------- +If config parameter "core.logAllRefUpdates" is true or the file +"$GIT_DIR/logs/<ref>" exists then `git-update-ref` will append +a line to the log file "$GIT_DIR/logs/<ref>" (dereferencing all +symbolic refs before creating the log name) describing the change +in ref value. Log lines are formatted as: + + . oldsha1 SP newsha1 SP committer LF ++ +Where "oldsha1" is the 40 character hexadecimal value previously +stored in <ref>, "newsha1" is the 40 character hexadecimal value of +<newvalue> and "committer" is the committer's name, email address +and date in the standard GIT committer ident format. + +Optionally with -m: + + . oldsha1 SP newsha1 SP committer TAB message LF ++ +Where all fields are as described above and "message" is the +value supplied to the -m option. + +An update will fail (without changing <ref>) if the current user is +unable to create a new log file, append to the existing log file +or does not have committer information available. + Author ------ Written by Linus Torvalds <torvalds@osdl.org>. diff --git a/Documentation/git-write-tree.txt b/Documentation/git-write-tree.txt index 77e12cb949..c85fa89c30 100644 --- a/Documentation/git-write-tree.txt +++ b/Documentation/git-write-tree.txt @@ -8,7 +8,7 @@ git-write-tree - Creates a tree object from the current index SYNOPSIS -------- -'git-write-tree' [--missing-ok] +'git-write-tree' [--missing-ok] [--prefix=<prefix>/] DESCRIPTION ----------- @@ -30,6 +30,12 @@ OPTIONS directory exist in the object database. This option disables this check. +--prefix=<prefix>/:: + Writes a tree object that represents a subdirectory + `<prefix>`. This can be used to write the tree object + for a subproject that is in the named subdirectory. + + Author ------ Written by Linus Torvalds <torvalds@osdl.org> diff --git a/Documentation/repository-layout.txt b/Documentation/repository-layout.txt index 98fbe7db52..b52dfdc308 100644 --- a/Documentation/repository-layout.txt +++ b/Documentation/repository-layout.txt @@ -128,3 +128,14 @@ remotes:: Stores shorthands to be used to give URL and default refnames to interact with remote repository to `git fetch`, `git pull` and `git push` commands. + +logs:: + Records of changes made to refs are stored in this + directory. See the documentation on git-update-ref + for more information. + +logs/refs/heads/`name`:: + Records all changes made to the branch tip named `name`. + +logs/refs/tags/`name`:: + Records all changes made to the tag named `name`. diff --git a/Documentation/technical/pack-format.txt b/Documentation/technical/pack-format.txt index ed2decc107..0e1ffb2427 100644 --- a/Documentation/technical/pack-format.txt +++ b/Documentation/technical/pack-format.txt @@ -5,8 +5,13 @@ GIT pack format - The header appears at the beginning and consists of the following: - 4-byte signature - 4-byte version number (network byte order) + 4-byte signature: + The signature is: {'P', 'A', 'C', 'K'} + + 4-byte version number (network byte order): + GIT currently accepts version number 2 or 3 but + generates version 2 only. + 4-byte number of objects contained in the pack (network byte order) Observation: we cannot have more than 4G versions ;-) and @@ -41,7 +46,7 @@ GIT pack format 8-byte integers to go beyond 4G objects per pack, but it is not strictly necessary. - - The header is followed by sorted 28-byte entries, one entry + - The header is followed by sorted 24-byte entries, one entry per object in the pack. Each entry is: 4-byte network byte order integer, recording where the diff --git a/Documentation/tutorial-2.txt b/Documentation/tutorial-2.txt index 08d3453e5c..9c9500c1f1 100644 --- a/Documentation/tutorial-2.txt +++ b/Documentation/tutorial-2.txt @@ -377,7 +377,7 @@ At this point you should know everything necessary to read the man pages for any of the git commands; one good place to start would be with the commands mentioned in link:everyday.html[Everyday git]. You should be able to find any unknown jargon in the -link:glossary.html[Glosssay]. +link:glossary.html[Glossary]. The link:cvs-migration.html[CVS migration] document explains how to import a CVS repository into git, and shows how to use git in a diff --git a/Documentation/tutorial.txt b/Documentation/tutorial.txt index 79781adf4f..039a8598e3 100644 --- a/Documentation/tutorial.txt +++ b/Documentation/tutorial.txt @@ -429,16 +429,24 @@ $ gitk --since="2 weeks ago" drivers/ ------------------------------------- allows you to browse any commits from the last 2 weeks of commits -that modified files under the "drivers" directory. +that modified files under the "drivers" directory. (Note: you can +adjust gitk's fonts by holding down the control key while pressing +"-" or "+".) Finally, most commands that take filenames will optionally allow you to precede any filename by a commit, to specify a particular version -fo the file: +of the file: ------------------------------------- $ git diff v2.5:Makefile HEAD:Makefile.in ------------------------------------- +You can also use "git cat-file -p" to see any such file: + +------------------------------------- +$ git cat-file -p v2.5:Makefile +------------------------------------- + Next Steps ---------- |