Home Explore Blog CI



git

5th chunk of `Documentation/RelNotes/1.5.1.adoc`
9c30e82a0308ef872351dce4af5dc0fcb6a8e98c8aaecb630000000100000cf8
 the beginning.

  - Running 'make all' and then without changing anything
    running 'make install' still rebuilt some files.  This
    was inconvenient when building as yourself and then
    installing as root (especially problematic when the source
    directory is on NFS and root is mapped to nobody).

  - 'git-rerere' failed to deal with two unconflicted paths that
    sorted next to each other.

  - 'git-rerere' attempted to open(2) a symlink and failed if
    there was a conflict.  Since a conflicting change to a
    symlink would not benefit from rerere anyway, the command
    now ignores conflicting changes to symlinks.

  - 'git-repack' did not like to pass more than 64 arguments
    internally to underlying 'rev-list' logic, which made it
    impossible to repack after accumulating many (small) packs
    in the repository.

  - 'git-diff' to review the combined diff during a conflicted
    merge were not reading the working tree version correctly
    when changes to a symbolic link conflicted.  It should have
    read the data using readlink(2) but read from the regular
    file the symbolic link pointed at.

  - 'git-remote' did not like period in a remote's name.

  - 'git.el' honors the commit coding system from the configuration.

  - 'blameview' in contrib/ correctly digs deeper when a line is
    clicked.

  - 'http-push' correctly makes sure the remote side has leading
    path.  Earlier it started in the middle of the path, and
    incorrectly.

  - 'git-merge' did not exit with non-zero status when the
    working tree was dirty and cannot fast forward.  It does
    now.

  - 'cvsexportcommit' does not lose yet-to-be-used message file.

  - int-vs-size_t typefix when running combined diff on files
    over 2GB long.

  - 'git apply --whitespace=strip' should not touch unmodified
    lines.

  - 'git-mailinfo' choke when a logical header line was too long.

  - 'git show A..B' did not error out.  Negative ref ("not A" in
    this example) does not make sense for the purpose of the
    command, so now it errors out.

  - 'git fmt-merge-msg --file' without file parameter did not
    correctly error out.

  - 'git archimport' barfed upon encountering a commit without
    summary.

  - 'git index-pack' did not protect itself from getting a short
    read out of pread(2).

  - 'git http-push' had a few buffer overruns.

  - Build dependency fixes to rebuild fetch.o when other headers
    change.

  - git.el does not add duplicate sign-off lines.

  - git-commit shows the full stat of the resulting commit, not
    just about the files in the current directory, when run from
    a subdirectory.

  - "git-checkout -m '@{8 hours ago}'" had a funny failure from
    eval; fixed.

  - git-merge (hence git-pull) did not refuse fast-forwarding
    when the working tree had local changes that would have
    conflicted with it.

  - a handful small fixes to gitweb.

  - build procedure for user-manual is fixed not to require locally
    installed stylesheets.

  - "git commit $paths" on paths whose earlier contents were
    already updated in the index were failing out.


* Tweaks

  - sliding mmap() inefficiently mmaped the same region of a
    packfile with an access pattern that used objects in the
    reverse order.  This has been made more efficient.

Title: Git Bug Fixes and Improvements
Summary
This section outlines numerous bug fixes and enhancements to various Git commands, including git-rerere, git-repack, git-diff, and git-merge, as well as improvements to git.el, gitweb, and the build procedure, to increase stability, functionality, and efficiency.