diff options
Diffstat (limited to 'Documentation')
71 files changed, 609 insertions, 123 deletions
diff --git a/Documentation/RelNotes-1.5.2.txt b/Documentation/RelNotes-1.5.2.txt index 6195715dc7..e8328d090a 100644 --- a/Documentation/RelNotes-1.5.2.txt +++ b/Documentation/RelNotes-1.5.2.txt @@ -36,7 +36,7 @@ Updates since v1.5.1 expansion). These conversions apply when checking files in or out, and exporting via git-archive. -* The packfile format now optionally suports 64-bit index. +* The packfile format now optionally supports 64-bit index. This release supports the "version 2" format of the .idx file. This is automatically enabled when a huge packfile diff --git a/Documentation/RelNotes-1.5.3.txt b/Documentation/RelNotes-1.5.3.txt index d03894b926..0668d3c0ca 100644 --- a/Documentation/RelNotes-1.5.3.txt +++ b/Documentation/RelNotes-1.5.3.txt @@ -86,7 +86,7 @@ Updates since v1.5.2 - "git rev-list" learned --regexp-ignore-case and --extended-regexp options to tweak its matching logic used - for --grep fitering. + for --grep filtering. - "git describe --contains" is a handier way to call more obscure command "git name-rev --tags". @@ -243,7 +243,7 @@ Updates since v1.5.2 - We used to have core.legacyheaders configuration, when set to false, allowed git to write loose objects in a format - that mimicks the format used by objects stored in packs. It + that mimics the format used by objects stored in packs. It turns out that this was not so useful. Although we will continue to read objects written in that format, we do not honor that configuration anymore and create loose objects in @@ -302,7 +302,7 @@ Updates since v1.5.2 small enough delta results it creates while looking for the best delta candidates. - - "git pack-objects" learned a new heuristcs to prefer delta + - "git pack-objects" learned a new heuristic to prefer delta that is shallower in depth over the smallest delta possible. This improves both overall packfile access performance and packfile density. diff --git a/Documentation/RelNotes-1.5.4.4.txt b/Documentation/RelNotes-1.5.4.4.txt index 89fa6d03bc..323c1a88c7 100644 --- a/Documentation/RelNotes-1.5.4.4.txt +++ b/Documentation/RelNotes-1.5.4.4.txt @@ -55,7 +55,7 @@ Fixes since v1.5.4.3 * "git log --merge" did not work well with --left-right option. - * "git svn" promprted for client cert password every time it accessed the + * "git svn" prompted for client cert password every time it accessed the server. * The reset command in "git fast-import" data stream was documented to diff --git a/Documentation/RelNotes-1.5.4.5.txt b/Documentation/RelNotes-1.5.4.5.txt index 0282341398..bbd130e36d 100644 --- a/Documentation/RelNotes-1.5.4.5.txt +++ b/Documentation/RelNotes-1.5.4.5.txt @@ -9,7 +9,7 @@ Fixes since v1.5.4.4 1.5.4). * Bogus refspec configuration such as "remote.there.fetch = =" were not - detected as errors (regressionin 1.5.4). + detected as errors (regression in 1.5.4). * You couldn't specify a custom editor whose path contains a whitespace via GIT_EDITOR (and core.editor). diff --git a/Documentation/RelNotes-1.5.4.6.txt b/Documentation/RelNotes-1.5.4.6.txt new file mode 100644 index 0000000000..3e3c3e55a3 --- /dev/null +++ b/Documentation/RelNotes-1.5.4.6.txt @@ -0,0 +1,43 @@ +GIT v1.5.4.6 Release Notes +========================== + +I personally do not think there is any reason anybody should want to +run v1.5.4.X series these days, because 'master' version is always +more stable than any tagged released version of git. + +This is primarily to futureproof "git-shell" to accept requests +without a dash between "git" and subcommand name (e.g. "git +upload-pack") which the newer client will start to make sometime in +the future. + +Fixes since v1.5.4.5 +-------------------- + + * Command line option "-n" to "git-repack" was not correctly parsed. + + * Error messages from "git-apply" when the patchfile cannot be opened + have been improved. + + * Error messages from "git-bisect" when given nonsense revisions have + been improved. + + * reflog syntax that uses time e.g. "HEAD@{10 seconds ago}:path" did not + stop parsing at the closing "}". + + * "git rev-parse --symbolic-full-name ^master^2" printed solitary "^", + but it should print nothing. + + * "git apply" did not enforce "match at the beginning" correctly. + + * a path specification "a/b" in .gitattributes file should not match + "sub/a/b", but it did. + + * "git log --date-order --topo-order" did not override the earlier + date-order with topo-order as expected. + + * "git fast-export" did not export octopus merges correctly. + + * "git archive --prefix=$path/" mishandled gitattributes. + +As usual, it also comes with many documentation fixes and clarifications. + diff --git a/Documentation/RelNotes-1.5.5.5.txt b/Documentation/RelNotes-1.5.5.5.txt new file mode 100644 index 0000000000..30fa3615c7 --- /dev/null +++ b/Documentation/RelNotes-1.5.5.5.txt @@ -0,0 +1,11 @@ +GIT v1.5.5.5 Release Notes +========================== + +I personally do not think there is any reason anybody should want to +run v1.5.5.X series these days, because 'master' version is always +more stable than any tagged released version of git. + +This is primarily to futureproof "git-shell" to accept requests +without a dash between "git" and subcommand name (e.g. "git +upload-pack") which the newer client will start to make sometime in +the future. diff --git a/Documentation/RelNotes-1.5.6.1.txt b/Documentation/RelNotes-1.5.6.1.txt new file mode 100644 index 0000000000..4864b16445 --- /dev/null +++ b/Documentation/RelNotes-1.5.6.1.txt @@ -0,0 +1,28 @@ +GIT v1.5.6.1 Release Notes +========================== + +Fixes since v1.5.6 +------------------ + +* Last minute change broke loose object creation on AIX. + +* (performance fix) We used to make $GIT_DIR absolute path early in the + programs but keeping it relative to the current directory internally + gives 1-3 per-cent performance boost. + +* bash completion knows the new --graph option to git-log family. + + +* git-diff -c/--cc showed unnecessary "deletion" lines at the context + boundary. + +* git-for-each-ref ignored %(object) and %(type) requests for tag + objects. + +* git-merge usage had a typo. + +* Rebuilding of git-svn metainfo database did not take rewriteRoot + option into account. + +* Running "git-rebase --continue/--skip/--abort" before starting a + rebase gave nonsense error messages. diff --git a/Documentation/RelNotes-1.5.6.2.txt b/Documentation/RelNotes-1.5.6.2.txt new file mode 100644 index 0000000000..5902a85a78 --- /dev/null +++ b/Documentation/RelNotes-1.5.6.2.txt @@ -0,0 +1,40 @@ +GIT v1.5.6.2 Release Notes +========================== + +Futureproof +----------- + + * "git-shell" accepts requests without a dash between "git" and + subcommand name (e.g. "git upload-pack") which the newer client will + start to make sometime in the future. + +Fixes since v1.5.6.1 +-------------------- + +* "git clone" from a remote that is named with url.insteadOf setting in + $HOME/.gitconfig did not work well. + +* "git describe --long --tags" segfaulted when the described revision was + tagged with a lightweight tag. + +* "git diff --check" did not report the result via its exit status + reliably. + +* When remote side used to have branch 'foo' and git-fetch finds that now + it has branch 'foo/bar', it refuses to lose the existing remote tracking + branch and its reflog. The error message has been improved to suggest + pruning the remote if the user wants to proceed and get the latest set + of branches from the remote, including such 'foo/bar'. + +* "git reset file" should mean the same thing as "git reset HEAD file", + but we required disambiguating -- even when "file" is not ambiguous. + +* "git show" segfaulted when an annotated tag that points at another + annotated tag was given to it. + +* Optimization for a large import via "git-svn" introduced in v1.5.6 had a + serious memory and temporary file leak, which made it unusable for + moderately large import. + +* "git-svn" mangled remote nickname used in the configuration file + unnecessarily. diff --git a/Documentation/RelNotes-1.5.6.3.txt b/Documentation/RelNotes-1.5.6.3.txt new file mode 100644 index 0000000000..942611299d --- /dev/null +++ b/Documentation/RelNotes-1.5.6.3.txt @@ -0,0 +1,52 @@ +GIT v1.5.6.3 Release Notes +========================== + +Fixes since v1.5.6.2 +-------------------- + +* Setting core.sharerepository to traditional "true" value was supposed to make + the repository group writable but should not affect permission for others. + However, since 1.5.6, it was broken to drop permission for others when umask is + 022, making the repository unreadable by others. + +* Setting GIT_TRACE will report spawning of external process via run_command(). + +* Using an object with very deep delta chain pinned memory needed for extracting + intermediate base objects unnecessarily long, leading to excess memory usage. + +* Bash completion script did not notice '--' marker on the command + line and tried the relatively slow "ref completion" even when + completing arguments after one. + +* Registering a non-empty blob racily and then truncating the working + tree file for it confused "racy-git avoidance" logic into thinking + that the path is now unchanged. + +* The section that describes attributes related to git-archive were placed + in a wrong place in the gitattributes(5) manual page. + +* "git am" was not helpful to the users when it detected that the committer + information is not set up properly yet. + +* "git clone" had a leftover debugging fprintf(). + +* "git clone -q" was not quiet enough as it used to and gave object count + and progress reports. + +* "git clone" marked downloaded packfile with .keep; this could be a + good thing if the remote side is well packed but otherwise not, + especially for a project that is not really big. + +* "git daemon" used to call syslog() from a signal handler, which + could raise signals of its own but generally is not reentrant. This + was fixed by restructuring the code to report syslog() after the handler + returns. + +* When "git push" tries to remove a remote ref, and corresponding + tracking ref is missing, we used to report error (i.e. failure to + remove something that does not exist). + +* "git mailinfo" (hence "git am") did not handle commit log messages in a + MIME multipart mail correctly. + +Contains other various documentation fixes. diff --git a/Documentation/RelNotes-1.5.6.4.txt b/Documentation/RelNotes-1.5.6.4.txt new file mode 100644 index 0000000000..d8968f1ecb --- /dev/null +++ b/Documentation/RelNotes-1.5.6.4.txt @@ -0,0 +1,47 @@ +GIT v1.5.6.4 Release Notes +========================== + +Fixes since v1.5.6.3 +-------------------- + +* Various commands could overflow its internal buffer on a platform + with small PATH_MAX value in a repository that has contents with + long pathnames. + +* There wasn't a way to make --pretty=format:%<> specifiers to honor + .mailmap name rewriting for authors and committers. Now you can with + %aN and %cN. + +* Bash completion wasted too many cycles; this has been optimized to be + usable again. + +* Bash completion lost ref part when completing something like "git show + pu:Makefile". + +* "git-cvsserver" did not clean up its temporary working area after annotate + request. + +* "git-daemon" called syslog() from its signal handler, which was a + no-no. + +* "git-fetch" into an empty repository used to remind that the fetch will + be huge by saying "no common commits", but this was an unnecessary + noise; it is already known by the user anyway. + +* "git-http-fetch" would have segfaulted when pack idx file retrieved + from the other side was corrupt. + +* "git-index-pack" used too much memory when dealing with a deep delta chain. + +* "git-mailinfo" (hence "git-am") did not correctly handle in-body [PATCH] + line to override the commit title taken from the mail Subject header. + +* "git-rebase -i -p" lost parents that are not involved in the history + being rewritten. + +* "git-rm" lost track of where the index file was when GIT_DIR was + specified as a relative path. + +* "git-rev-list --quiet" was not quiet as advertised. + +Contains other various documentation fixes. diff --git a/Documentation/RelNotes-1.5.6.5.txt b/Documentation/RelNotes-1.5.6.5.txt new file mode 100644 index 0000000000..47ca172462 --- /dev/null +++ b/Documentation/RelNotes-1.5.6.5.txt @@ -0,0 +1,29 @@ +GIT v1.5.6.5 Release Notes +========================== + +Fixes since v1.5.6.4 +-------------------- + +* "git cvsimport" used to spit out "UNKNOWN LINE..." diagnostics to stdout. + +* "git commit -F filename" and "git tag -F filename" run from subdirectories + did not read the right file. + +* "git init --template=" with blank "template" parameter linked files + under root directories to .git, which was a total nonsense. Instead, it + means "I do not want to use anything from the template directory". + +* "git diff-tree" and other diff plumbing ignored diff.renamelimit configuration + variable when the user explicitly asked for rename detection. + +* "git name-rev --name-only" did not work when "--stdin" option was in effect. + +* "git show-branch" mishandled its 8th branch. + +* Addition of "git update-index --ignore-submodules" that happened during + 1.5.6 cycle broke "git update-index --ignore-missing". + +* "git send-email" did not parse charset from an existing Content-type: + header properly. + +Contains other various documentation fixes. diff --git a/Documentation/config.txt b/Documentation/config.txt index 2466ecfc6b..da2cb3f9f4 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -92,7 +92,7 @@ Example # Our diff algorithm [diff] - external = "/usr/local/bin/gnu-diff -u" + external = /usr/local/bin/diff-wrapper renames = true [branch "devel"] @@ -562,9 +562,11 @@ diff.autorefreshindex:: diff.external:: If this config variable is set, diff generation is not performed using the internal diff machinery, but using the - given command. Note: if you want to use an external diff - program only on a subset of your files, you might want to - use linkgit:gitattributes[5] instead. + given command. Can be overridden with the `GIT_EXTERNAL_DIFF' + environment variable. The command is called with parameters + as described under "git Diffs" in linkgit:git[1]. Note: if + you want to use an external diff program only on a subset of + your files, you might want to use linkgit:gitattributes[5] instead. diff.renameLimit:: The number of files to consider when performing the copy/rename diff --git a/Documentation/diff-generate-patch.txt b/Documentation/diff-generate-patch.txt index 029c5f2b82..517e1eba3c 100644 --- a/Documentation/diff-generate-patch.txt +++ b/Documentation/diff-generate-patch.txt @@ -96,7 +96,7 @@ index fabadb8,cc95eb0..4866510 + or like this (when '--cc' option is used): - diff --c file + diff --cc file 2. It is followed by one or more extended header lines (this example shows a merge with two parents): diff --git a/Documentation/git-add.txt b/Documentation/git-add.txt index b8e3fa6759..815864c37f 100644 --- a/Documentation/git-add.txt +++ b/Documentation/git-add.txt @@ -187,8 +187,9 @@ update:: "Update>>". When the prompt ends with double '>>', you can make more than one selection, concatenated with whitespace or comma. Also you can say ranges. E.g. "2-5 7,9" to choose - 2,3,4,5,7,9 from the list. You can say '*' to choose - everything. + 2,3,4,5,7,9 from the list. If the second number in a range is + omitted, all remaining patches are taken. E.g. "7-" to choose + 7,8,9 from the list. You can say '*' to choose everything. + What you chose are then highlighted with '*', like this: diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt index 46544a0769..5622971f6a 100644 --- a/Documentation/git-am.txt +++ b/Documentation/git-am.txt @@ -153,7 +153,7 @@ linkgit:git-apply[1]. Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-blame.txt b/Documentation/git-blame.txt index 8f4fb46685..0e0196e5b0 100644 --- a/Documentation/git-blame.txt +++ b/Documentation/git-blame.txt @@ -190,7 +190,7 @@ linkgit:git-annotate[1] AUTHOR ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> GIT --- diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt index 0fd58083eb..39cd5d961f 100644 --- a/Documentation/git-branch.txt +++ b/Documentation/git-branch.txt @@ -202,7 +202,7 @@ but different purposes: Author ------ -Written by Linus Torvalds <torvalds@osdl.org> and Junio C Hamano <junkio@cox.net> +Written by Linus Torvalds <torvalds@osdl.org> and Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-check-attr.txt b/Documentation/git-check-attr.txt index ef16b93982..f8e1bd5027 100644 --- a/Documentation/git-check-attr.txt +++ b/Documentation/git-check-attr.txt @@ -30,7 +30,7 @@ linkgit:gitattributes[5]. Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-cherry-pick.txt b/Documentation/git-cherry-pick.txt index 5ac9cfb0ef..44e7749b10 100644 --- a/Documentation/git-cherry-pick.txt +++ b/Documentation/git-cherry-pick.txt @@ -58,14 +58,14 @@ OPTIONS Usually the command automatically creates a commit with a commit log message stating which commit was cherry-picked. This flag applies the change necessary - to cherry-pick the named commit to your working tree, - but does not make the commit. In addition, when this - option is used, your working tree does not have to match + to cherry-pick the named commit to your working tree + and the index, but does not make the commit. In addition, + when this option is used, your index does not have to match the HEAD commit. The cherry-pick is done against the - beginning state of your working tree. + beginning state of your index. + This is useful when cherry-picking more than one commits' -effect to your working tree in a row. +effect to your index in a row. -s:: --signoff:: @@ -74,7 +74,7 @@ effect to your working tree in a row. Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-cherry.txt b/Documentation/git-cherry.txt index ef7caf61e1..912601160c 100644 --- a/Documentation/git-cherry.txt +++ b/Documentation/git-cherry.txt @@ -64,7 +64,7 @@ linkgit:git-patch-id[1] Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt index 7e8b4ff72c..861ce93a49 100644 --- a/Documentation/git-commit.txt +++ b/Documentation/git-commit.txt @@ -322,7 +322,7 @@ linkgit:git-commit-tree[1] Author ------ Written by Linus Torvalds <torvalds@osdl.org> and -Junio C Hamano <junkio@cox.net> +Junio C Hamano <gitster@pobox.com> GIT diff --git a/Documentation/git-config.txt b/Documentation/git-config.txt index c90421ee7f..b0f20e2392 100644 --- a/Documentation/git-config.txt +++ b/Documentation/git-config.txt @@ -231,7 +231,7 @@ Given a .git/config like this: ; Our diff algorithm [diff] - external = "/usr/local/bin/gnu-diff -u" + external = /usr/local/bin/diff-wrapper renames = true ; Proxy settings diff --git a/Documentation/git-count-objects.txt b/Documentation/git-count-objects.txt index 1ba85a259a..4a9dcd7382 100644 --- a/Documentation/git-count-objects.txt +++ b/Documentation/git-count-objects.txt @@ -27,7 +27,7 @@ OPTIONS Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-cvsimport.txt b/Documentation/git-cvsimport.txt index 2f9b35f622..93b7d2dc99 100644 --- a/Documentation/git-cvsimport.txt +++ b/Documentation/git-cvsimport.txt @@ -31,6 +31,12 @@ to work with; after that, you need to 'git merge' incremental imports, or any CVS branches, yourself. It is advisable to specify a named remote via -r to separate and protect the incoming branches. +If you intend to set up a shared public repository that all developers can +read/write, or if you want to use linkgit:git-cvsserver[1], then you +probably want to make a bare clone of the imported repository, +and use the clone as the shared repository. +See linkgit:gitcvs-migration[7]. + OPTIONS ------- diff --git a/Documentation/git-cvsserver.txt b/Documentation/git-cvsserver.txt index 3310ae25ff..19da87e71d 100644 --- a/Documentation/git-cvsserver.txt +++ b/Documentation/git-cvsserver.txt @@ -133,6 +133,9 @@ write access to the log file and to the database (see <<dbbackend,Database Backend>>. If you want to offer write access over SSH, the users of course also need write access to the git repository itself. +You also need to ensure that each repository is "bare" (without a git index +file) for `cvs commit` to work. See linkgit:gitcvs-migration[7]. + [[configaccessmethod]] All configuration variables can also be overridden for a specific method of access. Valid method names are "ext" (for SSH access) and "pserver". The diff --git a/Documentation/git-describe.txt b/Documentation/git-describe.txt index 9f6f483186..44aaa4090c 100644 --- a/Documentation/git-describe.txt +++ b/Documentation/git-describe.txt @@ -136,7 +136,7 @@ will be the smallest number of commits possible. Author ------ Written by Linus Torvalds <torvalds@osdl.org>, but somewhat -butchered by Junio C Hamano <junkio@cox.net>. Later significantly +butchered by Junio C Hamano <gitster@pobox.com>. Later significantly updated by Shawn Pearce <spearce@spearce.org>. Documentation diff --git a/Documentation/git-diff-tree.txt b/Documentation/git-diff-tree.txt index 56caeb2d26..5d23985b57 100644 --- a/Documentation/git-diff-tree.txt +++ b/Documentation/git-diff-tree.txt @@ -49,13 +49,13 @@ include::diff-options.txt[] --stdin:: When '--stdin' is specified, the command does not take <tree-ish> arguments from the command line. Instead, it - reads either one <commit> or a pair of <tree-ish> + reads either one <commit> or a list of <commit> separated with a single space from its standard input. + When a single commit is given on one line of such input, it compares the commit with its parents. The following flags further affects its -behavior. This does not apply to the case where two <tree-ish> -separated with a single space are given. +behavior. The remaining commits, when given, are used as if they are +parents of the first commit. -m:: By default, "git-diff-tree --stdin" does not show @@ -93,11 +93,11 @@ include::pretty-options.txt[] This flag changes the way a merge commit patch is displayed, in a similar way to the '-c' option. It implies the '-c' and '-p' options and further compresses the patch output - by omitting hunks that show differences from only one - parent, or show the same change from all but one parent - for an Octopus merge. When this optimization makes all - hunks disappear, the commit itself and the commit log - message is not shown, just like in any other "empty diff" case. + by omitting uninteresting hunks whose the contents in the parents + have only two variants and the merge result picks one of them + without modification. When all hunks are uninteresting, the commit + itself and the commit log message is not shown, just like in any other + "empty diff" case. --always:: Show the commit itself and the commit log message even diff --git a/Documentation/git-fetch.txt b/Documentation/git-fetch.txt index 489b2b17e6..4fae7fb5a8 100644 --- a/Documentation/git-fetch.txt +++ b/Documentation/git-fetch.txt @@ -45,7 +45,7 @@ linkgit:git-pull[1] Author ------ Written by Linus Torvalds <torvalds@osdl.org> and -Junio C Hamano <junkio@cox.net> +Junio C Hamano <gitster@pobox.com> Documentation ------------- diff --git a/Documentation/git-fmt-merge-msg.txt b/Documentation/git-fmt-merge-msg.txt index 2a7cfb980b..222052fba7 100644 --- a/Documentation/git-fmt-merge-msg.txt +++ b/Documentation/git-fmt-merge-msg.txt @@ -61,7 +61,7 @@ linkgit:git-merge[1] Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt index 4dafa39a92..ee27eff3b1 100644 --- a/Documentation/git-format-patch.txt +++ b/Documentation/git-format-patch.txt @@ -235,7 +235,7 @@ linkgit:git-am[1], linkgit:git-send-email[1] Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-hash-object.txt b/Documentation/git-hash-object.txt index cf3dce8a4a..1abcd96c6d 100644 --- a/Documentation/git-hash-object.txt +++ b/Documentation/git-hash-object.txt @@ -37,7 +37,7 @@ OPTIONS Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-ls-remote.txt b/Documentation/git-ls-remote.txt index f92f3ca186..f282164e9b 100644 --- a/Documentation/git-ls-remote.txt +++ b/Documentation/git-ls-remote.txt @@ -69,7 +69,7 @@ EXAMPLES Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> GIT --- diff --git a/Documentation/git-ls-tree.txt b/Documentation/git-ls-tree.txt index d9881fbbbe..8955b71302 100644 --- a/Documentation/git-ls-tree.txt +++ b/Documentation/git-ls-tree.txt @@ -81,7 +81,7 @@ with minimum width of 7 characters. Object size is given only for blobs Author ------ Written by Petr Baudis <pasky@suse.cz> -Completely rewritten from scratch by Junio C Hamano <junkio@cox.net>, +Completely rewritten from scratch by Junio C Hamano <gitster@pobox.com>, another major rewrite by Linus Torvalds <torvalds@osdl.org> Documentation diff --git a/Documentation/git-mailinfo.txt b/Documentation/git-mailinfo.txt index 183dc1dd75..0b23faee7a 100644 --- a/Documentation/git-mailinfo.txt +++ b/Documentation/git-mailinfo.txt @@ -8,7 +8,7 @@ git-mailinfo - Extracts patch and authorship from a single e-mail message SYNOPSIS -------- -'git-mailinfo' [-k] [-u | --encoding=<encoding>] <msg> <patch> +'git-mailinfo' [-k] [-u | --encoding=<encoding> | -n] <msg> <patch> DESCRIPTION @@ -46,6 +46,9 @@ conversion, even with this flag. from what is specified by i18n.commitencoding, this flag can be used to override it. +-n:: + Disable all charset re-coding of the metadata. + <msg>:: The commit log message extracted from e-mail, usually except the title line which comes from e-mail Subject. @@ -57,7 +60,7 @@ conversion, even with this flag. Author ------ Written by Linus Torvalds <torvalds@osdl.org> and -Junio C Hamano <junkio@cox.net> +Junio C Hamano <gitster@pobox.com> Documentation diff --git a/Documentation/git-mailsplit.txt b/Documentation/git-mailsplit.txt index 9a2aedd480..1a0df38d5b 100644 --- a/Documentation/git-mailsplit.txt +++ b/Documentation/git-mailsplit.txt @@ -46,7 +46,7 @@ OPTIONS Author ------ Written by Linus Torvalds <torvalds@osdl.org> -and Junio C Hamano <junkio@cox.net> +and Junio C Hamano <gitster@pobox.com> Documentation diff --git a/Documentation/git-merge-one-file.txt b/Documentation/git-merge-one-file.txt index 5c9ce641ec..546ebe8bf0 100644 --- a/Documentation/git-merge-one-file.txt +++ b/Documentation/git-merge-one-file.txt @@ -18,7 +18,7 @@ to resolve a merge after the trivial merge done with "git-read-tree -m". Author ------ Written by Linus Torvalds <torvalds@osdl.org>, -Junio C Hamano <junkio@cox.net> and Petr Baudis <pasky@suse.cz>. +Junio C Hamano <gitster@pobox.com> and Petr Baudis <pasky@suse.cz>. Documentation -------------- diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt index 55bc367479..b05e0cee11 100644 --- a/Documentation/git-merge.txt +++ b/Documentation/git-merge.txt @@ -159,7 +159,7 @@ linkgit:gitattributes[5] Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> Documentation diff --git a/Documentation/git-mktree.txt b/Documentation/git-mktree.txt index 1ddbf00afc..6927eb9950 100644 --- a/Documentation/git-mktree.txt +++ b/Documentation/git-mktree.txt @@ -23,7 +23,7 @@ OPTIONS Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-name-rev.txt b/Documentation/git-name-rev.txt index ffac3f8f56..83d8e4a9fc 100644 --- a/Documentation/git-name-rev.txt +++ b/Documentation/git-name-rev.txt @@ -38,8 +38,7 @@ OPTIONS Instead of printing both the SHA-1 and the name, print only the name. If given with --tags the usual tag prefix of "tags/" is also omitted from the name, matching the output - of linkgit:git-describe[1] more closely. This option - cannot be combined with --stdin. + of linkgit:git-describe[1] more closely. --no-undefined:: Die with error code != 0 when a reference is undefined, diff --git a/Documentation/git-peek-remote.txt b/Documentation/git-peek-remote.txt index ffbf93a799..3fb17f9d7f 100644 --- a/Documentation/git-peek-remote.txt +++ b/Documentation/git-peek-remote.txt @@ -39,7 +39,7 @@ OPTIONS Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt index d0f1595f7e..c731bdc07e 100644 --- a/Documentation/git-pull.txt +++ b/Documentation/git-pull.txt @@ -194,7 +194,7 @@ linkgit:git-fetch[1], linkgit:git-merge[1], linkgit:git-config[1] Author ------ Written by Linus Torvalds <torvalds@osdl.org> -and Junio C Hamano <junkio@cox.net> +and Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt index 89e0049bce..82dd4433f2 100644 --- a/Documentation/git-push.txt +++ b/Documentation/git-push.txt @@ -194,7 +194,7 @@ git push origin master:refs/heads/experimental:: Author ------ -Written by Junio C Hamano <junkio@cox.net>, later rewritten in C +Written by Junio C Hamano <gitster@pobox.com>, later rewritten in C by Linus Torvalds <torvalds@osdl.org> Documentation diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt index 7166414355..b7e1da000c 100644 --- a/Documentation/git-rebase.txt +++ b/Documentation/git-rebase.txt @@ -397,7 +397,7 @@ after each commit, test, and amend the commit if fixes are necessary. Authors ------ -Written by Junio C Hamano <junkio@cox.net> and +Written by Junio C Hamano <gitster@pobox.com> and Johannes E. Schindelin <johannes.schindelin@gmx.de> Documentation diff --git a/Documentation/git-reflog.txt b/Documentation/git-reflog.txt index 8492aeacf1..c9c25f3337 100644 --- a/Documentation/git-reflog.txt +++ b/Documentation/git-reflog.txt @@ -94,7 +94,7 @@ them. Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-request-pull.txt b/Documentation/git-request-pull.txt index c71d86985e..70810c01d4 100644 --- a/Documentation/git-request-pull.txt +++ b/Documentation/git-request-pull.txt @@ -28,7 +28,7 @@ OPTIONS Author ------ -Written by Ryan Anderson <ryan@michonline.com> and Junio C Hamano <junkio@cox.net> +Written by Ryan Anderson <ryan@michonline.com> and Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-rerere.txt b/Documentation/git-rerere.txt index 8030ec4d01..37828e5c5a 100644 --- a/Documentation/git-rerere.txt +++ b/Documentation/git-rerere.txt @@ -204,7 +204,7 @@ conflict. Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> GIT --- diff --git a/Documentation/git-reset.txt b/Documentation/git-reset.txt index 12ea9b23c5..0b368b39ee 100644 --- a/Documentation/git-reset.txt +++ b/Documentation/git-reset.txt @@ -195,7 +195,7 @@ $ git add frotz.c <3> Author ------ -Written by Junio C Hamano <junkio@cox.net> and Linus Torvalds <torvalds@osdl.org> +Written by Junio C Hamano <gitster@pobox.com> and Linus Torvalds <torvalds@osdl.org> Documentation -------------- diff --git a/Documentation/git-rev-parse.txt b/Documentation/git-rev-parse.txt index 9e273bc5a6..9082fc991b 100644 --- a/Documentation/git-rev-parse.txt +++ b/Documentation/git-rev-parse.txt @@ -184,7 +184,10 @@ blobs contained in a commit. 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>). + existing log ($GIT_DIR/logs/<ref>). Note that this looks up the state + of your *local* ref at a given time; e.g., what was in your local + `master` branch last week. If you want to look at commits made during + certain times, see `--since` and `--until`. * A ref followed by the suffix '@' with an ordinal specification enclosed in a brace pair (e.g. '\{1\}', '\{15\}') to specify @@ -298,9 +301,9 @@ It is the set of commits that are reachable from either one of `r1` or `r2` but not from both. Two other shorthands for naming a set that is formed by a commit -and its parent commits exists. `r1{caret}@` notation means all +and its parent commits exist. The `r1{caret}@` notation means all parents of `r1`. `r1{caret}!` includes commit `r1` but excludes -its all parents. +all of its parents. Here are a handful of examples: @@ -413,7 +416,7 @@ but if $REV is empty, the commit object name from master will be printed. Author ------ Written by Linus Torvalds <torvalds@osdl.org> . -Junio C Hamano <junkio@cox.net> and Pierre Habouzit <madcoder@debian.org> +Junio C Hamano <gitster@pobox.com> and Pierre Habouzit <madcoder@debian.org> Documentation -------------- diff --git a/Documentation/git-revert.txt b/Documentation/git-revert.txt index 5b49b81386..5fdeaff994 100644 --- a/Documentation/git-revert.txt +++ b/Documentation/git-revert.txt @@ -43,16 +43,16 @@ OPTIONS -n:: --no-commit:: Usually the command automatically creates a commit with - a commit log message stating which commit was reverted. - This flag applies the change necessary to revert the - named commit to your working tree, but does not make the - commit. In addition, when this option is used, your - working tree does not have to match the HEAD commit. - The revert is done against the beginning state of your - working tree. + a commit log message stating which commit was + reverted. This flag applies the change necessary + to revert the named commit to your working tree + and the index, but does not make the commit. In addition, + when this option is used, your index does not have to match + the HEAD commit. The revert is done against the + beginning state of your index. + This is useful when reverting more than one commits' -effect to your working tree in a row. +effect to your index in a row. -s:: --signoff:: @@ -61,7 +61,7 @@ effect to your working tree in a row. Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-show-branch.txt b/Documentation/git-show-branch.txt index de9e8f885f..6f4a2c4306 100644 --- a/Documentation/git-show-branch.txt +++ b/Documentation/git-show-branch.txt @@ -182,7 +182,7 @@ topologically related with each other. Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> Documentation diff --git a/Documentation/git-show.txt b/Documentation/git-show.txt index baaf2bc8fe..1017391f7c 100644 --- a/Documentation/git-show.txt +++ b/Documentation/git-show.txt @@ -71,7 +71,7 @@ include::i18n.txt[] Author ------ Written by Linus Torvalds <torvalds@osdl.org> and -Junio C Hamano <junkio@cox.net>. Significantly enhanced by +Junio C Hamano <gitster@pobox.com>. Significantly enhanced by Johannes Schindelin <Johannes.Schindelin@gmx.de>. diff --git a/Documentation/git-status.txt b/Documentation/git-status.txt index fef62b16df..6026e8b84b 100644 --- a/Documentation/git-status.txt +++ b/Documentation/git-status.txt @@ -64,7 +64,7 @@ linkgit:gitignore[5] Author ------ Written by Linus Torvalds <torvalds@osdl.org> and -Junio C Hamano <junkio@cox.net>. +Junio C Hamano <gitster@pobox.com>. Documentation -------------- diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt index f4cbd2f212..c350ad0f83 100644 --- a/Documentation/git-svn.txt +++ b/Documentation/git-svn.txt @@ -448,6 +448,8 @@ svn-remote.<name>.rewriteRoot:: the repository with a public http:// or svn:// URL in the metadata so users of it will see the public URL. +-- + Since the noMetadata, rewriteRoot, useSvnsyncProps and useSvmProps options all affect the metadata generated and used by git-svn; they *must* be set in the configuration file before any history is imported @@ -456,7 +458,6 @@ and these settings should never be changed once they are set. Additionally, only one of these four options can be used per-svn-remote section because they affect the 'git-svn-id:' metadata line. --- BASIC EXAMPLES -------------- @@ -512,7 +513,7 @@ have each person clone that repository with 'git clone': cd project git-init git remote add origin server:/pub/project - git config --add remote.origin.fetch=+refs/remotes/*:refs/remotes/* + git config --add remote.origin.fetch '+refs/remotes/*:refs/remotes/*' git fetch # Initialize git-svn locally (be sure to use the same URL and -T/-b/-t options as were used on server) git-svn init http://svn.foo.org/project diff --git a/Documentation/git-symbolic-ref.txt b/Documentation/git-symbolic-ref.txt index 3d3a059c5e..5709dee208 100644 --- a/Documentation/git-symbolic-ref.txt +++ b/Documentation/git-symbolic-ref.txt @@ -55,7 +55,7 @@ name is not a symbolic ref, or 128 if another error occurs. Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> GIT --- diff --git a/Documentation/git-tag.txt b/Documentation/git-tag.txt index 8f40f4bf0d..6cf11ce648 100644 --- a/Documentation/git-tag.txt +++ b/Documentation/git-tag.txt @@ -247,7 +247,7 @@ $ GIT_COMMITTER_DATE="2006-10-02 10:31" git tag -s v1.0.1 Author ------ Written by Linus Torvalds <torvalds@osdl.org>, -Junio C Hamano <junkio@cox.net> and Chris Wright <chrisw@osdl.org>. +Junio C Hamano <gitster@pobox.com> and Chris Wright <chrisw@osdl.org>. Documentation -------------- diff --git a/Documentation/git-update-server-info.txt b/Documentation/git-update-server-info.txt index d21be41d06..4fd7b5edf9 100644 --- a/Documentation/git-update-server-info.txt +++ b/Documentation/git-update-server-info.txt @@ -47,7 +47,7 @@ info/refs file unless `--force` flag is given. Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-verify-pack.txt b/Documentation/git-verify-pack.txt index 478f236996..ff704bd93f 100644 --- a/Documentation/git-verify-pack.txt +++ b/Documentation/git-verify-pack.txt @@ -42,7 +42,7 @@ for objects that are deltified. Author ------ -Written by Junio C Hamano <junkio@cox.net> +Written by Junio C Hamano <gitster@pobox.com> Documentation -------------- diff --git a/Documentation/git-whatchanged.txt b/Documentation/git-whatchanged.txt index f5d39c7870..fb672ea0fc 100644 --- a/Documentation/git-whatchanged.txt +++ b/Documentation/git-whatchanged.txt @@ -67,7 +67,7 @@ git-whatchanged --since="2 weeks ago" \-- gitk:: Author ------ Written by Linus Torvalds <torvalds@osdl.org> and -Junio C Hamano <junkio@cox.net> +Junio C Hamano <gitster@pobox.com> Documentation diff --git a/Documentation/git.txt b/Documentation/git.txt index 7414238fe5..0f55f8005b 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -43,12 +43,17 @@ unreleased) version of git, that is available from 'master' branch of the `git.git` repository. Documentation for older releases are available here: -* link:v1.5.6/git.html[documentation for release 1.5.6] +* link:v1.5.6.5/git.html[documentation for release 1.5.6.5] * release notes for - link:RelNotes-1.5.6.txt[1.5.6], + link:RelNotes-1.5.6.5.txt[1.5.6.5], + link:RelNotes-1.5.6.4.txt[1.5.6.4], + link:RelNotes-1.5.6.3.txt[1.5.6.3], + link:RelNotes-1.5.6.2.txt[1.5.6.2], + link:RelNotes-1.5.6.1.txt[1.5.6.1], + link:RelNotes-1.5.6.txt[1.5.6]. -* link:v1.5.5/git.html[documentation for release 1.5.5] +* link:v1.5.5.4/git.html[documentation for release 1.5.5.4] * release notes for link:RelNotes-1.5.5.4.txt[1.5.5.4], @@ -57,8 +62,6 @@ Documentation for older releases are available here: link:RelNotes-1.5.5.1.txt[1.5.5.1], link:RelNotes-1.5.5.txt[1.5.5]. -* link:v1.5.5.4/git.html[documentation for release 1.5.5.4] - * link:v1.5.4.5/git.html[documentation for release 1.5.4.5] * release notes for @@ -82,6 +85,8 @@ Documentation for older releases are available here: link:RelNotes-1.5.3.1.txt[1.5.3.1], link:RelNotes-1.5.3.txt[1.5.3]. +* link:v1.5.2.5/git.html[documentation for release 1.5.2.5] + * release notes for link:RelNotes-1.5.2.5.txt[1.5.2.5], link:RelNotes-1.5.2.4.txt[1.5.2.4], diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt index 471754eb12..ef06d94ca8 100644 --- a/Documentation/gitattributes.txt +++ b/Documentation/gitattributes.txt @@ -450,6 +450,23 @@ String:: variable. +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 +linkgit: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 linkgit: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. + + EXAMPLE ------- @@ -499,22 +516,6 @@ frotz unspecified ---------------------------------------------------------------- -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 -linkgit: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 linkgit: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 --- diff --git a/Documentation/gitcvs-migration.txt b/Documentation/gitcvs-migration.txt index 1db3f52945..0325d6759d 100644 --- a/Documentation/gitcvs-migration.txt +++ b/Documentation/gitcvs-migration.txt @@ -143,6 +143,11 @@ work, you must not modify the imported branches; instead, create new branches for your own changes, and merge in the imported branches as necessary. +If you want a shared repository, you will need to make a bare clone +of the imported directory, as described above. Then treat the imported +directory as another development clone for purposes of merging +incremental imports. + Advanced Shared Repository Management ------------------------------------- diff --git a/Documentation/howto/rebase-from-internal-branch.txt b/Documentation/howto/rebase-from-internal-branch.txt index 7a76045eb7..d214d4bf9d 100644 --- a/Documentation/howto/rebase-from-internal-branch.txt +++ b/Documentation/howto/rebase-from-internal-branch.txt @@ -1,4 +1,4 @@ -From: Junio C Hamano <junkio@cox.net> +From: Junio C Hamano <gitster@pobox.com> To: git@vger.kernel.org Cc: Petr Baudis <pasky@suse.cz>, Linus Torvalds <torvalds@osdl.org> Subject: Re: sending changesets from the middle of a git tree diff --git a/Documentation/howto/rebuild-from-update-hook.txt b/Documentation/howto/rebuild-from-update-hook.txt index 8d55dfbfae..48c67568d3 100644 --- a/Documentation/howto/rebuild-from-update-hook.txt +++ b/Documentation/howto/rebuild-from-update-hook.txt @@ -1,6 +1,6 @@ Subject: [HOWTO] Using post-update hook Message-ID: <7vy86o6usx.fsf@assigned-by-dhcp.cox.net> -From: Junio C Hamano <junkio@cox.net> +From: Junio C Hamano <gitster@pobox.com> Date: Fri, 26 Aug 2005 18:19:10 -0700 Abstract: In this how-to article, JC talks about how he uses the post-update hook to automate git documentation page diff --git a/Documentation/howto/revert-branch-rebase.txt b/Documentation/howto/revert-branch-rebase.txt index 865a666324..e70d8a31e7 100644 --- a/Documentation/howto/revert-branch-rebase.txt +++ b/Documentation/howto/revert-branch-rebase.txt @@ -1,4 +1,4 @@ -From: Junio C Hamano <junkio@cox.net> +From: Junio C Hamano <gitster@pobox.com> To: git@vger.kernel.org Subject: [HOWTO] Reverting an existing commit Abstract: In this article, JC gives a small real-life example of using diff --git a/Documentation/howto/separating-topic-branches.txt b/Documentation/howto/separating-topic-branches.txt index 0d73b31224..6d3eb8ed00 100644 --- a/Documentation/howto/separating-topic-branches.txt +++ b/Documentation/howto/separating-topic-branches.txt @@ -1,4 +1,4 @@ -From: Junio C Hamano <junkio@cox.net> +From: Junio C Hamano <gitster@pobox.com> Subject: Separating topic branches Abstract: In this article, JC describes how to separate topic branches. diff --git a/Documentation/howto/update-hook-example.txt b/Documentation/howto/update-hook-example.txt index 88765b5575..3ef7c0d908 100644 --- a/Documentation/howto/update-hook-example.txt +++ b/Documentation/howto/update-hook-example.txt @@ -1,4 +1,4 @@ -From: Junio C Hamano <junkio@cox.net> and Carl Baldwin <cnb@fc.hp.com> +From: Junio C Hamano <gitster@pobox.com> and Carl Baldwin <cnb@fc.hp.com> Subject: control access to branches. Date: Thu, 17 Nov 2005 23:55:32 -0800 Message-ID: <7vfypumlu3.fsf@assigned-by-dhcp.cox.net> @@ -68,7 +68,7 @@ function info { # - Branches should only be fast-forwarded. case "$1" in refs/tags/*) - [ -f "$GIT_DIR/$1" ] && + git rev-parse --verify -q "$1" && deny >/dev/null "You can't overwrite an existing tag" ;; refs/heads/*) diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt index ec37555794..c11d495771 100644 --- a/Documentation/pretty-formats.txt +++ b/Documentation/pretty-formats.txt @@ -30,7 +30,7 @@ This is designed to be as compact as possible. commit <sha1> Author: <author> - Date: <date> + Date: <author date> <title line> @@ -50,9 +50,9 @@ This is designed to be as compact as possible. commit <sha1> Author: <author> - AuthorDate: <date & time> + AuthorDate: <author date> Commit: <committer> - CommitDate: <date & time> + CommitDate: <committer date> <title line> @@ -62,7 +62,7 @@ This is designed to be as compact as possible. From <sha1> <date> From: <author> - Date: <date & time> + Date: <author date> Subject: [PATCH] <title line> <full commit message> @@ -101,6 +101,7 @@ The placeholders are: - '%P': parent hashes - '%p': abbreviated parent hashes - '%an': author name +- '%aN': author name (respecting .mailmap) - '%ae': author email - '%ad': author date - '%aD': author date, RFC2822 style @@ -108,6 +109,7 @@ The placeholders are: - '%at': author date, UNIX timestamp - '%ai': author date, ISO 8601 format - '%cn': committer name +- '%cN': committer name (respecting .mailmap) - '%ce': committer email - '%cd': committer date - '%cD': committer date, RFC2822 style diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt index 37dd1d61ea..f69260f4c0 100644 --- a/Documentation/rev-list-options.txt +++ b/Documentation/rev-list-options.txt @@ -108,9 +108,9 @@ options may be given. See linkgit:git-diff-files[1] for more options. --cc:: This flag implies the '-c' options and further compresses the - patch output by omitting hunks that show differences from only - one parent, or show the same change from all but one parent for - an Octopus merge. + patch output by omitting uninteresting hunks whose contents in + the parents have only two variants and the merge result picks + one of them without modification. -r:: diff --git a/Documentation/technical/api-builtin.txt b/Documentation/technical/api-builtin.txt index 52cdb4c520..7ede1e64e5 100644 --- a/Documentation/technical/api-builtin.txt +++ b/Documentation/technical/api-builtin.txt @@ -4,7 +4,7 @@ builtin API Adding a new built-in --------------------- -There are 4 things to do to add a bulit-in command implementation to +There are 4 things to do to add a built-in command implementation to git: . Define the implementation of the built-in command `foo` with @@ -18,8 +18,8 @@ git: defined in `git.c`. The entry should look like: { "foo", cmd_foo, <options> }, - - where options is the bitwise-or of: ++ +where options is the bitwise-or of: `RUN_SETUP`:: @@ -33,6 +33,12 @@ git: If the standard output is connected to a tty, spawn a pager and feed our output to it. +`NEED_WORK_TREE`:: + + Make sure there is a work tree, i.e. the command cannot act + on bare repositories. + This makes only sense when `RUN_SETUP` is also set. + . Add `builtin-foo.o` to `BUILTIN_OBJS` in `Makefile`. Additionally, if `foo` is a new command, there are 3 more things to do: @@ -41,8 +47,7 @@ Additionally, if `foo` is a new command, there are 3 more things to do: . Write documentation in `Documentation/git-foo.txt`. -. Add an entry for `git-foo` to the list at the end of - `Documentation/cmd-list.perl`. +. Add an entry for `git-foo` to `command-list.txt`. How a built-in is called diff --git a/Documentation/technical/api-parse-options.txt b/Documentation/technical/api-parse-options.txt index b7cda94f54..539863b1f9 100644 --- a/Documentation/technical/api-parse-options.txt +++ b/Documentation/technical/api-parse-options.txt @@ -1,6 +1,206 @@ parse-options API ================= -Talk about <parse-options.h> +The parse-options API is used to parse and massage options in git +and to provide a usage help with consistent look. -(Pierre) +Basics +------ + +The argument vector `argv[]` may usually contain mandatory or optional +'non-option arguments', e.g. a filename or a branch, and 'options'. +Options are optional arguments that start with a dash and +that allow to change the behavior of a command. + +* There are basically three types of options: + 'boolean' options, + options with (mandatory) 'arguments' and + options with 'optional arguments' + (i.e. a boolean option that can be adjusted). + +* There are basically two forms of options: + 'Short options' consist of one dash (`-`) and one alphanumeric + character. + 'Long options' begin with two dashes (`\--`) and some + alphanumeric characters. + +* Options are case-sensitive. + Please define 'lower-case long options' only. + +The parse-options API allows: + +* 'sticked' and 'separate form' of options with arguments. + `-oArg` is sticked, `-o Arg` is separate form. + `\--option=Arg` is sticked, `\--option Arg` is separate form. + +* Long options may be 'abbreviated', as long as the abbreviation + is unambiguous. + +* Short options may be bundled, e.g. `-a -b` can be specified as `-ab`. + +* Boolean long options can be 'negated' (or 'unset') by prepending + `no-`, e.g. `\--no-abbrev` instead of `\--abbrev`. + +* Options and non-option arguments can clearly be separated using the `\--` + option, e.g. `-a -b \--option \-- \--this-is-a-file` indicates that + `\--this-is-a-file` must not be processed as an option. + +Steps to parse options +---------------------- + +. `#include "parse-options.h"` + +. define a NULL-terminated + `static const char * const builtin_foo_usage[]` array + containing alternative usage strings + +. define `builtin_foo_options` array as described below + in section 'Data Structure'. + +. in `cmd_foo(int argc, const char **argv, const char *prefix)` + call + + argc = parse_options(argc, argv, builtin_foo_options, builtin_foo_usage, flags); ++ +`parse_options()` will filter out the processed options of `argv[]` and leave the +non-option arguments in `argv[]`. +`argc` is updated appropriately because of the assignment. ++ +Flags are the bitwise-or of: + +`PARSE_OPT_KEEP_DASHDASH`:: + Keep the `\--` that usually separates options from + non-option arguments. + +`PARSE_OPT_STOP_AT_NON_OPTION`:: + Usually the whole argument vector is massaged and reordered. + Using this flag, processing is stopped at the first non-option + argument. + +Data Structure +-------------- + +The main data structure is an array of the `option` struct, +say `static struct option builtin_add_options[]`. +There are some macros to easily define options: + +`OPT__ABBREV(&int_var)`:: + Add `\--abbrev[=<n>]`. + +`OPT__DRY_RUN(&int_var)`:: + Add `-n, \--dry-run`. + +`OPT__QUIET(&int_var)`:: + Add `-q, \--quiet`. + +`OPT__VERBOSE(&int_var)`:: + Add `-v, \--verbose`. + +`OPT_GROUP(description)`:: + Start an option group. `description` is a short string that + describes the group or an empty string. + Start the description with an upper-case letter. + +`OPT_BOOLEAN(short, long, &int_var, description)`:: + Introduce a boolean option. + `int_var` is incremented on each use. + +`OPT_BIT(short, long, &int_var, description, mask)`:: + Introduce a boolean option. + If used, `int_var` is bitwise-ored with `mask`. + +`OPT_SET_INT(short, long, &int_var, description, integer)`:: + Introduce a boolean option. + If used, set `int_var` to `integer`. + +`OPT_SET_PTR(short, long, &ptr_var, description, ptr)`:: + Introduce a boolean option. + If used, set `ptr_var` to `ptr`. + +`OPT_STRING(short, long, &str_var, arg_str, description)`:: + Introduce an option with string argument. + The string argument is put into `str_var`. + +`OPT_INTEGER(short, long, &int_var, description)`:: + Introduce an option with integer argument. + The integer is put into `int_var`. + +`OPT_DATE(short, long, &int_var, description)`:: + Introduce an option with date argument, see `approxidate()`. + The timestamp is put into `int_var`. + +`OPT_CALLBACK(short, long, &var, arg_str, description, func_ptr)`:: + Introduce an option with argument. + The argument will be fed into the function given by `func_ptr` + and the result will be put into `var`. + See 'Option Callbacks' below for a more elaborate description. + +`OPT_ARGUMENT(long, description)`:: + Introduce a long-option argument that will be kept in `argv[]`. + + +The last element of the array must be `OPT_END()`. + +If not stated otherwise, interpret the arguments as follows: + +* `short` is a character for the short option + (e.g. `\'e\'` for `-e`, use `0` to omit), + +* `long` is a string for the long option + (e.g. `"example"` for `\--example`, use `NULL` to omit), + +* `int_var` is an integer variable, + +* `str_var` is a string variable (`char *`), + +* `arg_str` is the string that is shown as argument + (e.g. `"branch"` will result in `<branch>`). + If set to `NULL`, three dots (`...`) will be displayed. + +* `description` is a short string to describe the effect of the option. + It shall begin with a lower-case letter and a full stop (`.`) shall be + omitted at the end. + +Option Callbacks +---------------- + +The function must be defined in this form: + + int func(const struct option *opt, const char *arg, int unset) + +The callback mechanism is as follows: + +* Inside `funct`, the only interesting member of the structure + given by `opt` is the void pointer `opt->value`. + `\*opt->value` will be the value that is saved into `var`, if you + use `OPT_CALLBACK()`. + For example, do `*(unsigned long *)opt->value = 42;` to get 42 + into an `unsigned long` variable. + +* Return value `0` indicates success and non-zero return + value will invoke `usage_with_options()` and, thus, die. + +* If the user negates the option, `arg` is `NULL` and `unset` is 1. + +Sophisticated option parsing +---------------------------- + +If you need, for example, option callbacks with optional arguments +or without arguments at all, or if you need other special cases, +that are not handled by the macros above, you need to specify the +members of the `option` structure manually. + +This is not covered in this document, but well documented +in `parse-options.h` itself. + +Examples +-------- + +See `test-parse-options.c` and +`builtin-add.c`, +`builtin-clone.c`, +`builtin-commit.c`, +`builtin-fetch.c`, +`builtin-fsck.c`, +`builtin-rm.c` +for real-world examples. diff --git a/Documentation/technical/api-run-command.txt b/Documentation/technical/api-run-command.txt index 3e1342acf4..75aa5d4923 100644 --- a/Documentation/technical/api-run-command.txt +++ b/Documentation/technical/api-run-command.txt @@ -30,7 +30,7 @@ Functions start_command() followed by finish_command(). Takes a pointer to a `struct child_process` that specifies the details. -`run_command_v_opt`, `run_command_v_opt_dir`, `run_command_v_opt_cd_env`:: +`run_command_v_opt`, `run_command_v_opt_cd`, `run_command_v_opt_cd_env`:: Convenience functions that encapsulate a sequence of start_command() followed by finish_command(). The argument argv |