From 54d5d8a0e4c4b1c147a1e3a04a68b85bbd7a10d7 Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Wed, 5 Feb 2014 06:20:52 -0800 Subject: [PATCH 1/2] Add 1.9.0 and 2.0 notes --- CHANGES.asc | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/CHANGES.asc b/CHANGES.asc index 5be42ebd0..15578e63a 100644 --- a/CHANGES.asc +++ b/CHANGES.asc @@ -459,3 +459,94 @@ The http transport clients can optionally ask to save cookies "fetch.prune" and "remote.*.prune" configuration variables and to behave as if the "--prune" command line option was given. += 1.9.0 + +[NOTE] +This is from the http://permalink.gmane.org/gmane.linux.kernel/1638649[1.9-rc2 announcement]. + +Fetching from a shallowly-cloned repository used to be forbidden, + primarily because the codepaths involved were not carefully vetted + and we did not bother supporting such usage. This release attempts + to allow object transfer out of a shallowly-cloned repository in a + more controlled way (i.e. the receiver become a shallow repository + with a truncated history). + +Just like we give a reasonable default for "less" via the LESS + environment variable, we now specify a reasonable default for "lv" + via the "LV" environment variable when spawning the pager. + +Two-level configuration variable names in "branch.\*" and "remote.*" + hierarchies, whose variables are predominantly three-level, were + not completed by hitting a in bash and zsh completions. + +Fetching 'frotz' branch with "git fetch", while 'frotz/nitfol' + remote-tracking branch from an earlier fetch was still there, would + error out, primarily because the command was not told that it is + allowed to lose any information on our side. "git fetch --prune" + now can be used to remove 'frotz/nitfol' to make room to fetch and + store 'frotz' remote-tracking branch. + +"diff.orderfile=" configuration variable can be used to +pretend as if the "-O" option were given from the command +line of "git diff", etc. + +The negative pathspec syntax allows "git log -- . ':!dir'" to tell +us "I am interested in everything but 'dir' directory". + +"git difftool" shows how many different paths there are in total, +and how many of them have been shown so far, to indicate progress. + +"git push origin master" used to push our 'master' branch to update +the 'master' branch at the 'origin' repository. This has been +enhanced to use the same ref mapping "git push origin" would use to +determine what ref at the 'origin' to be updated with our 'master'. +For example, with this configuration + + [remote "origin"] + push = refs/heads/*:refs/review/* + +that would cause "git push origin" to push out our local branches +to corresponding refs under refs/review/ hierarchy at 'origin', +"git push origin master" would update 'refs/review/master' over +there. Alternatively, if push.default is set to 'upstream' and our +'master' is set to integrate with 'topic' from the 'origin' branch, +running "git push origin" while on our 'master' would update their +'topic' branch, and running "git push origin master" while on any +of our branches does the same. + +"gitweb" learned to treat ref hierarchies other than refs/heads as +if they are additional branch namespaces (e.g. refs/changes/ in +Gerrit). + +"git for-each-ref --format=..." learned a few formatting directives; +e.g. "%(color:red)%(HEAD)%(color:reset) %(refname:short) %(subject)". + +The command string given to "git submodule foreach" is passed +directly to the shell, without being eval'ed. This is a backward +incompatible change that may break existing users. + +"git log" and friends learned the "--exclude=" option, to +allow people to say "list history of all branches except those that +match this pattern" with "git log --exclude='*/*' --branches". + +"git rev-parse --parseopt" learned a new "--stuck-long" option to +help scripts parse options with an optional parameter. + +The "--tags" option to "git fetch" no longer tells the command to +fetch _only_ the tags. It instead fetches tags _in addition to_ +what are fetched by the same command line without the option. + += 2.0 + +[NOTE] +This is from the http://permalink.gmane.org/gmane.linux.kernel/1638649[1.9-rc2 announcement]. + +"push.default"'s default changed to "simple" (was "matching"). + +"add -u" and "add -A" now behave like "add -a" when invoked inside a +subdirectory. + +"git add " now behaves like "git add -A ", so "git add dir/" will +notice files removed from that directory and record the removal. + +"git svn" now stores its branches in refs/remotes/origin (they were just under refs/remotes). From d81b74f07af62dfdedccb501cd827ada9f44c96b Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Wed, 5 Feb 2014 06:20:56 -0800 Subject: [PATCH 2/2] Whitespace --- CHANGES.asc | 86 ++++++++++++++++++++++++++++------------------------- 1 file changed, 45 insertions(+), 41 deletions(-) diff --git a/CHANGES.asc b/CHANGES.asc index 15578e63a..c3869fa01 100644 --- a/CHANGES.asc +++ b/CHANGES.asc @@ -2,14 +2,17 @@ "git add -N path..." adds the named paths as an empty blob, so that subsequent "git diff" will show a diff as if they are creation events. + "git checkout --ours/--theirs" can be used to check out one side of a conflicting merge during conflict resolution + "git checkout -m" can be used to recreate the initial conflicted state - during conflict resolution. + during conflict resolution. "git diff" learned "textconv" filters — + "git log" learned "--source" to show what ref each commit was reached - from. + from. = 1.6.5 @@ -17,24 +20,25 @@ refs/replace/ hierarchy is designed to be usable as a replacement of the "grafts" mechanism, with the added advantage that it can be transferred across repositories. + "git checkout", "git reset" and "git stash" learned to pick and choose to use selected changes you made, similar to "git add -p”. "git clone" learned --recursive option. - + "git upload-pack", which is the server side support for "git clone" and - "git fetch", can call a new post-upload-pack hook for statistics purposes. + "git fetch", can call a new post-upload-pack hook for statistics purposes. = 1.6.6 "git fetch" over http learned a new mode that is different from the - traditional "dumb commit walker”. + traditional "dumb commit walker”. "git checkout frotz” insanity - we should check my advanced git slides for stuff like this "git diff" learned --submodule option to show a list of one-line logs - instead of differences between the commit object names. + instead of differences between the commit object names. "git fetch" learned --all and --multiple options, to run fetch from many repositories, and --prune option to remove remote tracking @@ -42,7 +46,7 @@ refs/replace/ hierarchy is designed to be usable as a replacement remote prune" less necessary (there is no plan to remove "remote update" nor "remote prune", though). -"git grep" can use -F (fixed strings) and -i (ignore case) together. +"git grep" can use -F (fixed strings) and -i (ignore case) together. "git notes" command to annotate existing commits. @@ -58,7 +62,7 @@ refs/replace/ hierarchy is designed to be usable as a replacement = 1.7.0 "sparse checkout" feature allows only part of the work tree to be - checked out. + checked out. HTTP transfer can use authentication scheme other than basic (i.e./e.g. digest). @@ -75,7 +79,7 @@ A new syntax "@{upstream}" can be used on the command line to just like "git commit --author=' '" can be used to override the author identity. -"git fetch --all" can now be used in place of "git remote update”. +"git fetch --all" can now be used in place of "git remote update”. "git push" learned "git push origin --delete branch", a syntactic sugar for "git push origin :branch”. @@ -94,7 +98,7 @@ Use of "git reset --merge" has become easier when resetting away a = 1.7.1 "git for-each-ref" learned %(symref), %(symref:short) and %(flag) - tokens. + tokens. "git notes" command has been rewritten in C and learned many commands and features to help you carry notes forward across rebases and amends. @@ -121,7 +125,7 @@ Use of "git reset --merge" has become easier when resetting away a = 1.7.3 "git checkout -B " is a shorter way to say "git branch -f " - followed by "git checkout ”. + followed by "git checkout ”. = 1.7.4 @@ -131,12 +135,12 @@ Use of "git reset --merge" has become easier when resetting away a "git fetch" learned the "--recurse-submodules" option. "git log -G" limits the output to commits whose change has - added or deleted lines that match the given pattern. + added or deleted lines that match the given pattern. "git merge --log" used to limit the resulting merge log to 20 - entries; this is now customizable by giving e.g. "--log=47” + entries; this is now customizable by giving e.g. "--log=47” -"git merge" learned the "--abort" option, synonymous to "git reset --merge" when a merge is in progress. +"git merge" learned the "--abort" option, synonymous to "git reset --merge" when a merge is in progress. "git notes" learned the "merge" subcommand to merge notes refs. In addition to the default manual conflict resolution, there are @@ -148,12 +152,12 @@ Use of "git reset --merge" has become easier when resetting away a The codebase is getting prepared for i18n/l10n; no translated strings nor translation mechanism in the code yet, but the strings - are being marked for l10n. + are being marked for l10n. "git checkout --detach " is a more user friendly synonym for "git checkout ^0”. -"git fetch" can be told to recursively fetch submodules on-demand. +"git fetch" can be told to recursively fetch submodules on-demand. = 1.7.6 @@ -165,7 +169,7 @@ Various git-svn updates. "git commit" learned a "--patch" option to directly jump to the per-hunk selection UI of the interactive mode. -"git grep" learned the "-P" option to take pcre regular expressions. +"git grep" learned the "-P" option to take pcre regular expressions. "git log" and friends learned a new "--notes" option to replace the "--show-notes" option. Unlike "--show-notes", "--notes=" does @@ -178,7 +182,7 @@ Various git-svn updates. fast-forward to happen when possible. "git submodule update" learned "--force" option to get rid of local - changes in submodules and replace them with the up-to-date version. + changes in submodules and replace them with the up-to-date version. = 1.7.7 @@ -190,7 +194,7 @@ Various updates to git-p4 (in contrib/), fast-import, and git-svn. The "--decorate" option to "git log" and its family learned to highlight grafted and replaced commits. -"git stash" learned an "--include-untracked option". +"git stash" learned an "--include-untracked option". "git push" can be told with the "--recurse-submodules=check" option to refuse pushing of the supermodule, if any of its submodules' @@ -200,7 +204,7 @@ The "--decorate" option to "git log" and its family learned to "git fetch" learned to honor transfer.fsckobjects configuration to validate the objects that were received from the other end, just like - "git receive-pack" (the receiving end of "git push") does. + "git receive-pack" (the receiving end of "git push") does. = 1.7.9 @@ -215,7 +219,7 @@ Git uses gettext to translate its most common interface messages in po/ to add new translations. "git checkout -B " is a more intuitive - way to spell "git reset --keep ”. + way to spell "git reset --keep ”. "git commit" learned "-S" to GPG-sign the commit; this can be shown with the "--show-signature" option to "git log”. @@ -230,7 +234,7 @@ Git uses gettext to translate its most common interface messages "git request-pull" has been updated to convey more information useful for integrators to decide if a topic is worth merging and what is pulled is indeed what the requestor asked to pull, - + = 1.7.10 @@ -247,21 +251,21 @@ When you do not tell which branches and tags to push to the "git A content filter (clean/smudge) used to be just a way to make the recorded contents "more useful", and allowed to fail; a filter can - now optionally be marked as "required". + now optionally be marked as "required". "git merge" in an interactive session learned to spawn the editor by default to let the user edit the auto-generated merge message, to encourage people to explain their merges better. Legacy scripts can export GIT_MERGE_AUTOEDIT=no to retain the historical behavior. Both "git merge" and "git pull" can be given --no-edit from the - command line to accept the auto-generated merge message. + command line to accept the auto-generated merge message. "git push" learned the "--prune" option, similar to "git fetch". The whole directory that houses a top-level superproject managed by "git submodule" can be moved to another place. -HTTP transport learned to authenticate with a proxy if needed. +HTTP transport learned to authenticate with a proxy if needed. = 1.7.11 @@ -271,7 +275,7 @@ A new mode for push, "simple", which is a cross between "current" will push the current branch out to the same name at the remote repository only when it is set to track the branch with the same name over there. The plan is to make this mode the new default - value when push.default is not configured. + value when push.default is not configured. A third-party tool "git subtree" is distributed in contrib/ @@ -283,20 +287,20 @@ A remote helper that acts as a proxy and caches ssl session for the out. An experimental "version 4" format of the index file has been - introduced to reduce on-disk footprint and I/O overhead. + introduced to reduce on-disk footprint and I/O overhead. = 1.7.12 Scripted Porcelain writers now have access to the credential API via - the "git credential" plumbing command. + the "git credential" plumbing command. "git clone --local $path" started its life as an experiment to optionally use link/copy when cloning a repository on the disk, but we didn't deprecate it after we made the option a no-op to always use the optimization. The command learned "--no-local" option to turn this off, as a more explicit alternative over use of file:// - URL. + URL. "git help -w $cmd" can show HTML version of documentation for "git-$cmd" by setting help.htmlpath to somewhere other than the @@ -319,7 +323,7 @@ When "git checkout" checks out a branch, it tells the user how far them up by pushing or pulling. This can be disabled with the advice.statusHints configuration variable. -"git submodule sync" learned the "--recursive" option. +"git submodule sync" learned the "--recursive" option. "diff.submodule" configuration variable can be used to give custom default value to the "git diff --submodule" option. @@ -328,14 +332,14 @@ Mention of "GIT/Git/git" in the documentation have been updated to be more uniform and consistent. The name of the system and the concept it embodies is "Git"; the command the users type is "git". All-caps "GIT" was merely a way to imitate "Git" typeset in small - caps in our ASCII text only documentation and to be avoided. + caps in our ASCII text only documentation and to be avoided. = 1.8.2 The patterns in .gitignore and .gitattributes files can have **/, as a pattern that matches 0 or more levels of subdirectory. E.g. "foo/**/bar" matches "bar" in "foo" itself or in a - subdirectory of "foo”. + subdirectory of "foo”. "git add -u" and "git add -A" without pathspec issues warning to make users aware that they are only operating on paths inside the @@ -352,7 +356,7 @@ The patterns in .gitignore and .gitattributes files can have **/, names and makes it easier to reuse cover letter messages. "git push" will stop without doing anything if the new "pre-push" - hook exists and exits with a failure. + hook exists and exits with a failure. = 1.8.3 @@ -388,11 +392,11 @@ The credential helper to talk to keychain on OS X (in contrib/) has Also in contrib/ is a new "contacts" script that runs "git blame" to find out the people who may be interested in a set of changes. -"git clean" command learned an interactive mode. +"git clean" command learned an interactive mode. "git check-mailmap" is a new command that lets you map usernames and e-mail addresses through the mailmap mechanism, just like many - built-in commands do. + built-in commands do. In addition to the choice from "rebase, merge, or checkout-detach", "submodule update" can allow a custom command to be used in to @@ -400,7 +404,7 @@ In addition to the choice from "rebase, merge, or checkout-detach", configuration variable. "git submodule update" can optionally clone the submodule - repositories shallowly. + repositories shallowly. git status" learned status.branch and status.short configuration variables to use --branch and --short options by default (override @@ -420,10 +424,10 @@ git status" learned status.branch and status.short configuration The default prefix for "git svn" will change in Git 2.0. For a long time, "git svn" created its remote-tracking branches directly under refs/remotes, but it will place them under refs/remotes/origin/ unless -it is told otherwise with its --prefix option. +it is told otherwise with its --prefix option. Instead of typing four capital letters "HEAD", you can say "@" now, - e.g. "git log @“. + e.g. "git log @“. "git replace" helper no longer allows an object to be replaced with another object of a different type to avoid confusion (you can @@ -433,7 +437,7 @@ Instead of typing four capital letters "HEAD", you can say "@" now, Just like "git checkout -" knows to check out, and "git merge -" knows to merge, the branch you were previously on, "git cherry-pick" now understands "git cherry-pick -" to pick from the previous - branch. + branch. Magic pathspecs like ":(icase)makefile" (matches both Makefile and makefile) and ":(glob)foo/**/bar" (matches "bar" in "foo" @@ -446,14 +450,14 @@ The "http.*" variables can now be specified for individual URLs. [http] sslVerify = true [http "https://weak.example.com/"] - sslVerify = false + sslVerify = false ``` "git blame" can now take more than one -L option to discover the origin of multiple blocks of lines. The http transport clients can optionally ask to save cookies - with the http.savecookies configuration variable. + with the http.savecookies configuration variable. "git fetch" (hence "git pull" as well) learned to check "fetch.prune" and "remote.*.prune" configuration variables and