documentation: add tutorial for first contribution
[gitweb.git] / Documentation / RelNotes / 1.7.9.txt
index 70ff0602315109a665a66d68f5803fda71a92a9d..95320aad5dd2414efeacbc088b34e45c4ac51bbf 100644 (file)
@@ -1,4 +1,4 @@
-Git v1.7.9 Release Notes (draft)
+Git v1.7.9 Release Notes
 ========================
 
 Updates since v1.7.8
@@ -10,29 +10,32 @@ 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 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
-   the same 'M' moniker. They now use 'D' (for deletion) and 'T' (for
-   type-change) to match "git status -s" and "git diff --name-status".
-
- * The code to handle username/password for HTTP transaction used in
+ * The code to handle username/password for HTTP transactions used in
    "git push" & "git fetch" learned to talk "credential API" to
    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 input prompts in the terminal use our own getpass() replacement
+   when possible. HTTP transactions used to ask for the username without
+   echoing back what was typed, but with this change you will see it as
+   you type.
+
+ * The internals of "revert/cherry-pick" have been tweaked to prepare
+   building more generic "sequencer" on top of the implementation that
+   drives them.
+
+ * "git rev-parse FETCH_HEAD" after "git fetch" without specifying
+   what to fetch from the command line will now show the commit that
+   would be merged if the command were "git pull".
 
  * "git add" learned to stream large files directly into a packfile
    instead of writing them into individual loose object files.
 
- * "git branch -m <current branch> HEAD" is an obvious no-op and is
-   now allowed.
-
  * "git checkout -B <current branch> <elsewhere>" is a more intuitive
    way to spell "git reset --keep <elsewhere>".
 
@@ -43,6 +46,16 @@ 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.
+
+ * "git commit" learned "-S" to GPG-sign the commit; this can be shown
+   with the "--show-signature" option to "git log".
+
  * 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,11 +63,19 @@ Updates since v1.7.8
  * The set of built-in function-header patterns for various languages
    knows MATLAB.
 
+ * "git log --format='<format>'" learned new %g[nNeE] specifiers to
+   show information from the reflog entries when walking 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
    auditing.
 
+ * "git log" learned "--show-signature" option to show the signed tag
+   that was merged that is embedded in the merge commit. It also can
+   show the signature made on the commit with "git commit -S".
+
  * "git branch --edit-description" can be used to add descriptive text
    to explain what a topic branch is about.
 
@@ -86,75 +107,6 @@ 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).
-
- * "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).
-
- * "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).
-
- * "fast-import" did not correctly update an existing notes tree,
-   possibly corrupting the fan-out.
-
- * "git fetch-pack" accepted unqualified refs that do not begin with
-   refs/ by mistake and compensated it by matching the refspec with
-   tail-match, which was doubly wrong. This broke fetching from a
-   repository with a funny named ref "refs/foo/refs/heads/master" and a
-   'master' branch with "git fetch-pack refs/heads/master", as the
-   command incorrectly considered the former a "match".
-   (merge bab8d28 jk/fetch-no-tail-match-refs later to maint).
-
- * "git mv" gave suboptimal error/warning messages when it overwrites
-   target files. It also did not pay attention to "-v" option.
-   (merge 534376c jk/maint-mv later to maint).
-
- * When a "reword" action in "git rebase -i" failed to run "commit --amend",
-   we did not give the control back to the user to resolve the situation, and
-   instead kept the original commit log message.
-   (merge 0becb3e aw/rebase-i-stop-on-failure-to-amend later to maint).
-
- * Authenticated "git push" over dumb HTTP were broken with a recent
-   change and failed without asking for password when username is
-   given.
-   (merge a4ddbc3 jk/maint-push-over-dav later to maint).
-
---
-exec >/var/tmp/1
-O=v1.7.8-351-g2dccad3
-echo O=$(git describe master)
-git log --first-parent --oneline --reverse ^$O master
-echo
-git shortlog --no-merges ^$O ^maint master
+Unless otherwise noted, all the fixes since v1.7.8 in the maintenance
+releases are contained in this release (see release notes to them for
+details).