Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Commits on May 19, 2015
  1. Third batch for 2.5 cycle

    Signed-off-by: Junio C Hamano <>
  2. Merge branch 'sb/ref-lock-lose-lock-fd'

    The refs API uses ref_lock struct which had its own "int fd", even
    though the same file descriptor was in the lock struct it contains.
    Clean-up the code to lose this redundant field.
    * sb/ref-lock-lose-lock-fd:
      refs.c: remove lock_fd from struct ref_lock
  3. Merge branch 'kn/cat-file-literally'

    Add the "--allow-unknown-type" option to "cat-file" to allow
    inspecting loose objects of an experimental or a broken type.
    * kn/cat-file-literally:
      t1006: add tests for git cat-file --allow-unknown-type
      cat-file: teach cat-file a '--allow-unknown-type' option
      cat-file: make the options mutually exclusive
      sha1_file: support reading from a loose object of unknown type
  4. Merge branch 'nd/dwim-wildcards-as-pathspecs'

    A heuristic to help the "git <cmd> <revs> <pathspec>" command line
    convention to catch mistyped paths is to make sure all the non-rev
    parameters in the later part of the command line are names of the
    files in the working tree, but that means "git grep $str -- \*.c"
    must always be disambiguated with "--", because nobody sane will
    create a file whose name literally is asterisk-dot-see.  Loosen the
    heuristic to declare that with a wildcard string the user likely
    meant to give us a pathspec.
    * nd/dwim-wildcards-as-pathspecs:
      pathspec: avoid the need of "--" when wildcard is used
  5. Merge branch 'jc/merge'

    "git merge FETCH_HEAD" learned that the previous "git fetch" could
    be to create an Octopus merge, i.e. recording multiple branches
    that are not marked as "not-for-merge"; this allows us to lose an
    old style invocation "git merge <msg> HEAD $commits..." in the
    implementation of "git pull" script; the old style syntax can now
    be deprecated.
    * jc/merge:
      merge: deprecate 'git merge <message> HEAD <commit>' syntax
      merge: handle FETCH_HEAD internally
      merge: decide if we auto-generate the message early in collect_parents()
      merge: make collect_parents() auto-generate the merge message
      merge: extract prepare_merge_message() logic out
      merge: narrow scope of merge_names
      merge: split reduce_parents() out of collect_parents()
      merge: clarify collect_parents() logic
      merge: small leakfix and code simplification
      merge: do not check argc to determine number of remote heads
      merge: clarify "pulling into void" special case
      t5520: test pulling an octopus into an unborn branch
      t5520: style fixes
      merge: simplify code flow
      merge: test the top-level merge driver
  6. Merge branch 'ph/rebase-i-redo'

    "git rebase -i" moved the "current" command from "todo" to "done" a
    bit too prematurely, losing a step when a "pick" did not even start.
    * ph/rebase-i-redo:
      rebase -i: redo tasks that die during cherry-pick
  7. Merge branch 'jc/test-prereq-validate'

    Help us to find broken test script that splits the body part of the
    test by mistaken use of wrong kind of quotes.
    * jc/test-prereq-validate:
      test: validate prerequistes syntax
  8. Merge branch 'bc/connect-plink'

    The connection initiation code for "ssh" transport tried to absorb
    differences between the stock "ssh" and Putty-supplied "plink" and
    its derivatives, but the logic to tell that we are using "plink"
    variants were too loose and falsely triggered when "plink" appeared
    anywhere in the path (e.g. "/home/me/bin/uplink/ssh").
    * bc/connect-plink:
      connect: improve check for plink to reduce false positives
      t5601: fix quotation error leading to skipped tests
      connect: simplify SSH connection code path
  9. Merge branch 'jk/test-chain-lint'

    Developer support to automatically detect broken &&-chain in the
    test scripts is now turned on by default.
    * jk/test-chain-lint:
      test-lib: turn on GIT_TEST_CHAIN_LINT by default fix a broken and-chain
  10. Merge branch 'fg/document-commit-message-stripping'

    * fg/document-commit-message-stripping:
      Documentation: clarify how "git commit" cleans up the edited log message
  11. Merge branch 'jk/stash-require-clean-index'

    "git stash pop/apply" forgot to make sure that not just the working
    tree is clean but also the index is clean. The latter is important
    as a stash application can conflict and the index will be used for
    conflict resolution.
    * jk/stash-require-clean-index:
      stash: require a clean index to apply
      t3903: avoid applying onto dirty index
      t3903: stop hard-coding commit sha1s
  12. Merge branch 'jk/git-no-more-argv0-path-munging'

    We have prepended $GIT_EXEC_PATH and the path "git" is installed in
    (typically "/usr/bin") to $PATH when invoking subprograms and hooks
    for almost eternity, but the original use case the latter tried to
    support was semi-bogus (i.e. install git to /opt/foo/git and run it
    without having /opt/foo on $PATH), and more importantly it has
    become less and less relevant as Git grew more mainstream (i.e. the
    users would _want_ to have it on their $PATH).  Stop prepending the
    path in which "git" is installed to users' $PATH, as that would
    interfere the command search order people depend on (e.g. they may
    not like versions of programs that are unrelated to Git in /usr/bin
    and want to override them by having different ones in /usr/local/bin
    and have the latter directory earlier in their $PATH).
    * jk/git-no-more-argv0-path-munging:
      stop putting argv[0] dirname at front of PATH
  13. Merge branch 'jc/gitignore-precedence'

    core.excludesfile (defaulting to $XDG_HOME/git/ignore) is supposed
    to be overridden by repository-specific .git/info/exclude file, but
    the order was swapped from the beginning. This belatedly fixes it.
    * jc/gitignore-precedence:
      ignore: info/exclude should trump core.excludesfile
  14. Merge branch 'nd/diff-i-t-a'

    After "git add -N", the path appeared in output of "git diff HEAD"
    and "git diff --cached HEAD", leading "git status" to classify it
    as "Changes to be committed".  Such a path, however, is not yet to
    be scheduled to be committed.  "git diff" showed the change to the
    path as modification, not as a "new file", in the header of its
    Treat such paths as "yet to be added to the index but Git already
    know about them"; "git diff HEAD" and "git diff --cached HEAD"
    should not talk about them, and "git diff" should show them as new
    files yet to be added to the index.
    * nd/diff-i-t-a:
      diff-lib.c: adjust position of i-t-a entries in diff
Commits on May 13, 2015
  1. Sync with 2.4.1

    * maint:
      Git 2.4.1
  2. Git 2.4.1

    Signed-off-by: Junio C Hamano <>
  3. Merge branch 'sb/line-log-plug-pairdiff-leak' into maint

    * sb/line-log-plug-pairdiff-leak:
      line-log.c: fix a memleak
  4. Merge branch 'sb/test-bitmap-free-at-end' into maint

    * sb/test-bitmap-free-at-end:
      pack-bitmap.c: fix a memleak
  5. Merge branch 'nd/t1509-chroot-test' into maint

    Correct test bitrot.
    * nd/t1509-chroot-test:
      t1509: update prepare script to be able to run t1509 in chroot again
  6. Merge branch 'jk/type-from-string-gently' into maint

    "git cat-file bl $blob" failed to barf even though there is no
    object type that is "bl".
    * jk/type-from-string-gently:
      type_from_string_gently: make sure length matches
  7. Merge branch 'ep/fix-test-lib-functions-report' into maint

    * ep/fix-test-lib-functions-report: fix the second argument to some helper functions
  8. Merge branch 'cn/bom-in-gitignore' into maint

    Teach the codepaths that read .gitignore and .gitattributes files
    that these files encoded in UTF-8 may have UTF-8 BOM marker at the
    beginning; this makes it in line with what we do for configuration
    files already.
    * cn/bom-in-gitignore:
      attr: skip UTF8 BOM at the beginning of the input file
      config: use utf8_bom[] from utf.[ch] in git_parse_source()
      utf8-bom: introduce skip_utf8_bom() helper
      add_excludes_from_file: clarify the bom skipping logic
      dir: allow a BOM at the beginning of exclude files
  9. Merge branch 'jk/prune-mtime' into maint

    Access to objects in repositories that borrow from another one on a
    slow NFS server unnecessarily got more expensive due to recent code
    becoming more cautious in a naive way not to lose objects to pruning.
    * jk/prune-mtime:
      sha1_file: only freshen packs once per run
      sha1_file: freshen pack objects before loose
      reachable: only mark local objects as recent
  10. Merge branch 'jk/init-core-worktree-at-root' into maint

    We avoid setting core.worktree when the repository location is the
    ".git" directory directly at the top level of the working tree, but
    the code misdetected the case in which the working tree is at the
    root level of the filesystem (which arguably is a silly thing to
    do, but still valid).
    * jk/init-core-worktree-at-root:
      init: don't set core.worktree when initializing /.git
Commits on May 11, 2015
  1. Merge branch 'maint'

    * maint:
      Git 2.3.8
  2. Sync with 2.3.8

    Signed-off-by: Junio C Hamano <>
  3. Git 2.3.8

    Signed-off-by: Junio C Hamano <>
  4. Merge branch 'mm/usage-log-l-can-take-regex' into maint-2.3

    Documentation fix.
    * mm/usage-log-l-can-take-regex:
      log -L: improve error message on malformed argument
      Documentation: change -L:<regex> to -L:<funcname>
  5. Merge branch 'jc/diff-no-index-d-f' into maint-2.3

    The usual "git diff" when seeing a file turning into a directory
    showed a patchset to remove the file and create all files in the
    directory, but "git diff --no-index" simply refused to work.  Also,
    when asked to compare a file and a directory, imitate POSIX "diff"
    and compare the file with the file with the same name in the
    directory, instead of refusing to run.
    * jc/diff-no-index-d-f:
      diff-no-index: align D/F handling with that of normal Git
      diff-no-index: DWIM "diff D F" into "diff D/F F"
  6. Merge branch 'oh/fix-config-default-user-name-section' into maint-2.3

    The default $HOME/.gitconfig file created upon "git config --global"
    that edits it had incorrectly spelled and
    entries in it.
    * oh/fix-config-default-user-name-section:
      config: fix settings in default_user_config template
  7. Merge branch 'jc/epochtime-wo-tz' into maint-2.3

    "git commit --date=now" or anything that relies on approxidate lost
    the daylight-saving-time offset.
    * jc/epochtime-wo-tz:
      parse_date_basic(): let the system handle DST conversion
      parse_date_basic(): return early when given a bogus timestamp
  8. Second batch for 2.5 cycle

    Signed-off-by: Junio C Hamano <>
  9. Merge branch 'pt/xdg-config-path'

    Code clean-up for xdg configuration path support.
    * pt/xdg-config-path:
      path.c: remove home_config_paths()
      git-config: replace use of home_config_paths()
      git-commit: replace use of home_config_paths()
      credential-store.c: replace home_config_paths() with xdg_config_home()
      dir.c: replace home_config_paths() with xdg_config_home()
      attr.c: replace home_config_paths() with xdg_config_home()
      path.c: implement xdg_config_home()
  10. Merge branch 'ep/do-not-feed-a-pointer-to-array-size'

    Catch a programmer mistake to feed a pointer not an array to
    ARRAY_SIZE() macro, by using a couple of GCC extensions.
    * ep/do-not-feed-a-pointer-to-array-size:
      git-compat-util.h: implement a different ARRAY_SIZE macro for for safely deriving the size of array
  11. Merge branch 'jc/hash-object'

    "hash-object --literally" introduced in v2.2 was not prepared to
    take a really long object type name.
    * jc/hash-object:
      write_sha1_file(): do not use a separate sha1[] array
      t1007: add hash-object --literally tests
      hash-object --literally: fix buffer overrun with extra-long object type
      git-hash-object.txt: document --literally option
Something went wrong with that request. Please try again.