home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / share / doc / git / RelNotes-1.5.1.txt < prev    next >
Encoding:
Text File  |  2011-09-22  |  13.0 KB  |  372 lines

  1. GIT v1.5.1 Release Notes
  2. ========================
  3.  
  4. Updates since v1.5.0
  5. --------------------
  6.  
  7. * Deprecated commands and options.
  8.  
  9.   - git-diff-stages and git-resolve have been removed.
  10.  
  11. * New commands and options.
  12.  
  13.   - "git log" and friends take --reverse, which instructs them
  14.     to give their output in the order opposite from their usual.
  15.     They typically output from new to old, but with this option
  16.     their output would read from old to new.  "git shortlog"
  17.     usually lists older commits first, but with this option,
  18.     they are shown from new to old.
  19.  
  20.   - "git log --pretty=format:<string>" to allow more flexible
  21.     custom log output.
  22.  
  23.   - "git diff" learned --ignore-space-at-eol.  This is a weaker
  24.     form of --ignore-space-change.
  25.  
  26.   - "git diff --no-index pathA pathB" can be used as diff
  27.     replacement with git specific enhancements.
  28.  
  29.   - "git diff --no-index" can read from '-' (standard input).
  30.  
  31.   - "git diff" also learned --exit-code to exit with non-zero
  32.     status when it found differences.  In the future we might
  33.     want to make this the default but that would be a rather big
  34.     backward incompatible change; it will stay as an option for
  35.     now.
  36.  
  37.   - "git diff --quiet" is --exit-code with output turned off,
  38.     meant for scripted use to quickly determine if there is any
  39.     tree-level difference.
  40.  
  41.   - Textual patch generation with "git diff" without -w/-b
  42.     option has been significantly optimized.  "git blame" got
  43.     faster because of the same change.
  44.  
  45.   - "git log" and "git rev-list" has been optimized
  46.     significantly when they are used with pathspecs.
  47.  
  48.   - "git branch --track" can be used to set up configuration
  49.     variables to help it easier to base your work on branches
  50.     you track from a remote site.
  51.  
  52.   - "git format-patch --attach" now emits attachments.  Use
  53.     --inline to get an inlined multipart/mixed.
  54.  
  55.   - "git name-rev" learned --refs=<pattern>, to limit the tags
  56.     used for naming the given revisions only to the ones
  57.     matching the given pattern.
  58.  
  59.   - "git remote update" is to run "git fetch" for defined remotes
  60.     to update tracking branches.
  61.  
  62.   - "git cvsimport" can now take '-d' to talk with a CVS
  63.     repository different from what are recorded in CVS/Root
  64.     (overriding it with environment CVSROOT does not work).
  65.  
  66.   - "git bundle" can help sneaker-netting your changes between
  67.     repositories.
  68.  
  69.   - "git mergetool" can help 3-way file-level conflict
  70.     resolution with your favorite graphical merge tools.
  71.  
  72.   - A new configuration "core.symlinks" can be used to disable
  73.     symlinks on filesystems that do not support them; they are
  74.     checked out as regular files instead.
  75.  
  76.   - You can name a commit object with its first line of the
  77.     message.  The syntax to use is ':/message text'.  E.g.
  78.  
  79.     $ git show ":/object name: introduce ':/<oneline prefix>' notation"
  80.  
  81.     means the same thing as:
  82.  
  83.     $ git show 28a4d940443806412effa246ecc7768a21553ec7
  84.  
  85.   - "git bisect" learned a new command "run" that takes a script
  86.     to run after each revision is checked out to determine if it
  87.     is good or bad, to automate the bisection process.
  88.  
  89.   - "git log" family learned a new traversal option --first-parent,
  90.     which does what the name suggests.
  91.  
  92.  
  93. * Updated behavior of existing commands.
  94.  
  95.   - "git-merge-recursive" used to barf when there are more than
  96.     one common ancestors for the merge, and merging them had a
  97.     rename/rename conflict.  This has been fixed.
  98.  
  99.   - "git fsck" does not barf on corrupt loose objects.
  100.  
  101.   - "git rm" does not remove newly added files without -f.
  102.  
  103.   - "git archimport" allows remapping when coming up with git
  104.     branch names from arch names.
  105.  
  106.   - git-svn got almost a rewrite.
  107.  
  108.   - core.autocrlf configuration, when set to 'true', makes git
  109.     to convert CRLF at the end of lines in text files to LF when
  110.     reading from the filesystem, and convert in reverse when
  111.     writing to the filesystem.  The variable can be set to
  112.     'input', in which case the conversion happens only while
  113.     reading from the filesystem but files are written out with
  114.     LF at the end of lines.  Currently, which paths to consider
  115.     'text' (i.e. be subjected to the autocrlf mechanism) is
  116.     decided purely based on the contents, but the plan is to
  117.     allow users to explicitly override this heuristic based on
  118.     paths.
  119.  
  120.   - The behavior of 'git-apply', when run in a subdirectory,
  121.     without --index nor --cached were inconsistent with that of
  122.     the command with these options.  This was fixed to match the
  123.     behavior with --index.  A patch that is meant to be applied
  124.     with -p1 from the toplevel of the project tree can be
  125.     applied with any custom -p<n> option.  A patch that is not
  126.     relative to the toplevel needs to be applied with -p<n>
  127.     option with or without --index (or --cached).
  128.  
  129.   - "git diff" outputs a trailing HT when pathnames have embedded
  130.     SP on +++/--- header lines, in order to help "GNU patch" to
  131.     parse its output.  "git apply" was already updated to accept
  132.     this modified output format since ce74618d (Sep 22, 2006).
  133.  
  134.   - "git cvsserver" runs hooks/update and honors its exit status.
  135.  
  136.   - "git cvsserver" can be told to send everything with -kb.
  137.  
  138.   - "git diff --check" also honors the --color output option.
  139.  
  140.   - "git name-rev" used to stress the fact that a ref is a tag too
  141.     much, by saying something like "v1.2.3^0~22".  It now says
  142.     "v1.2.3~22" in such a case (it still says "v1.2.3^0" if it does
  143.     not talk about an ancestor of the commit that is tagged, which
  144.     makes sense).
  145.  
  146.   - "git rev-list --boundary" now shows boundary markers for the
  147.     commits omitted by --max-age and --max-count condition.
  148.  
  149.   - The configuration mechanism now reads $(prefix)/etc/gitconfig.
  150.  
  151.   - "git apply --verbose" shows what preimage lines were wanted
  152.     when it couldn't find them.
  153.  
  154.   - "git status" in a read-only repository got a bit saner.
  155.  
  156.   - "git fetch" (hence "git clone" and "git pull") are less
  157.     noisy when the output does not go to tty.
  158.  
  159.   - "git fetch" between repositories with many refs were slow
  160.     even when there are not many changes that needed
  161.     transferring.  This has been sped up by partially rewriting
  162.     the heaviest parts in C.
  163.  
  164.   - "git mailinfo" which splits an e-mail into a patch and the
  165.     meta-information was rewritten, thanks to Don Zickus.  It
  166.     handles nested multipart better.  The command was broken for
  167.     a brief period on 'master' branch since 1.5.0 but the
  168.     breakage is fixed now.
  169.  
  170.   - send-email learned configurable bcc and chain-reply-to.
  171.  
  172.   - "git remote show $remote" also talks about branches that
  173.     would be pushed if you run "git push remote".
  174.  
  175.   - Using objects from packs is now seriously optimized by clever
  176.     use of a cache.  This should be most noticeable in git-log
  177.     family of commands that involve reading many tree objects.
  178.     In addition, traversing revisions while filtering changes
  179.     with pathspecs is made faster by terminating the comparison
  180.     between the trees as early as possible.
  181.  
  182.  
  183. * Hooks
  184.  
  185.   - The part to send out notification e-mails was removed from
  186.     the sample update hook, as it was not an appropriate place
  187.     to do so.  The proper place to do this is the new post-receive
  188.     hook.  An example hook has been added to contrib/hooks/.
  189.  
  190.  
  191. * Others
  192.  
  193.   - git-revert, git-gc and git-cherry-pick are now built-ins.
  194.  
  195. Fixes since v1.5.0
  196. ------------------
  197.  
  198. These are all in v1.5.0.x series.
  199.  
  200. * Documentation updates
  201.  
  202.   - Clarifications and corrections to 1.5.0 release notes.
  203.  
  204.   - The main documentation did not link to git-remote documentation.
  205.  
  206.   - Clarified introductory text of git-rebase documentation.
  207.  
  208.   - Converted remaining mentions of update-index on Porcelain
  209.     documents to git-add/git-rm.
  210.  
  211.   - Some i18n.* configuration variables were incorrectly
  212.     described as core.*; fixed.
  213.  
  214.   - added and clarified core.bare, core.legacyheaders configurations.
  215.  
  216.   - updated "git-clone --depth" documentation.
  217.  
  218.   - user-manual updates.
  219.  
  220.   - Options to 'git remote add' were described insufficiently.
  221.  
  222.   - Configuration format.suffix was not documented.
  223.  
  224.   - Other formatting and spelling fixes.
  225.  
  226.   - user-manual has better cross references.
  227.  
  228.   - gitweb installation/deployment procedure is now documented.
  229.  
  230.  
  231. * Bugfixes
  232.  
  233.   - git-upload-pack closes unused pipe ends; earlier this caused
  234.     many zombies to hang around.
  235.  
  236.   - git-rerere was recording the contents of earlier hunks
  237.     duplicated in later hunks.  This prevented resolving the same
  238.     conflict when performing the same merge the other way around.
  239.  
  240.   - git-add and git-update-index on a filesystem on which
  241.     executable bits are unreliable incorrectly reused st_mode
  242.     bits even when the path changed between symlink and regular
  243.     file.
  244.  
  245.   - git-daemon marks the listening sockets with FD_CLOEXEC so
  246.     that it won't be leaked into the children.
  247.  
  248.   - segfault from git-blame when the mandatory pathname
  249.     parameter was missing was fixed; usage() message is given
  250.     instead.
  251.  
  252.   - git-rev-list did not read $GIT_DIR/config file, which means
  253.     that did not honor i18n.logoutputencoding correctly.
  254.  
  255.   - Automated merge conflict handling when changes to symbolic
  256.     links conflicted were completely broken.  The merge-resolve
  257.     strategy created a regular file with conflict markers in it
  258.     in place of the symbolic link.  The default strategy,
  259.     merge-recursive was even more broken.  It removed the path
  260.     that was pointed at by the symbolic link.  Both of these
  261.     problems have been fixed.
  262.  
  263.   - 'git diff maint master next' did not correctly give combined
  264.     diff across three trees.
  265.  
  266.   - 'git fast-import' portability fix for Solaris.
  267.  
  268.   - 'git show-ref --verify' without arguments did not error out
  269.     but segfaulted.
  270.  
  271.   - 'git diff :tracked-file `pwd`/an-untracked-file' gave an extra
  272.     slashes after a/ and b/.
  273.  
  274.   - 'git format-patch' produced too long filenames if the commit
  275.     message had too long line at the beginning.
  276.  
  277.   - Running 'make all' and then without changing anything
  278.     running 'make install' still rebuilt some files.  This
  279.     was inconvenient when building as yourself and then
  280.     installing as root (especially problematic when the source
  281.     directory is on NFS and root is mapped to nobody).
  282.  
  283.   - 'git-rerere' failed to deal with two unconflicted paths that
  284.     sorted next to each other.
  285.  
  286.   - 'git-rerere' attempted to open(2) a symlink and failed if
  287.     there was a conflict.  Since a conflicting change to a
  288.     symlink would not benefit from rerere anyway, the command
  289.     now ignores conflicting changes to symlinks.
  290.  
  291.   - 'git-repack' did not like to pass more than 64 arguments
  292.     internally to underlying 'rev-list' logic, which made it
  293.     impossible to repack after accumulating many (small) packs
  294.     in the repository.
  295.  
  296.   - 'git-diff' to review the combined diff during a conflicted
  297.     merge were not reading the working tree version correctly
  298.     when changes to a symbolic link conflicted.  It should have
  299.     read the data using readlink(2) but read from the regular
  300.     file the symbolic link pointed at.
  301.  
  302.   - 'git-remote' did not like period in a remote's name.
  303.  
  304.   - 'git.el' honors the commit coding system from the configuration.
  305.  
  306.   - 'blameview' in contrib/ correctly digs deeper when a line is
  307.     clicked.
  308.  
  309.   - 'http-push' correctly makes sure the remote side has leading
  310.     path.  Earlier it started in the middle of the path, and
  311.     incorrectly.
  312.  
  313.   - 'git-merge' did not exit with non-zero status when the
  314.     working tree was dirty and cannot fast forward.  It does
  315.     now.
  316.  
  317.   - 'cvsexportcommit' does not lose yet-to-be-used message file.
  318.  
  319.   - int-vs-size_t typefix when running combined diff on files
  320.     over 2GB long.
  321.  
  322.   - 'git apply --whitespace=strip' should not touch unmodified
  323.     lines.
  324.  
  325.   - 'git-mailinfo' choke when a logical header line was too long.
  326.  
  327.   - 'git show A..B' did not error out.  Negative ref ("not A" in
  328.     this example) does not make sense for the purpose of the
  329.     command, so now it errors out.
  330.  
  331.   - 'git fmt-merge-msg --file' without file parameter did not
  332.     correctly error out.
  333.  
  334.   - 'git archimport' barfed upon encountering a commit without
  335.     summary.
  336.  
  337.   - 'git index-pack' did not protect itself from getting a short
  338.     read out of pread(2).
  339.  
  340.   - 'git http-push' had a few buffer overruns.
  341.  
  342.   - Build dependency fixes to rebuild fetch.o when other headers
  343.     change.
  344.  
  345.   - git.el does not add duplicate sign-off lines.
  346.  
  347.   - git-commit shows the full stat of the resulting commit, not
  348.     just about the files in the current directory, when run from
  349.     a subdirectory.
  350.  
  351.   - "git-checkout -m '@{8 hours ago}'" had a funny failure from
  352.     eval; fixed.
  353.  
  354.   - git-merge (hence git-pull) did not refuse fast-forwarding
  355.     when the working tree had local changes that would have
  356.     conflicted with it.
  357.  
  358.   - a handful small fixes to gitweb.
  359.  
  360.   - build procedure for user-manual is fixed not to require locally
  361.     installed stylesheets.
  362.  
  363.   - "git commit $paths" on paths whose earlier contents were
  364.     already updated in the index were failing out.
  365.  
  366.  
  367. * Tweaks
  368.  
  369.   - sliding mmap() inefficiently mmaped the same region of a
  370.     packfile with an access pattern that used objects in the
  371.     reverse order.  This has been made more efficient.
  372.