diff --git a/Documentation/RelNotes-1.5.4.5.txt b/Documentation/RelNotes-1.5.4.5.txt index fe768d497f..0282341398 100644 --- a/Documentation/RelNotes-1.5.4.5.txt +++ b/Documentation/RelNotes-1.5.4.5.txt @@ -4,6 +4,13 @@ GIT v1.5.4.5 Release Notes Fixes since v1.5.4.4 -------------------- + * "git fetch there" when the URL information came from the Cogito style + branches/there file did not update refs/heads/there (regression in + 1.5.4). + + * Bogus refspec configuration such as "remote.there.fetch = =" were not + detected as errors (regressionin 1.5.4). + * You couldn't specify a custom editor whose path contains a whitespace via GIT_EDITOR (and core.editor). @@ -46,8 +53,4 @@ Fixes since v1.5.4.4 * "git rebase -m" triggered pre-commit verification, which made "rebase --continue" impossible. --- -exec >/var/tmp/1 -echo O=$(git describe maint) -O=v1.5.4.4-25-ga6f7728 -git shortlog --no-merges $O..maint +As usual, it also comes with many documentation fixes and clarifications. diff --git a/Documentation/RelNotes-1.5.5.txt b/Documentation/RelNotes-1.5.5.txt index 14beed49ba..b299e8792c 100644 --- a/Documentation/RelNotes-1.5.5.txt +++ b/Documentation/RelNotes-1.5.5.txt @@ -79,8 +79,9 @@ Updates since v1.5.4 * "git branch" (and "git checkout -b") to branch from a local branch can optionally set "branch..merge" to mark the new branch to build on the other local branch, when "branch.autosetupmerge" is set to - "always". By default, this does not happen when branching from a local - branch. + "always", or when passing the command line option "--track" (this option + was ignored when branching from local branches). By default, this does + not happen when branching from a local branch. * "git checkout" to switch to a branch that has "branch..merge" set (i.e. marked to build on another branch) reports how much the branch @@ -202,8 +203,11 @@ this release, unless otherwise noted. * "git-rebase --abort" did not go back to the right location if "git-reset" was run during the "git-rebase" session. + * "git imap-send" without setting imap.host did not error out but + segfaulted. + --- exec >/var/tmp/1 -O=v1.5.5-rc1 +O=v1.5.5-rc1-21-g319a36a echo O=`git describe refs/heads/master` git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt index 4014e7256d..e11cddbfc9 100644 --- a/Documentation/git-checkout.txt +++ b/Documentation/git-checkout.txt @@ -3,7 +3,7 @@ git-checkout(1) NAME ---- -git-checkout - Checkout and switch to a branch +git-checkout - Checkout a branch or paths to the working tree SYNOPSIS -------- diff --git a/Documentation/git-tag.txt b/Documentation/git-tag.txt index b62a3d1c58..c22fb71176 100644 --- a/Documentation/git-tag.txt +++ b/Documentation/git-tag.txt @@ -26,6 +26,9 @@ creates a 'tag' object, and requires the tag message. Unless `-m ` or `-F ` is given, an editor is started for the user to type in the tag message. +If `-m ` or `-F ` is given and `-a`, `-s`, and `-u ` +are absent, `-a` is implied. + Otherwise just the SHA1 object name of the commit object is written (i.e. a lightweight tag). @@ -68,10 +71,14 @@ OPTIONS Use the given tag message (instead of prompting). If multiple `-m` options are given, there values are concatenated as separate paragraphs. + Implies `-a` if none of `-a`, `-s`, or `-u ` + is given. -F :: Take the tag message from the given file. Use '-' to read the message from the standard input. + Implies `-a` if none of `-a`, `-s`, or `-u ` + is given. CONFIGURATION ------------- diff --git a/Documentation/git.txt b/Documentation/git.txt index db4c7fd7de..d58657a1e7 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -43,9 +43,10 @@ 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.4.4/git.html[documentation for release 1.5.4.4] +* link:v1.5.4.5/git.html[documentation for release 1.5.4.5] * release notes for + link:RelNotes-1.5.4.5.txt[1.5.4.5], link:RelNotes-1.5.4.4.txt[1.5.4.4], link:RelNotes-1.5.4.3.txt[1.5.4.3], link:RelNotes-1.5.4.2.txt[1.5.4.2], diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt index 84ec9623a2..04ca63ca3d 100644 --- a/Documentation/gitattributes.txt +++ b/Documentation/gitattributes.txt @@ -63,6 +63,13 @@ path in question, and its parent directories (the further the directory that contains `.gitattributes` is from the path in question, the lower its precedence). +If you wish to affect only a single repository (i.e., to assign +attributes to files that are particular to one user's workflow), then +attributes should be placed in the `$GIT_DIR/info/attributes` file. +Attributes which should be version-controlled and distributed to other +repositories (i.e., attributes of interest to all users) should go into +`.gitattributes` files. + Sometimes you would need to override an setting of an attribute for a path to `unspecified` state. This can be done by listing the name of the attribute prefixed with an exclamation point `!`. diff --git a/Documentation/gitignore.txt b/Documentation/gitignore.txt index e847b3ba63..613dca006f 100644 --- a/Documentation/gitignore.txt +++ b/Documentation/gitignore.txt @@ -38,6 +38,18 @@ precedence, the last matching pattern decides the outcome): * Patterns read from the file specified by the configuration variable 'core.excludesfile'. +Which file to place a pattern in depends on how the pattern is meant to +be used. Patterns which should be version-controlled and distributed to +other repositories via clone (i.e., files that all developers will want +to ignore) should go into a `.gitignore` file. Patterns which are +specific to a particular repository but which do not need to be shared +with other related repositories (e.g., auxiliary files that live inside +the repository but are specific to one user's workflow) should go into +the `$GIT_DIR/info/exclude` file. Patterns which a user wants git to +ignore in all situations (e.g., backup or temporary files generated by +the user's editor of choice) generally go into a file specified by +`core.excludesfile` in the user's `~/.gitconfig`. + The underlying git plumbing tools, such as linkgit:git-ls-files[1] and linkgit:git-read-tree[1], read `gitignore` patterns specified by command-line options, or from diff --git a/Documentation/glossary.txt b/Documentation/glossary.txt index ab4caf4e26..51b63532b6 100644 --- a/Documentation/glossary.txt +++ b/Documentation/glossary.txt @@ -45,9 +45,12 @@ GIT Glossary "changesets" with git. [[def_checkout]]checkout:: - The action of updating the <> to a - <> which was stored in the - <>. + The action of updating all or part of the + <> with a <> + or <> from the + <>, and updating the + <> and <> if the whole working tree has + been pointed at a new <>. [[def_cherry-picking]]cherry-picking:: In <> jargon, "cherry pick" means to choose a subset of diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt index 40b0de0877..565aeb9804 100644 --- a/Documentation/user-manual.txt +++ b/Documentation/user-manual.txt @@ -4144,7 +4144,7 @@ commits one by one with the function `get_revision()`. If you are interested in more details of the revision walking process, just have a look at the first implementation of `cmd_log()`; call -`git-show v1.3.0~155^2~4` and scroll down to that function (note that you +`git-show v1.3.0{tilde}155^2{tilde}4` and scroll down to that function (note that you no longer need to call `setup_pager()` directly). Nowadays, `git log` is a builtin, which means that it is _contained_ in the diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index d0b60f40d8..7529af9315 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v1.5.5-rc1.GIT +DEF_VER=v1.5.5-rc2.GIT LF=' ' diff --git a/builtin-apply.c b/builtin-apply.c index a3f075df4b..b5f78ac3a7 100644 --- a/builtin-apply.c +++ b/builtin-apply.c @@ -2994,7 +2994,7 @@ int cmd_apply(int argc, const char **argv, const char *unused_prefix) int read_stdin = 1; int inaccurate_eof = 0; int errs = 0; - int is_not_gitdir = 0; + int is_not_gitdir; const char *whitespace_option = NULL; diff --git a/builtin-bundle.c b/builtin-bundle.c index 9f38e2176a..ac476e7a4b 100644 --- a/builtin-bundle.c +++ b/builtin-bundle.c @@ -14,7 +14,7 @@ static const char *bundle_usage="git-bundle (create int cmd_bundle(int argc, const char **argv, const char *prefix) { struct bundle_header header; - int nongit = 0; + int nongit; const char *cmd, *bundle_file; int bundle_fd = -1; char buffer[PATH_MAX]; diff --git a/builtin-config.c b/builtin-config.c index 2b9a4261d4..c34bc8b6a6 100644 --- a/builtin-config.c +++ b/builtin-config.c @@ -264,7 +264,7 @@ static int get_colorbool(int argc, const char **argv) int cmd_config(int argc, const char **argv, const char *prefix) { - int nongit = 0; + int nongit; char* value; const char *file = setup_git_directory_gently(&nongit); diff --git a/builtin-diff-files.c b/builtin-diff-files.c index 4abe3c28fb..e2306c162a 100644 --- a/builtin-diff-files.c +++ b/builtin-diff-files.c @@ -16,7 +16,7 @@ COMMON_DIFF_OPTIONS_HELP; int cmd_diff_files(int argc, const char **argv, const char *prefix) { struct rev_info rev; - int nongit = 0; + int nongit; int result; prefix = setup_git_directory_gently(&nongit); diff --git a/builtin-diff.c b/builtin-diff.c index 444ff2fd92..7c2a8412fa 100644 --- a/builtin-diff.c +++ b/builtin-diff.c @@ -210,7 +210,7 @@ int cmd_diff(int argc, const char **argv, const char *prefix) int ents = 0, blobs = 0, paths = 0; const char *path = NULL; struct blobinfo blob[2]; - int nongit = 0; + int nongit; int result = 0; /* diff --git a/builtin-init-db.c b/builtin-init-db.c index 79eaf8d6ed..2854868b4e 100644 --- a/builtin-init-db.c +++ b/builtin-init-db.c @@ -167,9 +167,9 @@ static int create_default_files(const char *git_dir, const char *template_path) { unsigned len = strlen(git_dir); static char path[PATH_MAX]; - unsigned char sha1[20]; struct stat st1; char repo_version_string[10]; + char junk[2]; int reinit; int filemode; @@ -219,7 +219,8 @@ static int create_default_files(const char *git_dir, const char *template_path) * branch, if it does not exist yet. */ strcpy(path + len, "HEAD"); - reinit = !read_ref("HEAD", sha1); + reinit = (!access(path, R_OK) + || readlink(path, junk, sizeof(junk)-1) != -1); if (!reinit) { if (create_symref("HEAD", "refs/heads/master", NULL) < 0) exit(1); diff --git a/builtin-ls-remote.c b/builtin-ls-remote.c index 8907a89d6c..06ab8da1fb 100644 --- a/builtin-ls-remote.c +++ b/builtin-ls-remote.c @@ -31,7 +31,7 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix) { int i; const char *dest = NULL; - int nongit = 0; + int nongit; unsigned flags = 0; const char *uploadpack = NULL; const char **pattern = NULL; diff --git a/builtin-prune.c b/builtin-prune.c index bb8ead92cf..25f9304b82 100644 --- a/builtin-prune.c +++ b/builtin-prune.c @@ -4,8 +4,12 @@ #include "revision.h" #include "builtin.h" #include "reachable.h" +#include "parse-options.h" -static const char prune_usage[] = "git-prune [-n]"; +static const char * const prune_usage[] = { + "git-prune [-n] [--expire