From: Junio C Hamano Date: Thu, 21 Jan 2010 04:28:49 +0000 (-0800) Subject: Merge remote branch 'remotes/trast-doc/for-next' X-Git-Tag: v1.7.0-rc0~57 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/add0951ab0bee43b5f634d1be68a7a80f627c18f?hp=-c Merge remote branch 'remotes/trast-doc/for-next' * remotes/trast-doc/for-next: Documentation: spell 'git cmd' without dash throughout Documentation: format full commands in typewriter font Documentation: warn prominently against merging with dirty trees Documentation/git-merge: reword references to "remote" and "pull" Conflicts: Documentation/config.txt Documentation/git-config.txt Documentation/git-merge.txt --- add0951ab0bee43b5f634d1be68a7a80f627c18f diff --combined Documentation/config.txt index d40b83f85a,7da332f0c3..8dcb191566 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@@ -64,7 -64,7 +64,7 @@@ The values following the equals sign i a string, an integer, or a boolean. Boolean values may be given as yes/no, 0/1, true/false or on/off. Case is not significant in boolean values, when converting value to the canonical form using '--bool' type specifier; - 'git-config' will ensure that the output is "true" or "false". + 'git config' will ensure that the output is "true" or "false". String values may be entirely or partially enclosed in double quotes. You need to enclose variable values in double quotes if you want to @@@ -130,14 -130,6 +130,14 @@@ advice.*: Advice shown when linkgit:git-merge[1] refuses to merge to avoid overwritting local changes. Default: true. + resolveConflict:: + Advices shown by various commands when conflicts + prevent the operation from being performed. + Default: true. + implicitIdentity:: + Advice on how to set your identity configuration when + your information is guessed from the system username and + domain name. Default: true. -- core.fileMode:: @@@ -450,8 -442,8 +450,8 @@@ core.pager: core.whitespace:: A comma separated list of common whitespace problems to - notice. 'git-diff' will use `color.diff.whitespace` to - highlight them, and 'git-apply --whitespace=error' will + notice. 'git diff' will use `color.diff.whitespace` to + highlight them, and 'git apply --whitespace=error' will consider them as errors. You can prefix `-` to disable any of them (e.g. `-trailing-space`): + @@@ -510,12 -502,8 +510,12 @@@ notes should be printed This setting defaults to "refs/notes/commits", and can be overridden by the `GIT_NOTES_REF` environment variable. +core.sparseCheckout:: + Enable "sparse checkout" feature. See section "Sparse checkout" in + linkgit:git-read-tree[1] for more information. + add.ignore-errors:: - Tells 'git-add' to continue adding files when some files cannot be + Tells 'git add' to continue adding files when some files cannot be added due to indexing errors. Equivalent to the '--ignore-errors' option of linkgit:git-add[1]. @@@ -537,19 -525,19 +537,19 @@@ executed from the top-level directory o not necessarily be the current directory. apply.ignorewhitespace:: - When set to 'change', tells 'git-apply' to ignore changes in + When set to 'change', tells 'git apply' to ignore changes in whitespace, in the same way as the '--ignore-space-change' option. - When set to one of: no, none, never, false tells 'git-apply' to + When set to one of: no, none, never, false tells 'git apply' to respect all whitespace differences. See linkgit:git-apply[1]. apply.whitespace:: - Tells 'git-apply' how to handle whitespaces, in the same way + Tells 'git apply' how to handle whitespaces, in the same way as the '--whitespace' option. See linkgit:git-apply[1]. branch.autosetupmerge:: - Tells 'git-branch' and 'git-checkout' to set up new branches - Tells 'git branch' and 'git checkout' to setup new branches ++ Tells 'git branch' and 'git checkout' to set up new branches so that linkgit:git-pull[1] will appropriately merge from the starting point branch. Note that even if this option is not set, this behavior can be chosen per-branch using the `--track` @@@ -560,7 -548,7 +560,7 @@@ branch. This option defaults to true. branch.autosetuprebase:: - When a new branch is created with 'git-branch' or 'git-checkout' + When a new branch is created with 'git branch' or 'git checkout' that tracks another branch, this variable tells git to set up pull to rebase instead of merge (see "branch..rebase"). When `never`, rebase is never automatically set to true. @@@ -575,24 -563,24 +575,24 @@@ This option defaults to never. branch..remote:: - When in branch , it tells 'git-fetch' and 'git-push' which + When in branch , it tells 'git fetch' and 'git push' which remote to fetch from/push to. It defaults to `origin` if no remote is configured. `origin` is also used if you are not on any branch. branch..merge:: Defines, together with branch..remote, the upstream branch - for the given branch. It tells 'git-fetch'/'git-pull' which - branch to merge and can also affect 'git-push' (see push.default). - When in branch , it tells 'git-fetch' the default + for the given branch. It tells 'git fetch'/'git pull' which + branch to merge and can also affect 'git push' (see push.default). + When in branch , it tells 'git fetch' the default refspec to be marked for merging in FETCH_HEAD. The value is handled like the remote part of a refspec, and must match a ref which is fetched from the remote given by "branch..remote". - The merge information is used by 'git-pull' (which at first calls - 'git-fetch') to lookup the default branch for merging. Without - this option, 'git-pull' defaults to merge the first refspec fetched. + The merge information is used by 'git pull' (which at first calls + 'git fetch') to lookup the default branch for merging. Without + this option, 'git pull' defaults to merge the first refspec fetched. Specify multiple values to get an octopus merge. - If you wish to setup 'git-pull' so that it merges into from + If you wish to setup 'git pull' so that it merges into from another branch in the local repository, you can point branch..merge to the desired branch, and use the special setting `.` (a period) for branch..remote. @@@ -664,6 -652,14 +664,6 @@@ color.grep: `never`), never. When set to `true` or `auto`, use color only when the output is written to the terminal. Defaults to `false`. -color.grep.external:: - The string value of this variable is passed to an external 'grep' - command as a command line option if match highlighting is turned - on. If set to an empty string, no option is passed at all, - turning off coloring for external 'grep' calls; this is the default. - For GNU grep, set it to `--color=always` to highlight matches even - when a pager is used. - color.grep.match:: Use customized color for matches. The value of this variable may be specified as in color.branch.. It is passed using @@@ -677,7 -673,7 +677,7 @@@ color.interactive: colors only when the output is to the terminal. Defaults to false. color.interactive.:: - Use customized color for 'git-add --interactive' + Use customized color for 'git add --interactive' output. `` may be `prompt`, `header`, `help` or `error`, for four distinct types of normal output from interactive commands. The values of these variables may be specified as @@@ -716,25 -712,20 +716,25 @@@ color.ui: terminal. When more specific variables of color.* are set, they always take precedence over this setting. Defaults to false. +commit.status + A boolean to enable/disable inclusion of status information in the + commit message template when using an editor to prepare the commit + message. Defaults to true. + commit.template:: Specify a file to use as the template for new commit messages. "{tilde}/" is expanded to the value of `$HOME` and "{tilde}user/" to the specified user's home directory. diff.autorefreshindex:: - When using 'git-diff' to compare with work tree + When using 'git diff' to compare with work tree files, do not consider stat-only change as changed. Instead, silently run `git update-index --refresh` to update the cached stat information for paths whose contents in the work tree match the contents in the index. This option defaults to true. Note that this - affects only 'git-diff' Porcelain, and not lower level - 'diff' commands such as 'git-diff-files'. + affects only 'git diff' Porcelain, and not lower level - 'diff' commands, such as 'git diff-files'. ++ 'diff' commands such as 'git diff-files'. diff.external:: If this config variable is set, diff generation is not @@@ -746,24 -737,24 +746,24 @@@ your files, you might want to use linkgit:gitattributes[5] instead. diff.mnemonicprefix:: - If set, 'git-diff' uses a prefix pair that is different from the + If set, 'git diff' uses a prefix pair that is different from the standard "a/" and "b/" depending on what is being compared. When this configuration is in effect, reverse diff output also swaps the order of the prefixes: - 'git-diff';; + `git diff`;; compares the (i)ndex and the (w)ork tree; - 'git-diff HEAD';; + `git diff HEAD`;; compares a (c)ommit and the (w)ork tree; - 'git diff --cached';; + `git diff --cached`;; compares a (c)ommit and the (i)ndex; - 'git-diff HEAD:file1 file2';; + `git diff HEAD:file1 file2`;; compares an (o)bject and a (w)ork tree entity; - 'git diff --no-index a b';; + `git diff --no-index a b`;; compares two non-git things (1) and (2). diff.renameLimit:: The number of files to consider when performing the copy/rename - detection; equivalent to the 'git-diff' option '-l'. + detection; equivalent to the 'git diff' option '-l'. diff.renames:: Tells git to detect renames. If set to any boolean value, it @@@ -849,9 -840,9 +849,9 @@@ format.pretty: linkgit:git-whatchanged[1]. format.thread:: - The default threading style for 'git-format-patch'. Can be + The default threading style for 'git format-patch'. Can be - either a boolean value, `shallow` or `deep`. `shallow` - threading makes every mail a reply to the head of the series, + a boolean value, or `shallow` or `deep`. `shallow` threading + makes every mail a reply to the head of the series, where the head is chosen from the cover letter, the `\--in-reply-to`, and the first patch mail, in this order. `deep` threading makes every mail a reply to the previous one. @@@ -867,7 -858,7 +867,7 @@@ format.signoff: gc.aggressiveWindow:: The window size parameter used in the delta compression - algorithm used by 'git-gc --aggressive'. This defaults + algorithm used by 'git gc --aggressive'. This defaults to 10. gc.auto:: @@@ -884,36 -875,39 +884,36 @@@ gc.autopacklimit: default value is 50. Setting this to 0 disables it. gc.packrefs:: - 'git gc' does not run `git pack-refs` in a bare repository by - default so that older dumb-transport clients can still fetch - from the repository. Setting this to `true` lets 'git gc' - to run `git pack-refs`. Setting this to `false` tells - 'git gc' never to run `git pack-refs`. The default setting is - `notbare`. Enable it only when you know you do not have to - support such clients. The default setting will change to `true` - at some stage, and setting this to `false` will continue to - prevent `git pack-refs` from being run from 'git gc'. + Running `git pack-refs` in a repository renders it + unclonable by Git versions prior to 1.5.1.2 over dumb + transports such as HTTP. This variable determines whether - 'git gc' runs `git pack-refs`. This can be set to "nobare" ++ 'git gc' runs `git pack-refs`. This can be set to `nobare` + to enable it within all non-bare repos or it can be set to a + boolean value. The default is `true`. gc.pruneexpire:: - When 'git-gc' is run, it will call 'prune --expire 2.weeks.ago'. + When 'git gc' is run, it will call 'prune --expire 2.weeks.ago'. Override the grace period with this config variable. The value "now" may be used to disable this grace period and always prune unreachable objects immediately. gc.reflogexpire:: - 'git-reflog expire' removes reflog entries older than + 'git reflog expire' removes reflog entries older than this time; defaults to 90 days. gc.reflogexpireunreachable:: - 'git-reflog expire' removes reflog entries older than + 'git reflog expire' removes reflog entries older than this time and are not reachable from the current tip; defaults to 30 days. gc.rerereresolved:: Records of conflicted merge you resolved earlier are - kept for this many days when 'git-rerere gc' is run. + kept for this many days when 'git rerere gc' is run. The default is 60 days. See linkgit:git-rerere[1]. gc.rerereunresolved:: Records of conflicted merge you have not resolved are - kept for this many days when 'git-rerere gc' is run. + kept for this many days when 'git rerere gc' is run. The default is 15 days. See linkgit:git-rerere[1]. gitcvs.commitmsgannotation:: @@@ -1021,7 -1015,7 +1021,7 @@@ gui.spellingdictionary: off. gui.fastcopyblame:: - If true, 'git gui blame' uses '-C' instead of '-C -C' for original + If true, 'git gui blame' uses `-C` instead of `-C -C` for original location detection. It makes blame significantly faster on huge repositories at the expense of less thorough copy detection. @@@ -1145,12 -1139,6 +1145,12 @@@ http.maxRequests: How many HTTP requests to launch in parallel. Can be overridden by the 'GIT_HTTP_MAX_REQUESTS' environment variable. Default is 5. +http.minSessions:: + The number of curl sessions (counted across slots) to be kept across + requests. They will not be ended with curl_easy_cleanup() until + http_cleanup() is invoked. If USE_CURL_MULTI is not defined, this + value will be capped at 1. Defaults to 1. + http.postBuffer:: Maximum size in bytes of the buffer used by smart HTTP transports when POSTing data to the remote system. @@@ -1180,7 -1168,7 +1180,7 @@@ i18n.commitEncoding: i18n.logOutputEncoding:: Character encoding the commit messages are converted to when - running 'git-log' and friends. + running 'git log' and friends. imap:: The configuration variables in the 'imap' section are described @@@ -1214,7 -1202,7 +1214,7 @@@ interactive.singlekey: log.date:: Set default date-time mode for the log command. Setting log.date - value is similar to using 'git-log'\'s --date option. The value is one of the + value is similar to using 'git log'\'s --date option. The value is one of the following alternatives: {relative,local,default,iso,rfc,short}. See linkgit:git-log[1]. diff --combined Documentation/git-blame.txt index b786471dd8,158a0187cb..a27f43950f --- a/Documentation/git-blame.txt +++ b/Documentation/git-blame.txt @@@ -9,7 -9,7 +9,7 @@@ SYNOPSI -------- [verse] 'git blame' [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-p] [-w] [--incremental] [-L n,m] - [-S ] [-M] [-C] [-C] [--since=] + [-S ] [-M] [-C] [-C] [-C] [--since=] [ | --contents | --reverse ] [--] DESCRIPTION @@@ -21,7 -21,7 +21,7 @@@ last modified the line. Optionally, sta The command can also limit the range of lines annotated. The report does not tell you anything about lines which have been deleted or - replaced; you need to use a tool such as 'git-diff' or the "pickaxe" + replaced; you need to use a tool such as 'git diff' or the "pickaxe" interface briefly mentioned in the following paragraph. Apart from supporting file annotation, git also supports searching the @@@ -49,7 -49,7 +49,7 @@@ include::blame-options.txt[ file (see `-M`). The first number listed is the score. This is the number of alphanumeric characters detected as having been moved between or within files. This must be above - a certain threshold for 'git-blame' to consider those lines + a certain threshold for 'git blame' to consider those lines of code to have been moved. -f:: @@@ -100,7 -100,7 +100,7 @@@ header elements later SPECIFYING RANGES ----------------- - Unlike 'git-blame' and 'git-annotate' in older versions of git, the extent + Unlike 'git blame' and 'git annotate' in older versions of git, the extent of the annotation can be limited to both line ranges and revision ranges. When you are interested in finding the origin for lines 40-60 for file `foo`, you can use the `-L` option like so @@@ -118,7 -118,7 +118,7 @@@ which limits the annotation to the bod When you are not interested in changes older than version v2.6.18, or changes older than 3 weeks, you can use revision - range specifiers similar to 'git-rev-list': + range specifiers similar to 'git rev-list': git blame v2.6.18.. -- foo git blame --since=3.weeks -- foo diff --combined Documentation/git-commit.txt index d3a2dec21e,c322c759fd..e99bb14754 --- a/Documentation/git-commit.txt +++ b/Documentation/git-commit.txt @@@ -11,8 -11,7 +11,8 @@@ SYNOPSI 'git commit' [-a | --interactive] [-s] [-v] [-u] [--amend] [--dry-run] [(-c | -C) ] [-F | -m ] [--reset-author] [--allow-empty] [--no-verify] [-e] [--author=] - [--date=] [--cleanup=] [--] [[-i | -o ]...] + [--date=] [--cleanup=] [--status | --no-status] [--] + [[-i | -o ]...] DESCRIPTION ----------- @@@ -21,11 -20,11 +21,11 @@@ with a log message from the user descri The content to be added can be specified in several ways: - 1. by using 'git-add' to incrementally "add" changes to the + 1. by using 'git add' to incrementally "add" changes to the index before using the 'commit' command (Note: even modified files must be "added"); - 2. by using 'git-rm' to remove files from the working tree + 2. by using 'git rm' to remove files from the working tree and the index, again before using the 'commit' command; 3. by listing files as arguments to the 'commit' command, in which @@@ -41,14 -40,14 +41,14 @@@ 5. by using the --interactive switch with the 'commit' command to decide one by one which files should be part of the commit, before finalizing the - operation. Currently, this is done by invoking 'git-add --interactive'. + operation. Currently, this is done by invoking 'git add --interactive'. The `--dry-run` option can be used to obtain a summary of what is included by any of the above for the next commit by giving the same set of parameters (options and paths). If you make a commit and then find a mistake immediately after - that, you can recover from it with 'git-reset'. + that, you can recover from it with 'git reset'. OPTIONS @@@ -185,7 -184,7 +185,7 @@@ FROM UPSTREAM REBASE" section in linkgi Make a commit only from the paths specified on the command line, disregarding any contents that have been staged so far. This is the default mode of operation of - 'git-commit' if any paths are given on the command line, + 'git commit' if any paths are given on the command line, in which case this option can be omitted. If this option is specified together with '--amend', then no paths need to be specified, which can be used to amend @@@ -225,17 -224,6 +225,17 @@@ specified to be committed, paths with local changes that will be left uncommitted and paths that are untracked. +--status:: + Include the output of linkgit:git-status[1] in the commit + message template when using an editor to prepare the commit + message. Defaults to on, but can be used to override + configuration variable commit.status. + +--no-status:: + Do not include the output of linkgit:git-status[1] in the + commit message template when using an editor to prepare the + default commit message. + \--:: Do not interpret any more arguments as options. @@@ -253,10 -241,10 +253,10 @@@ EXAMPLE -------- When recording your own work, the contents of modified files in your working tree are temporarily stored to a staging area - called the "index" with 'git-add'. A file can be + called the "index" with 'git add'. A file can be reverted back, only in the index but not in the working tree, to that of the last commit with `git reset HEAD -- `, - which effectively reverts 'git-add' and prevents the changes to + which effectively reverts 'git add' and prevents the changes to this file from participating in the next commit. After building the state to be committed incrementally with these commands, `git commit` (without any pathname parameter) is used to record what @@@ -312,13 -300,13 +312,13 @@@ $ git commi this second commit would record the changes to `hello.c` and `hello.h` as expected. - After a merge (initiated by 'git-merge' or 'git-pull') stops + After a merge (initiated by 'git merge' or 'git pull') stops because of conflicts, cleanly merged paths are already staged to be committed for you, and paths that conflicted are left in unmerged state. You would have to first - check which paths are conflicting with 'git-status' + check which paths are conflicting with 'git status' and after fixing them manually in your working tree, you would - stage the result as usual with 'git-add': + stage the result as usual with 'git add': ------------ $ git status | grep unmerged diff --combined Documentation/git-config.txt index 263292809d,3c8d895ddb..543dd64a46 --- a/Documentation/git-config.txt +++ b/Documentation/git-config.txt @@@ -37,12 -37,11 +37,12 @@@ existing values that match the regexp a you want to handle the lines that do *not* match the regex, just prepend a single exclamation mark in front (see also <>). -The type specifier can be either '--int' or '--bool', which will make +The type specifier can be either '--int' or '--bool', to make - 'git-config' ensure that the variable(s) are of the given type and + 'git config' ensure that the variable(s) are of the given type and convert the value to the canonical form (simple decimal number for int, -a "true" or "false" string for bool). If no type specifier is passed, -no checks or transformations are performed on the value. +a "true" or "false" string for bool), or '--path', which does some +path expansion (see '--path' below). If no type specifier is passed, no +checks or transformations are performed on the value. The file-option can be one of '--system', '--global' or '--file' which specify where the values will be read from or written to. @@@ -125,25 -124,18 +125,25 @@@ See also <> List all variables set in config file. --bool:: - 'git-config' will ensure that the output is "true" or "false" + 'git config' will ensure that the output is "true" or "false" --int:: - 'git-config' will ensure that the output is a simple + 'git config' will ensure that the output is a simple decimal number. An optional value suffix of 'k', 'm', or 'g' in the config file will cause the value to be multiplied by 1024, 1048576, or 1073741824 prior to output. --bool-or-int:: - 'git-config' will ensure that the output matches the format of + 'git config' will ensure that the output matches the format of either --bool or --int, as described above. +--path:: + 'git-config' will expand leading '{tilde}' to the value of + '$HOME', and '{tilde}user' to the home directory for the + specified user. This option has no effect when setting the + value (but you can use 'git config bla {tilde}/' from the + command line to let your shell do the expansion). + -z:: --null:: For all options that output values and/or keys, always @@@ -181,7 -173,7 +181,7 @@@ FILE ----- If not set explicitly with '--file', there are three files where - 'git-config' will search for configuration options: + 'git config' will search for configuration options: $GIT_DIR/config:: Repository specific configuration file. (The filename is @@@ -198,12 -190,12 +198,12 @@@ $(prefix)/etc/gitconfig: If no further options are given, all reading options will read all of these files that are available. If the global or the system-wide configuration file are not available they will be ignored. If the repository configuration - file is not available or readable, 'git-config' will exit with a non-zero + file is not available or readable, 'git config' will exit with a non-zero error code. However, in neither case will an error message be issued. All writing options will per default write to the repository specific configuration file. Note that this also affects options like '--replace-all' - and '--unset'. *'git-config' will only ever change one file at a time*. + and '--unset'. *'git config' will only ever change one file at a time*. You can override these rules either by command line options or by environment variables. The '--global' and the '--system' options will limit the file used diff --combined Documentation/git-cvsserver.txt index fbab29550a,d4de2e8138..dbb053ee17 --- a/Documentation/git-cvsserver.txt +++ b/Documentation/git-cvsserver.txt @@@ -22,7 -22,7 +22,7 @@@ cvspserver stream tcp nowait nobody /us Usage: [verse] - 'git cvsserver' [options] [pserver|server] [ ...] + 'git-cvsserver' [options] [pserver|server] [ ...] OPTIONS ------- @@@ -206,7 -206,7 +206,7 @@@ them write access to the directory, too The database can not be reliably regenerated in a consistent form after the branch it is tracking has changed. Example: For merged branches, 'git-cvsserver' only tracks - one branch of development, and after a 'git-merge' an + one branch of development, and after a 'git merge' an incrementally updated database may track a different branch than a database regenerated from scratch, causing inconsistent CVS revision numbers. `git-cvsserver` has no way of knowing which @@@ -277,21 -277,6 +277,21 @@@ In `dbdriver` and `dbuser` you can use If no name can be determined, the numeric uid is used. +ENVIRONMENT +----------- + +These variables obviate the need for command-line options in some +circumstances, allowing easier restricted usage through git-shell. + +GIT_CVSSERVER_BASE_PATH takes the place of the argument to --base-path. + +GIT_CVSSERVER_ROOT specifies a single-directory whitelist. The +repository must still be configured to allow access through +git-cvsserver, as described above. + +When these environment variables are set, the corresponding +command-line arguments may not be used. + Eclipse CVS Client Notes ------------------------ @@@ -309,7 -294,7 +309,7 @@@ To get a checkout with the Eclipse CVS Protocol notes: If you are using anonymous access via pserver, just select that. Those using SSH access should choose the 'ext' protocol, and configure 'ext' access on the Preferences->Team->CVS->ExtConnection pane. Set CVS_SERVER to - "'git cvsserver'". Note that password support is not good when using 'ext', + "`git cvsserver`". Note that password support is not good when using 'ext', you will definitely want to have SSH keys setup. Alternatively, you can just use the non-standard extssh protocol that Eclipse diff --combined Documentation/git-difftool.txt index 5c68cff905,4c9422d223..8250bad2ce --- a/Documentation/git-difftool.txt +++ b/Documentation/git-difftool.txt @@@ -7,13 -7,13 +7,13 @@@ git-difftool - Show changes using commo SYNOPSIS -------- -'git difftool' [--tool=] [-y|--no-prompt|--prompt] [<'git diff' options>] +'git difftool' [] {0,2} [--] [...] DESCRIPTION ----------- - 'git-difftool' is a git command that allows you to compare and edit files + 'git difftool' is a git command that allows you to compare and edit files between revisions using common diff tools. 'git difftool' is a frontend - to 'git-diff' and accepts the same options and arguments. + to 'git diff' and accepts the same options and arguments. OPTIONS ------- @@@ -33,23 -33,23 +33,23 @@@ kdiff3, kompare, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, diffuse, opendiff, p4merge and araxis. + - If a diff tool is not specified, 'git-difftool' + If a diff tool is not specified, 'git difftool' will use the configuration variable `diff.tool`. If the - configuration variable `diff.tool` is not set, 'git-difftool' + configuration variable `diff.tool` is not set, 'git difftool' will pick a suitable default. + You can explicitly provide a full path to the tool by setting the configuration variable `difftool..path`. For example, you can configure the absolute path to kdiff3 by setting - `difftool.kdiff3.path`. Otherwise, 'git-difftool' assumes the + `difftool.kdiff3.path`. Otherwise, 'git difftool' assumes the tool is available in PATH. + Instead of running one of the known diff tools, - 'git-difftool' can be customized to run an alternative program + 'git difftool' can be customized to run an alternative program by specifying the command line to invoke in a configuration variable `difftool..cmd`. + - When 'git-difftool' is invoked with this tool (either through the + When 'git difftool' is invoked with this tool (either through the `-t` or `--tool` option or the `diff.tool` configuration variable) the configured command line will be invoked with the following variables available: `$LOCAL` is set to the name of the temporary @@@ -58,31 -58,16 +58,31 @@@ is set to the name of the temporary fil of the diff post-image. `$BASE` is provided for compatibility with custom merge tool commands and has the same value as `$LOCAL`. +-x :: +--extcmd=:: + Specify a custom command for viewing diffs. + 'git-difftool' ignores the configured defaults and runs + `$command $LOCAL $REMOTE` when this option is specified. + +-g:: +--gui:: + When 'git-difftool' is invoked with the `-g` or `--gui` option + the default diff tool will be read from the configured + `diff.guitool` variable instead of `diff.tool`. + See linkgit:git-diff[1] for the full list of supported options. CONFIG VARIABLES ---------------- - 'git-difftool' falls back to 'git-mergetool' config variables when the + 'git difftool' falls back to 'git mergetool' config variables when the difftool equivalents have not been defined. diff.tool:: The default diff tool to use. +diff.guitool:: + The default diff tool to use when `--gui` is specified. + difftool..path:: Override the path for the given tool. This is useful in case your tool is not in the PATH. diff --combined Documentation/git-fast-import.txt index ae87f09227,91ca302315..ff4022c15f --- a/Documentation/git-fast-import.txt +++ b/Documentation/git-fast-import.txt @@@ -15,7 -15,7 +15,7 @@@ DESCRIPTIO This program is usually not what the end user wants to run directly. Most end users want to use one of the existing frontend programs, which parses a specific type of foreign source and feeds the contents - stored there to 'git-fast-import'. + stored there to 'git fast-import'. fast-import reads a mixed command/data stream from standard input and writes one or more packfiles directly into the current repository. @@@ -24,7 -24,7 +24,7 @@@ updated branch and tag refs, fully upda with the newly imported data. The fast-import backend itself can import into an empty repository (one that - has already been initialized by 'git-init') or incrementally + has already been initialized by 'git init') or incrementally update an existing populated repository. Whether or not incremental imports are supported from a particular foreign source depends on the frontend program in use. @@@ -75,20 -75,6 +75,20 @@@ OPTION set of marks. If a mark is defined to different values, the last file wins. +--relative-marks:: + After specifying --relative-marks= the paths specified + with --import-marks= and --export-marks= are relative + to an internal directory in the current repository. + In git-fast-import this means that the paths are relative + to the .git/info/fast-import directory. However, other + importers may use a different location. + +--no-relative-marks:: + Negates a previous --relative-marks. Allows for combining + relative and non-relative marks by interweaving + --(no-)-relative-marks= with the --(import|export)-marks= + options. + --export-pack-edges=:: After creating a packfile, print a line of data to listing the filename of the packfile and the last @@@ -96,7 -82,7 +96,7 @@@ This information may be useful after importing projects whose total object set exceeds the 4 GiB packfile limit, as these commits can be used as edge points during calls - to 'git-pack-objects'. + to 'git pack-objects'. --quiet:: Disable all non-fatal output, making fast-import silent when it @@@ -138,9 -124,9 +138,9 @@@ an ideal situation, given that most con Parallel Operation ------------------ - Like 'git-push' or 'git-fetch', imports handled by fast-import are safe to + Like 'git push' or 'git fetch', imports handled by fast-import are safe to run alongside parallel `git repack -a -d` or `git gc` invocations, - or any other Git operation (including 'git-prune', as loose objects + or any other Git operation (including 'git prune', as loose objects are never used by fast-import). fast-import does not lock the branch or tag refs it is actively importing. @@@ -234,7 -220,7 +234,7 @@@ variation in formatting will cause fast + An example value is ``Tue Feb 6 11:22:18 2007 -0500''. The Git parser is accurate, but a little on the lenient side. It is the - same parser used by 'git-am' when applying patches + same parser used by 'git am' when applying patches received from email. + Some malformed strings may be accepted as valid dates. In some of @@@ -270,7 -256,7 +270,7 @@@ timezone This particular format is supplied as its short to implement and may be useful to a process that wants to create a new commit right now, without needing to use a working directory or - 'git-update-index'. + 'git update-index'. + If separate `author` and `committer` commands are used in a `commit` the timestamps may not match, as the system clock will be polled @@@ -317,15 -303,6 +317,15 @@@ and control the current import process standard output. This command is optional and is not needed to perform an import. +`feature`:: + Require that fast-import supports the specified feature, or + abort if it does not. + +`option`:: + Specify any of the options listed under OPTIONS that do not + change stream semantic to suit the frontend's needs. This + command is optional and is not needed to perform an import. + `commit` ~~~~~~~~ Create or update a branch with a new commit, recording one logical @@@ -713,7 -690,7 +713,7 @@@ recommended, as the frontend does not ( complete set of bytes which normally goes into such a signature. If signing is required, create lightweight tags from within fast-import with `reset`, then create the annotated versions of those tags offline - with the standard 'git-tag' process. + with the standard 'git tag' process. `reset` ~~~~~~~ @@@ -869,62 -846,6 +869,62 @@@ Placing a `progress` command immediatel inform the reader when the `checkpoint` has been completed and it can safely access the refs that fast-import updated. +`feature` +~~~~~~~~~ +Require that fast-import supports the specified feature, or abort if +it does not. + +.... + 'feature' SP LF +.... + +The part of the command may be any string matching +^[a-zA-Z][a-zA-Z-]*$ and should be understood by fast-import. + +Feature work identical as their option counterparts with the +exception of the import-marks feature, see below. + +The following features are currently supported: + +* date-format +* import-marks +* export-marks +* relative-marks +* no-relative-marks +* force + +The import-marks behaves differently from when it is specified as +commandline option in that only one "feature import-marks" is allowed +per stream. Also, any --import-marks= specified on the commandline +will override those from the stream (if any). + +`option` +~~~~~~~~ +Processes the specified option so that git fast-import behaves in a +way that suits the frontend's needs. +Note that options specified by the frontend are overridden by any +options the user may specify to git fast-import itself. + +.... + 'option' SP