Documentation / RelNotes-1.6.5.txton commit filter-branch: add --prune-empty to option summary (e3679ab)
   1GIT v1.6.5 Release Notes
   2========================
   3
   4In git 1.7.0, which was planned to be the release after 1.6.5, "git
   5push" into a branch that is currently checked out will be refused by
   6default.
   7
   8You can choose what should happen upon such a push by setting the
   9configuration variable receive.denyCurrentBranch in the receiving
  10repository.
  11
  12Also, "git push $there :$killed" to delete the branch $killed in a remote
  13repository $there, when $killed branch is the current branch pointed at by
  14its HEAD, will be refused by default.
  15
  16You can choose what should happen upon such a push by setting the
  17configuration variable receive.denyDeleteCurrent in the receiving
  18repository.
  19
  20To ease the transition plan, the receiving repository of such a
  21push running this release will issue a big warning when the
  22configuration variable is missing.  Please refer to:
  23
  24  http://git.or.cz/gitwiki/GitFaq#non-bare
  25  http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007
  26
  27for more details on the reason why this change is needed and the
  28transition plan.
  29
  30Updates since v1.6.4
  31--------------------
  32
  33(subsystems)
  34
  35 * various updates to gitk, git-svn and gitweb.
  36
  37(portability)
  38
  39 * more improvements on mingw port.
  40
  41 * mingw will also give FRSX as the default value for the LESS
  42   environment variable when the user does not have one.
  43
  44 * initial support to compile git on Windows with MSVC.
  45
  46(performance)
  47
  48 * On major platforms, the system can be compiled to use with Linus's
  49   block-sha1 implementation of the SHA-1 hash algorithm, which
  50   outperforms the default fallback implementation we borrowed from
  51   Mozilla.
  52
  53 * Unnecessary inefficiency in deepening of a shallow repository has
  54   been removed.
  55
  56 * The "git" main binary used to link with libcurl, which then dragged
  57   in a large number of external libraries.  When using basic plumbing
  58   commands in scripts, this unnecessarily slowed things down.  We now
  59   implement http/https/ftp transfer as a separate executable as we
  60   used to.
  61
  62 * "git clone" run locally hardlinks or copies the files in .git/ to
  63   newly created repository.  It used to give new mtime to copied files,
  64   but this delayed garbage collection to trigger unnecessarily in the
  65   cloned repository.  We now preserve mtime for these files to avoid
  66   this issue.
  67
  68(usability, bells and whistles)
  69
  70 * Human writable date format to various options, e.g. --since=yesterday,
  71   master@{2000.09.17}, are taught to infer some omitted input properly.
  72
  73 * A few programs gave verbose "advice" messages to help uninitiated
  74   people when issuing error messages.  An infrastructure to allow
  75   users to squelch them has been introduced, and a few such messages
  76   can be silenced now.
  77
  78 * refs/replace/ hierarchy is designed to be usable as a replacement
  79   of the "grafts" mechanism, with the added advantage that it can be
  80   transferred across repositories.
  81
  82 * "git am" learned to optionally ignore whitespace differences.
  83
  84 * "git am" handles input e-mail files that has CRLF line endings sensibly.
  85
  86 * "git am" learned "--scissors" option to allow you to discard early part
  87   of an incoming e-mail.
  88
  89 * "git archive -o output.zip" works without being told what format to
  90   use with an explicit "--format=zip".option.
  91
  92 * "git checkout", "git reset" and "git stash" learned to pick and
  93   choose to use selected changes you made, similar to "git add -p".
  94
  95 * "git clone" learned a "-b" option to pick a HEAD to check out
  96   different from the remote's default branch.
  97
  98 * "git clone" learned --recursive option.
  99
 100 * "git clone" from a local repository on a different filesystem used to
 101   copy individual object files without preserving the old timestamp, giving
 102   them extra lifetime in the new repository until they gc'ed.
 103
 104 * "git commit --dry-run $args" is a new recommended way to ask "what would
 105   happen if I try to commit with these arguments."
 106
 107 * "git commit --dry-run" and "git status" shows conflicted paths in a
 108   separate section to make them easier to spot during a merge.
 109
 110 * "git cvsimport" now supports password-protected pserver access even
 111   when the password is not taken from ~/.cvspass file.
 112
 113 * "git fast-export" learned --no-data option that can be useful when
 114   reordering commits and trees without touching the contents of
 115   blobs.
 116
 117 * "git fast-import" has a pair of new front-end in contrib/ area.
 118
 119 * "git init" learned to mkdir/chdir into a directory when given an
 120   extra argument (i.e. "git init this").
 121
 122 * "git instaweb" optionally can use mongoose as the web server.
 123
 124 * "git log --decorate" can optionally be told with --decorate=full to
 125   give the reference name in full.
 126
 127 * "git merge" issued an unnecessarily scary message when it detected
 128   that the merge may have to touch the path that the user has local
 129   uncommitted changes to. The message has been reworded to make it
 130   clear that the command aborted, without doing any harm.
 131
 132 * "git push" can be told to be --quiet.
 133
 134 * "git push" pays attention to url.$base.pushInsteadOf and uses a URL
 135   that is derived from the URL used for fetching.
 136
 137 * informational output from "git reset" that lists the locally modified
 138   paths is made consistent with that of "git checkout $another_branch".
 139
 140 * "git submodule" learned to give submodule name to scripts run with
 141   "foreach" subcommand.
 142
 143 * various subcommands to "git submodule" learned --recursive option.
 144
 145 * "git submodule summary" learned --files option to compare the work
 146   tree vs the commit bound at submodule path, instead of comparing
 147   the index.
 148
 149 * "git upload-pack", which is the server side support for "git clone" and
 150   "git fetch", can call a new post-upload-pack hook for statistics purposes.
 151
 152(developers)
 153
 154 * With GIT_TEST_OPTS="--root=/p/a/t/h", tests can be run outside the
 155   source directory; using tmpfs may give faster turnaround.
 156
 157
 158Fixes since v1.6.4
 159------------------
 160
 161# All of the fixes in v1.6.4.X maintenance series are included in this
 162# release, unless otherwise noted.
 163
 164# Here are fixes that this release has, but have not been backported to
 165# v1.6.4.X series.
 166
 167--
 168exec >/var/tmp/1
 169O=v1.6.5-rc1-44-ga16753d
 170echo O=$(git describe master)
 171git shortlog --no-merges $O..master --not maint