diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/RelNotes/1.7.8.1.txt | 29 | ||||
-rw-r--r-- | Documentation/RelNotes/1.7.9.txt | 66 | ||||
-rw-r--r-- | Documentation/git-fsck.txt | 26 | ||||
-rw-r--r-- | Documentation/git-sh-setup.txt | 10 | ||||
-rw-r--r-- | Documentation/pretty-formats.txt | 4 |
5 files changed, 86 insertions, 49 deletions
diff --git a/Documentation/RelNotes/1.7.8.1.txt b/Documentation/RelNotes/1.7.8.1.txt index 0e8bd9f5ee..33dc948b94 100644 --- a/Documentation/RelNotes/1.7.8.1.txt +++ b/Documentation/RelNotes/1.7.8.1.txt @@ -1,17 +1,38 @@ Git v1.7.8.1 Release Notes ========================== -Fixes since v1.7.8.1 --------------------- +Fixes since v1.7.8 +------------------ * In some codepaths (notably, checkout and merge), the ignore patterns recorded in $GIT_DIR/info/exclude were not honored. They now are. - * After fetching from a remote that has very long refname, the reporting - output could have corrupted by overrunning a static buffer. + * "git apply --check" did not error out when given an empty input + without any patch. + + * "git archive" mistakenly allowed remote clients to ask for commits + that are not at the tip of any ref. * "git checkout" and "git merge" treated in-tree .gitignore and exclude file in $GIT_DIR/info/ directory inconsistently when deciding which untracked files are ignored and expendable. + * LF-to-CRLF streaming filter used when checking out a large-ish blob + fell into an infinite loop with a rare input. + + * The function header pattern for files with "diff=cpp" attribute did + not consider "type *funcname(type param1,..." as the beginning of a + function. + + * The error message from "git diff" and "git status" when they fail + to inspect changes in submodules did not report which submodule they + had trouble with. + + * After fetching from a remote that has very long refname, the reporting + output could have corrupted by overrunning a static buffer. + + * "git pack-objects" avoids creating cyclic dependencies among deltas + when seeing a broken packfile that records the same object in both + the deflated form and as a delta. + Also contains minor fixes and documentation updates. diff --git a/Documentation/RelNotes/1.7.9.txt b/Documentation/RelNotes/1.7.9.txt index 70ff060231..3ddd75be63 100644 --- a/Documentation/RelNotes/1.7.9.txt +++ b/Documentation/RelNotes/1.7.9.txt @@ -10,8 +10,10 @@ Updates since v1.7.8 * git-p4 (in contrib/) updates. - * i18n effort is going forward and Git uses localized messages if - available. + * Git uses gettext to translate its most common interface messages + into the user's language if translations are available and the + locale is appropriately set. Distributors can drop in new PO files + in po/ to add new translations. * Porcelain commands like "git reset" did not distinguish deletions and type-changes from ordinary modification, and reported them with @@ -23,9 +25,9 @@ Updates since v1.7.8 external programs to cache or store them, to allow integration with platform native keychain mechanisms. - * "git commit" and "git reset" re-learned the optimization to prime - the cache-tree information in the index, which makes it faster to - write a tree object out after the index entries are updated. + * The prompted input in the terminal use our own getpass() replacement + when possible. HTTP transactions used to ask username without echoing + back what was typed, but with this change you will see it as you type. * "git add" learned to stream large files directly into a packfile instead of writing them into individual loose object files. @@ -43,6 +45,13 @@ Updates since v1.7.8 user is amending the tree being recorded, without updating the commit log message. + * "git commit" and "git reset" re-learned the optimization to prime + the cache-tree information in the index, which makes it faster to + write a tree object out after the index entries are updated. + + * "git commit" detects and rejects an attempt to stuff NUL byte in + the commit log message. + * fsck and prune are relatively lengthy operations that still go silent while making the end-user wait. They learned to give progress output like other slow operations. @@ -50,6 +59,13 @@ Updates since v1.7.8 * The set of built-in function-header patterns for various languages knows MATLAB. + * "git log --follow" honors the rename threshold score given with the + -M option (e.g. "-M50%"). + + * "git log --format='<format>'" learned new %g[nNeE] specifiers to + show information from the reflog entries when warlking the reflog + (i.e. with "-g"). + * "git pull" can be used to fetch and merge an annotated/signed tag, instead of the tip of a topic branch. The GPG signature from the signed tag is recorded in the resulting merge commit for later @@ -86,45 +102,34 @@ Also contains minor documentation updates and code clean-ups. Fixes since v1.7.8 ------------------ - * The function header pattern for files with "diff=cpp" attribute did - not consider "type *funcname(type param1,..." as the beginning of a - function. - (merge 37e7793 tr/userdiff-c-returns-pointer later to maint). - * The replacement implemention for snprintf used on platforms with native snprintf that is broken did not use va_copy correctly. (merge a9bfbc5 jk/maint-snprintf-va-copy later to maint). - * LF-to-CRLF streaming filter used when checking out a large-ish blob - fell into an infinite loop with a rare input. - (merge 284e3d2 cn/maint-lf-to-crlf-filter later to maint). - * git native connection going over TCP (not over SSH) did not set SO_KEEPALIVE option which failed to receive link layer errors. (merge e47a858 ew/keepalive later to maint). - * "git archive" mistakenly allowed remote clients to ask for commits - that are not at the tip of any ref. - (merge 7b51c33 jk/maint-upload-archive later to maint). - - * "git apply --check" did not error out when given an empty input - without any patch. - (merge cc64b31 bc/maint-apply-check-no-patch later to maint). + * LF-to-CRLF streaming filter replaced all LF with CRLF, which might + be techinically correct but not friendly to people who are trying + to recover from earlier mistakes of using CRLF in the repository + data in the first place. It now refrains from doing so for LF that + follows a CR. + (merge 8496f56 jc/maint-lf-to-crlf-keep-crlf later to maint). * "git checkout -m" did not recreate the conflicted state in a "both sides added, without any common ancestor version" conflict situation. - (merge 335c6e4 jc/checkout-m-twoway later to maint). + (merge 5cd7fadc jc/checkout-m-twoway later to maint). * "git cherry-pick $commit" (not a range) created an unnecessary sequencer state and interfered with valid workflow to use the command during a session to cherry-pick multiple commits. (merge d596118 jn/maint-sequencer-fixes later to maint). - * The error message from "git diff" and "git status" when they fail - to inspect changes in submodules did not report which submodule they - had trouble with. - (merge 6a5ceda jl/submodule-status-failure-report later to maint). + * You could make "git commit" segfault by giving the "--no-message" + option. + (merge 03f94ae jk/maint-strbuf-missing-init later to maint). * "fast-import" did not correctly update an existing notes tree, possibly corrupting the fan-out. @@ -151,9 +156,16 @@ Fixes since v1.7.8 given. (merge a4ddbc3 jk/maint-push-over-dav later to maint). + * "git push" to an empty repository over HTTP were broken with a + recent change to the ref handling. + (merge 02f7914 jk/http-push-to-empty later to maint). + + * "git push -v" forgot how to be verbose by mistake. It now properly is. + (merge bd2c86e jk/maint-push-v-is-verbose later to maint). + -- exec >/var/tmp/1 -O=v1.7.8-351-g2dccad3 +O=v1.7.8.1-361-g1aea303 echo O=$(git describe master) git log --first-parent --oneline --reverse ^$O master echo diff --git a/Documentation/git-fsck.txt b/Documentation/git-fsck.txt index 0a17b4258e..6c47395ad2 100644 --- a/Documentation/git-fsck.txt +++ b/Documentation/git-fsck.txt @@ -81,30 +81,20 @@ index file, all SHA1 references in .git/refs/*, and all reflogs (unless progress status even if the standard error stream is not directed to a terminal. -It tests SHA1 and general object sanity, and it does full tracking of -the resulting reachability and everything else. It prints out any -corruption it finds (missing or bad objects), and if you use the -'--unreachable' flag it will also print out objects that exist but -that aren't reachable from any of the specified head nodes. - -So for example - - git fsck --unreachable HEAD \ - $(git for-each-ref --format="%(objectname)" refs/heads) +DISCUSSION +---------- -will do quite a _lot_ of verification on the tree. There are a few -extra validity tests to be added (make sure that tree objects are -sorted properly etc), but on the whole if 'git fsck' is happy, you -do have a valid tree. +git-fsck tests SHA1 and general object sanity, and it does full tracking +of the resulting reachability and everything else. It prints out any +corruption it finds (missing or bad objects), and if you use the +'--unreachable' flag it will also print out objects that exist but that +aren't reachable from any of the specified head nodes (or the default +set, as mentioned above). Any corrupt objects you will have to find in backups or other archives (i.e., you can just remove them and do an 'rsync' with some other site in the hopes that somebody else has the object you have corrupted). -Of course, "valid tree" doesn't mean that it wasn't generated by some -evil person, and the end result might be crap. git is a revision -tracking system, not a quality assurance system ;) - Extracted Diagnostics --------------------- diff --git a/Documentation/git-sh-setup.txt b/Documentation/git-sh-setup.txt index a2f346ca71..5e5f1c8964 100644 --- a/Documentation/git-sh-setup.txt +++ b/Documentation/git-sh-setup.txt @@ -68,6 +68,16 @@ require_work_tree_exists:: cd_to_toplevel, which is impossible to do if there is no working tree. +require_clean_work_tree <action> [<hint>]:: + checks that the working tree and index associated with the + repository have no uncommitted changes to tracked files. + Otherwise it emits an error message of the form `Cannot + <action>: <reason>. <hint>`, and dies. Example: ++ +---------------- +require_clean_work_tree rebase "Please commit or stash them." +---------------- + get_author_ident_from_commit:: outputs code for use with eval to set the GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL and GIT_AUTHOR_DATE variables for a given commit. diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt index 561cc9f7d7..880b6f2e6f 100644 --- a/Documentation/pretty-formats.txt +++ b/Documentation/pretty-formats.txt @@ -132,6 +132,10 @@ The placeholders are: - '%N': commit notes - '%gD': reflog selector, e.g., `refs/stash@\{1\}` - '%gd': shortened reflog selector, e.g., `stash@\{1\}` +- '%gn': reflog identity name +- '%gN': reflog identity name (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) +- '%ge': reflog identity email +- '%gE': reflog identity email (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) - '%gs': reflog subject - '%Cred': switch color to red - '%Cgreen': switch color to green |