Home Explore Blog CI



git

2nd chunk of `Documentation/RelNotes/1.5.1.adoc`
edd02c7958e7aa2f39f2f3259b1495017647cc068124cfae0000000100000fa1
 takes a script
    to run after each revision is checked out to determine if it
    is good or bad, to automate the bisection process.

  - "git log" family learned a new traversal option --first-parent,
    which does what the name suggests.


* Updated behavior of existing commands.

  - "git-merge-recursive" used to barf when there are more than
    one common ancestors for the merge, and merging them had a
    rename/rename conflict.  This has been fixed.

  - "git fsck" does not barf on corrupt loose objects.

  - "git rm" does not remove newly added files without -f.

  - "git archimport" allows remapping when coming up with git
    branch names from arch names.

  - git-svn got almost a rewrite.

  - core.autocrlf configuration, when set to 'true', makes git
    to convert CRLF at the end of lines in text files to LF when
    reading from the filesystem, and convert in reverse when
    writing to the filesystem.  The variable can be set to
    'input', in which case the conversion happens only while
    reading from the filesystem but files are written out with
    LF at the end of lines.  Currently, which paths to consider
    'text' (i.e. be subjected to the autocrlf mechanism) is
    decided purely based on the contents, but the plan is to
    allow users to explicitly override this heuristic based on
    paths.

  - The behavior of 'git-apply', when run in a subdirectory,
    without --index nor --cached were inconsistent with that of
    the command with these options.  This was fixed to match the
    behavior with --index.  A patch that is meant to be applied
    with -p1 from the toplevel of the project tree can be
    applied with any custom -p<n> option.  A patch that is not
    relative to the toplevel needs to be applied with -p<n>
    option with or without --index (or --cached).

  - "git diff" outputs a trailing HT when pathnames have embedded
    SP on +++/--- header lines, in order to help "GNU patch" to
    parse its output.  "git apply" was already updated to accept
    this modified output format since ce74618d (Sep 22, 2006).

  - "git cvsserver" runs hooks/update and honors its exit status.

  - "git cvsserver" can be told to send everything with -kb.

  - "git diff --check" also honors the --color output option.

  - "git name-rev" used to stress the fact that a ref is a tag too
    much, by saying something like "v1.2.3^0~22".  It now says
    "v1.2.3~22" in such a case (it still says "v1.2.3^0" if it does
    not talk about an ancestor of the commit that is tagged, which
    makes sense).

  - "git rev-list --boundary" now shows boundary markers for the
    commits omitted by --max-age and --max-count condition.

  - The configuration mechanism now reads $(prefix)/etc/gitconfig.

  - "git apply --verbose" shows what preimage lines were wanted
    when it couldn't find them.

  - "git status" in a read-only repository got a bit saner.

  - "git fetch" (hence "git clone" and "git pull") are less
    noisy when the output does not go to tty.

  - "git fetch" between repositories with many refs were slow
    even when there are not many changes that needed
    transferring.  This has been sped up by partially rewriting
    the heaviest parts in C.

  - "git mailinfo" which splits an e-mail into a patch and the
    meta-information was rewritten, thanks to Don Zickus.  It
    handles nested multipart better.  The command was broken for
    a brief period on 'master' branch since 1.5.0 but the
    breakage is fixed now.

  - send-email learned configurable bcc and chain-reply-to.

  - "git remote show $remote" also talks about branches that
    would be pushed if you run "git push remote".

  - Using objects from packs is now seriously optimized by clever
    use of a cache.  This should be most noticeable in git-log
    family of commands that involve reading many tree objects.
    In addition, traversing revisions while filtering changes
    with pathspecs is made faster by terminating the comparison

Title: GIT v1.5.1 Release Notes (Continued)
Summary
This section of the release notes continues to detail updates and improvements to existing GIT commands, including fixes for merge conflicts, improved performance for various operations, and new features such as automated bisection and customizable email settings.