Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Commits on Mar 27, 2015
  1. Sync with maint

    * maint:
      Update mailmap to spell out "Alexander Kuleshov"
  2. Merge branch 'sb/leaks'

    * sb/leaks:
      http: release the memory of a http pack request as well
      read-cache: fix memleak
      add_to_index(): free unused cache-entry
      commit.c: fix a memory leak
      http-push: remove unneeded cleanup
      merge-recursive: fix memleaks
      merge-blobs.c: fix a memleak
      builtin/apply.c: fix a memleak
      update-index: fix a memleak
      read-cache: free cache entry in add_to_index in case of early return
  3. Merge branch 'jk/tag-h-column-is-a-listing-option' into maint

    "git tag -h" used to show the "--column" and "--sort" options
    that are about listing in a wrong section.
    * jk/tag-h-column-is-a-listing-option:
      tag: fix some mis-organized options in "-h" listing
  4. Merge branch 'jk/smart-http-hide-refs' into maint

    The transfer.hiderefs support did not quite work for smart-http
    * jk/smart-http-hide-refs:
      upload-pack: do not check NULL return of lookup_unknown_object
      upload-pack: fix transfer.hiderefs over smart-http
  5. Merge branch 'js/completion-ctags-pattern-substitution-fix' into maint

    The code that reads from the ctags file in the completion script
    (in contrib/) did not spell ${param/pattern/string} substitution
    correctly, which happened to work with bash but not with zsh.
    * js/completion-ctags-pattern-substitution-fix:
      contrib/completion: escape the forward slash in __git_match_ctag
  6. Update mailmap to spell out "Alexander Kuleshov"

    Signed-off-by: Junio C Hamano <>
Commits on Mar 26, 2015
  1. Git 2.4.0-rc0

    Signed-off-by: Junio C Hamano <>
  2. Merge branch 'jk/test-chain-lint'

    People often forget to chain the commands in their test together
    with &&, leaving a failure from an earlier command in the test go
    unnoticed.  The new GIT_TEST_CHAIN_LINT mechanism allows you to
    catch such a mistake more easily.
    * jk/test-chain-lint: (36 commits)
      t9001: drop save_confirm helper
      t0020: use test_* helpers instead of hand-rolled messages
      t: simplify loop exit-code status variables
      t: fix some trivial cases of ignored exit codes in loops
      t7701: fix ignored exit code inside loop
      t3305: fix ignored exit code inside loop
      t0020: fix ignored exit code inside loops
      perf-lib: fix ignored exit code inside loop
      t6039: fix broken && chain
      t9158, t9161: fix broken &&-chain in git-svn tests
      t9104: fix test for following larger parents
      t4104: drop hand-rolled error reporting
      t0005: fix broken &&-chains
      t7004: fix embedded single-quotes
      t0050: appease --chain-lint
      t9001: use test_when_finished
      t4117: use modern test_* helpers
      t6034: use modern test_* helpers
      t1301: use modern test_* helpers
      t0020: use modern test_* helpers
  3. Merge branch 'sg/completion-gitcomp-nl-for-refs'

    Code clean-up.
    * sg/completion-gitcomp-nl-for-refs:
      completion: use __gitcomp_nl() for completing refs
  4. Merge branch 'jc/report-path-error-to-dir'

    Code clean-up.
    * jc/report-path-error-to-dir:
      report_path_error(): move to dir.c
Commits on Mar 25, 2015
  1. Getting ready for -rc0

    Signed-off-by: Junio C Hamano <>
  2. Merge branch 'nd/doc-git-index-version'

    Doc clean-up.
    * nd/doc-git-index-version:
      git.txt: list index versions in plain English
  3. Merge branch 'jk/run-command-capture'

    The run-command interface was easy to abuse and make a pipe for us
    to read from the process, wait for the process to finish and then
    attempt to read its output, which is a pattern that lead to a
    deadlock.  Fix such uses by introducing a helper to do this
    correctly (i.e. we need to read first and then wait the process to
    finish) and also add code to prevent such abuse in the run-command
    * jk/run-command-capture:
      run-command: forbid using run_command with piped output
      trailer: use capture_command
      submodule: use capture_command
      wt-status: use capture_command
      run-command: introduce capture_command helper
      wt_status: fix signedness mismatch in strbuf_read call
      wt-status: don't flush before running "submodule status"
  4. Merge branch 'tg/test-index-v4'

    A test fix.
    * tg/test-index-v4:
      t1700: make test pass with index-v4
  5. Merge branch 'jk/prune-with-corrupt-refs'

    "git prune" used to largely ignore broken refs when deciding which
    objects are still being used, which could spread an existing small
    damage and make it a larger one.
    * jk/prune-with-corrupt-refs:
      refs.c: drop curate_packed_refs
      repack: turn on "ref paranoia" when doing a destructive repack
      prune: turn on ref_paranoia flag
      refs: introduce a "ref paranoia" flag
      t5312: test object deletion code paths in a corrupted repository
  6. Merge branch 'tg/fix-check-order-with-split-index'

    The split-index mode introduced at v2.3.0-rc0~41 was broken in the
    codepath to protect us against a broken reimplementation of Git
    that writes an invalid index with duplicated index entries, etc.
    * tg/fix-check-order-with-split-index:
      read-cache: fix reading of split index
  7. Merge branch 'jk/fetch-pack'

    "git fetch" that fetches a commit using the allow-tip-sha1-in-want
    extension could have failed to fetch all the requested refs.
    * jk/fetch-pack:
      fetch-pack: remove dead assignment to ref->new_sha1
      fetch_refs_via_pack: free extra copy of refs
      filter_ref: make a copy of extra "sought" entries
      filter_ref: avoid overwriting ref->old_sha1 with garbage
  8. Merge branch 'jk/cleanup-failed-clone'

    An failure early in the "git clone" that started creating the
    working tree and repository could have resulted in some directories
    and files left without getting cleaned up.
    * jk/cleanup-failed-clone:
      clone: drop period from end of die_errno message
      clone: initialize atexit cleanup handler earlier
  9. Merge branch 'jc/submitting-patches-mention-send-email'

    Recommend format-patch and send-email for those who want to submit
    patches to this project.
    * jc/submitting-patches-mention-send-email:
      SubmittingPatches: encourage users to use format-patch and send-email
  10. Merge branch 'dj/log-graph-with-no-walk'

    "git log --graph --no-walk A B..." is a otcnflicting request that
    asks nonsense; no-walk tells us show discrete points in the
    history, while graph asks to draw connections between these
    discrete points. Forbid the combination.
    * dj/log-graph-with-no-walk:
      revision: forbid combining --graph and --no-walk
  11. Merge branch 'kd/rev-list-bisect-first-parent'

    "git rev-list --bisect --first-parent" does not work (yet) and can
    even cause SEGV; forbid it.  "git log --bisect --first-parent"
    would not be useful until "git bisect --first-parent" materializes,
    so it is also forbidden for now.
    * kd/rev-list-bisect-first-parent:
      rev-list: refuse --first-parent combined with --bisect
  12. Merge branch 'ws/grep-quiet-no-pager'

    Even though "git grep --quiet" is run merely to ask for the exit
    status, we spawned the pager regardless.  Stop doing that.
    * ws/grep-quiet-no-pager:
      grep: fix "--quiet" overwriting current output
  13. Merge branch 'jk/simplify-csum-file-sha1fd-check'

    Code simplification.
    * jk/simplify-csum-file-sha1fd-check:
      sha1fd_check: die when we cannot open the file
  14. Merge branch 'ct/prompt-untracked-fix'

    The prompt script (in contrib/) did not show the untracked sign
    when working in a subdirectory without any untracked files.
    * ct/prompt-untracked-fix:
      git prompt: use toplevel to find untracked files
  15. @peff

    t9001: drop save_confirm helper

    peff authored committed
    The idea of this helper is that we want to save the current
    value of a config variable and then restore it again after
    the test completes. However, there's no point in actually
    saving the value; it should always be restored to the string
    "never" (which you can confirm by instrumenting
    save_confirm to print the value it finds).
    Let's just replace it with a single test_when_finished call.
    Suggested-by: SZEDER Gábor <>
    Signed-off-by: Jeff King <>
    Signed-off-by: Junio C Hamano <>
  16. @peff

    t0020: use test_* helpers instead of hand-rolled messages

    peff authored committed
    These tests are not wrong, but it is much shorter and more
    idiomatic to say "verbose" or "test_must_fail" rather than
    printing our own messages on failure. Likewise, there is no
    need to say "happy" at the end of a test; the test suite
    takes care of that.
    Signed-off-by: Jeff King <>
    Signed-off-by: Junio C Hamano <>
  17. @peff

    t: simplify loop exit-code status variables

    peff authored committed
    Since shell loops may drop the exit code of failed commands
    inside the loop, some tests try to keep track of the status
    by setting a variable. This can end up cumbersome and hard
    to read; it is much simpler to just exit directly from the
    loop using "return 1" (since each case is either in a helper
    function or inside a test snippet).
    Signed-off-by: Jeff King <>
    Signed-off-by: Junio C Hamano <>
  18. @peff

    t: fix some trivial cases of ignored exit codes in loops

    peff authored committed
    These are all cases where we do a setup step of the form:
      for i in $foo; do
    	  set_up $i || break
      done &&
    would not notice a failure in set_up (because break always
    returns a 0 exit code). These are just setup steps that we
    do not expect to fail, but it does not hurt to be defensive.
    Most can be fixed by converting the "break" to a "return 1"
    (since we eval our tests inside a function for just this
    purpose). A few of the loops are inside subshells, so we can
    use just "exit 1" to break out of the subshell. And a few
    can actually be made shorter by just unrolling the loop.
    Signed-off-by: Jeff King <>
    Signed-off-by: Junio C Hamano <>
  19. @peff

    t7701: fix ignored exit code inside loop

    peff authored committed
    When checking a list of file mtimes, we use a loop and break
    out early from the loop if any entry does not match.
    However, the exit code of a loop exited via break is always
    0, meaning that the test will fail to notice we had a
    mismatch. Since the loop is inside a function, we can fix
    this by doing an early "return 1".
    Signed-off-by: Jeff King <>
    Signed-off-by: Junio C Hamano <>
  20. @peff

    t3305: fix ignored exit code inside loop

    peff authored committed
    When we test deleting notes, we run "git notes remove" in a
    loop. However, the exit value of the loop will only reflect
    the final note we process. We should break out of the loop
    with a failing exit code as soon as we see a problem.
    Note that we can call "exit 1" here without explicitly
    creating a subshell, because the while loop on the
    right-hand side of a pipe executes in its own implicit
    Note also that the "break" above does not suffer the same
    problem; it is meant to exit the loop early at a certain
    number of iterations. We can bump it into the conditional of
    the loop to make this more obvious.
    Signed-off-by: Jeff King <>
    Acked-by: Johan Herland <>
    Signed-off-by: Junio C Hamano <>
  21. @peff

    t0020: fix ignored exit code inside loops

    peff authored committed
    A loop like:
      for f in one two; do
    	  something $f ||
    will correctly break out of the loop when we see a failure
    of one item, but the resulting exit code will always be
    zero. We can fix that by putting the loop into a function or
    subshell, but in this case it is simpler still to just
    unroll the loop. We do add a helper function, which
    hopefully makes the end result even more readable (in
    addition to being shorter).
    Reported-by: SZEDER Gábor <>
    Signed-off-by: Jeff King <>
    Signed-off-by: Junio C Hamano <>
  22. @peff

    perf-lib: fix ignored exit code inside loop

    peff authored committed
    When copying the test repository, we try to detect whether
    the copy succeeded. However, most of the heavy lifting is
    done inside a for loop, where our "break" will lose the exit
    code of the failing "cp". We can take advantage of the fact
    that we are in a subshell, and just "exit 1" to break out
    with a code.
    Signed-off-by: Jeff King <>
    Signed-off-by: Junio C Hamano <>
Commits on Mar 24, 2015
  1. Merge branch 'master' of git://

    * 'master' of git://
      gitk: Update .po files
      gitk: l10n: Add Catalan translation
      gitk: Fix typo in Russian translation
      gitk: Remove tcl-format flag from a message that shouldn't have it
      gitk: Pass --invert-grep option down to "git log"
      gitk: Synchronize config file writes
      gitk: Report errors in saving config file
      gitk: Only write changed configuration variables
      gitk: Enable mouse horizontal scrolling in diff pane
      gitk: Default wrcomcmd to use --pretty=email
  2. report_path_error(): move to dir.c

    The expected call sequence is for the caller to use match_pathspec()
    repeatedly on a set of pathspecs, accumulating the "hits" in a
    separate array, and then call this function to diagnose a pathspec
    that never matched anything, as that can indicate a typo from the
    command line, e.g. "git commit Maekfile".
    Many builtin commands use this function from builtin/ls-files.c,
    which is not a very healthy arrangement.  ls-files might have been
    the first command to feel the need for such a helper, but the need
    is shared by everybody who uses the "match and then report" pattern.
    Move it to dir.c where match_pathspec() is defined.
    Signed-off-by: Junio C Hamano <>
  3. @stefanbeller

    http: release the memory of a http pack request as well

    stefanbeller authored committed
    The cleanup function is used in 4 places now and it's always safe to
    free up the memory as well.
    Signed-off-by: Stefan Beller <>
    Signed-off-by: Junio C Hamano <>
Something went wrong with that request. Please try again.