Commits on Jul 30, 2012
  1. @gitster

    Git 1.7.11.4

    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    gitster committed Jul 30, 2012
  2. @gitster

    Merge branch 'jk/maint-commit-document-editmsg' into maint

    "$GIT_DIR/COMMIT_EDITMSG" file that is used to hold the commit log
    message user edits was not documented.
    
    * jk/maint-commit-document-editmsg:
      commit: document the temporary commit message file
    gitster committed Jul 30, 2012
  3. @gitster

    Merge branch 'jk/maint-advise-vaddf' into maint

    The advise() function did not use varargs correctly to format
    its message.
    
    * jk/maint-advise-vaddf:
      advice: pass varargs to strbuf_vaddf, not strbuf_addf
    gitster committed Jul 30, 2012
  4. @gitster

    Merge branch 'kk/maint-commit-tree' into maint

    "git commit-tree" learned a more natural "-p <parent> <tree>" order
    of arguments long time ago, but recently forgot it by mistake.
    
    * kk/maint-commit-tree:
      Revert "git-commit-tree(1): update synopsis"
      commit-tree: resurrect command line parsing updates
    gitster committed Jul 30, 2012
  5. @gitster

    Merge branch 'jv/maint-no-ext-diff' into maint

    "git diff --no-ext-diff" did not output anything for a typechange
    filepair when GIT_EXTERNAL_DIFF is in effect.
    
    * jv/maint-no-ext-diff:
      diff: test precedence of external diff drivers
      diff: correctly disable external_diff with --no-ext-diff
    gitster committed Jul 30, 2012
  6. @gitster

    Merge branch 'pg/maint-1.7.9-am-where-is-patch' into maint

    When "git am" failed, old timers knew to check .git/rebase-apply/patch
    to see what went wrong, but we never told the users about it.
    
    * pg/maint-1.7.9-am-where-is-patch:
      am: indicate where a failed patch is to be found
    gitster committed Jul 30, 2012
  7. @gitster

    Merge branch 'jl/maint-1.7.10-recurse-submodules-with-symlink' into m…

    …aint
    
    When "git submodule add" clones a submodule repository, it can get
    confused where to store the resulting submodule repository in the
    superproject's .git/ directory when there is a symbolic link in the
    path to the current directory.
    
    * jl/maint-1.7.10-recurse-submodules-with-symlink:
      submodules: don't stumble over symbolic links when cloning recursively
    gitster committed Jul 30, 2012
  8. @gitster

    Merge branch 'jc/maint-filter-branch-epoch-date' into maint

    In 1.7.9 era, we taught "git rebase" about the raw timestamp format
    but we did not teach the same trick to "filter-branch", which rolled
    a similar logic on its own.
    
    * jc/maint-filter-branch-epoch-date:
      t7003: add test to filter a branch with a commit at epoch
      date.c: Fix off by one error in object-header date parsing
      filter-branch: do not forget the '@' prefix to force git-timestamp
    gitster committed Jul 30, 2012
Commits on Jul 23, 2012
  1. @peff @gitster

    commit: document the temporary commit message file

    We do not document COMMIT_EDITMSG at all, but users may want
    to know about it for two reasons:
    
      1. They may want to tell their editor to configure itself
         for formatting a commit message.
    
      2. If a commit is aborted by an error, the user may want
         to recover the commit message they typed.
    
    Let's put a note in git-commit(1).
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    peff committed with gitster Jul 23, 2012
  2. @peff @gitster

    advice: pass varargs to strbuf_vaddf, not strbuf_addf

    The advise() function takes a variable number of arguments
    and converts them into a va_list object to pass to strbuf
    for handling. However, we accidentally called strbuf_addf
    (that takes a variable number of arguments) instead of
    strbuf_vaddf (that takes a va_list).
    
    This bug dates back to v1.7.8.1-1-g23cb5bf, but we never
    noticed because none of the current callers passes a string
    with a format specifier in it. And the compiler did not
    notice because the format string is not available at
    compile time.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    peff committed with gitster Jul 23, 2012
Commits on Jul 22, 2012
  1. @gitster

    Git 1.7.11.3

    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    gitster committed Jul 22, 2012
  2. @gitster

    Merge branch 'jk/push-delete-ref-error-message' into maint

    The error message from "git push $there :bogo" (and its equivalent
    "git push $there --delete bogo") mentioned that we tried and failed
    to guess what ref is being deleted based on the LHS of the refspec,
    which we don't.
    
    * jk/push-delete-ref-error-message:
      push: don't guess at qualifying remote refs on deletion
    gitster committed Jul 22, 2012
  3. @gitster

    Merge branch 'ar/clone-honor-umask-at-top' into maint

    A handful of files and directories we create had tighter than
    necessary permission bits when the user wanted to have group
    writability (e.g. by setting "umask 002").
    
    * ar/clone-honor-umask-at-top:
      add: create ADD_EDIT.patch with mode 0666
      rerere: make rr-cache fanout directory honor umask
      Restore umasks influence on the permissions of work tree created by clone
    gitster committed Jul 22, 2012
  4. @gitster

    Merge branch 'cw/amend-commit-without-message' into maint

    "commit --amend" used to refuse amending a commit with an empty log
    message, with or without "--allow-empty-message".
    
    * cw/amend-commit-without-message:
      Allow edit of empty message with commit --amend
    gitster committed Jul 22, 2012
  5. @gitster

    Merge branch 'jk/maint-commit-amend-only-no-paths' into maint

    "git commit --amend --only --" was meant to allow "Clever" people to
    rewrite the commit message without making any change even when they
    have already changes for the next commit added to their index, but
    it never worked as advertised since it was introduced in 1.3.0 era.
    
    * jk/maint-commit-amend-only-no-paths:
      commit: fix "--amend --only" with no pathspec
    gitster committed Jul 22, 2012
  6. @gitster

    Merge branch 'tg/maint-cache-name-compare' into maint

    Even though the index can record pathnames longer than 1<<12 bytes,
    in some places we were not comparing them in full, potentially
    replacing index entries instead of adding.
    
    * tg/maint-cache-name-compare:
      cache_name_compare(): do not truncate while comparing paths
    gitster committed Jul 22, 2012
  7. @gitster

    Merge branch 'tr/maint-show-walk' into maint

    "git show"'s auto-walking behaviour was an unreliable and
    unpredictable hack; it now behaves just like "git log" does when it
    walks.
    
    * tr/maint-show-walk:
      show: fix "range implies walking"
      Demonstrate git-show is broken with ranges
    gitster committed Jul 22, 2012
  8. @gitster

    Merge branch 'jc/refactor-diff-stdin' into maint

    "git diff", "git status" and anything that internally uses the
    comparison machinery was utterly broken when the difference
    involved a file with "-" as its name.  This was due to the way "git
    diff --no-index" was incorrectly bolted on to the system, making
    any comparison that involves a file "-" at the root level
    incorrectly read from the standard input.
    
    * jc/refactor-diff-stdin:
      diff-index.c: "git diff" has no need to read blob from the standard input
      diff-index.c: unify handling of command line paths
      diff-index.c: do not pretend paths are pathspecs
    gitster committed Jul 22, 2012
  9. @gitster

    Merge branch 'mz/empty-rebase-test' into maint

    We did not have test to make sure "git rebase" without extra options
    filters out an empty commit in the original history.
    
    * mz/empty-rebase-test:
      add test case for rebase of empty commit
    gitster committed Jul 22, 2012
  10. @gitster

    Merge branch 'js/fast-export-paths-with-spaces' into maint

    "git fast-export" produced an input stream for fast-import without
    properly quoting pathnames when they contain SPs in them.
    
    * js/fast-export-paths-with-spaces:
      fast-export: quote paths with spaces
    gitster committed Jul 22, 2012
  11. @gitster

    Merge branch 'cw/no-detaching-an-unborn' into maint

    "git checkout --detach", when you are still on an unborn branch,
    should be forbidden, but it wasn't.
    
    * cw/no-detaching-an-unborn:
      git-checkout: disallow --detach on unborn branch
    gitster committed Jul 22, 2012
  12. @gitster

    Merge branch 'vr/use-our-perl-in-tests' into maint

    Some implementations of Perl terminates "lines" with CRLF even when
    the script is operating on just a sequence of bytes.  Make sure to
    use "$PERL_PATH", the version of Perl the user told Git to use, in
    our tests to avoid unnecessary breakages in tests.
    
    * vr/use-our-perl-in-tests:
      t/README: add a bit more Don'ts
      tests: enclose $PERL_PATH in double quotes
      t/test-lib.sh: export PERL_PATH for use in scripts
      t: Replace 'perl' by $PERL_PATH
    gitster committed Jul 22, 2012
Commits on Jul 19, 2012
  1. @peff @gitster

    diff: test precedence of external diff drivers

    There are three ways to specify an external diff command:
    GIT_EXTERNAL_DIFF in the environment, diff.external in the
    config, or a "diff" gitattribute. The current order of
    precedence is:
    
      1. gitattribute
    
      2. GIT_EXTERNAL_DIFF
    
      3. diff.external
    
    Usually our rule is that environment variables should take
    precedence over on-disk config (i.e., option 2 should come
    before option 1). However, this situation is trickier than
    some, because option 1 is more specific to the individual
    file than option 2 (which affects all files), so it might be
    preferable. So the current behavior can be seen as
    implementing "do the specific thing if we can, but fall back
    to this general thing".
    
    This is probably not what we would do if we were writing git
    from scratch, but it has been this way for several years,
    and is not worth changing. So let's at least document that
    this is the way it's supposed to work with a test.
    
    While we're there, let's also make sure that diff.external
    (which was not previously tested at all) works by running it
    through the same tests as GIT_EXTERNAL_DIFF.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    peff committed with gitster Jul 19, 2012
Commits on Jul 18, 2012
  1. @gitster

    diff: correctly disable external_diff with --no-ext-diff

    Upon seeing a type-change filepair, "diff --no-ext-diff" does not
    show the usual "deletion followed by addition" split patch and does
    not run the external diff driver either.
    
    This is because the logic to disable external diff was placed at a
    wrong level in the callchain.  run_diff_cmd() decides to show the
    split patch only when external diff driver is not configured or
    specified via GIT_EXTERNAL_DIFF environment, but this is done before
    checking if --no-ext-diff was given.  To make things worse,
    run_diff_cmd() checks --no-ext-diff and disables the output for such
    a filepair completely, as the callchain below it (e.g. builtin_diff)
    does not want to handle typechange filepairs.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    gitster committed Jul 17, 2012
Commits on Jul 17, 2012
  1. @gitster

    Revert "git-commit-tree(1): update synopsis"

    This reverts commit d284367, which
    was done without realizing that the updated command line argument
    order was lost by mistake.
    gitster committed Jul 17, 2012
  2. @gitster

    Merge branch 'kk/maint-1.7.9-commit-tree' into kk/maint-commit-tree

    * kk/maint-1.7.9-commit-tree:
      commit-tree: resurrect command line parsing updates
    gitster committed Jul 17, 2012
  3. @gitster

    commit-tree: resurrect command line parsing updates

    79a9312 (commit-tree: update the command line parsing, 2011-11-09)
    updated the command line parser to understand the usual "flags first
    and then non-flag arguments" order, in addition to the original and
    a bit unusual "tree comes first and then zero or more -p <parent>".
    
    Unfortunately, ba3c69a (commit: teach --gpg-sign option, 2011-10-05)
    broke it by mistake.  Resurrect it, and protect the feature with a
    test from future breakages.
    
    Noticed by Keshav Kini
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    gitster committed Jul 17, 2012
Commits on Jul 13, 2012
  1. @paulgortmaker @gitster

    am: indicate where a failed patch is to be found

    If "git am" fails to apply something, the end user may need to know
    where to find the patch that failed to apply, so that the user can
    do other things (e.g. trying "GNU patch" on it, running "diffstat"
    to see what it tried to change, etc.)  The input to "am" may have
    contained more than one patch, or the message may have been MIME
    encoded, and knowing what the user fed to "am" does not help very
    much for this purpose.
    
    Also introduce advice.amworkdir configuration to allow people who
    learned where to look to squelch this message.
    
    Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    paulgortmaker committed with gitster Jul 13, 2012
Commits on Jul 12, 2012
  1. @gitster

    t7003: add test to filter a branch with a commit at epoch

    Running filter-branch on a history that has a commit with timestamp
    at epoch used to fail, but it should have been fixed.  Add test to
    make sure it won't break again.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    gitster committed Jul 12, 2012
  2. @gitster

    date.c: Fix off by one error in object-header date parsing

    It is perfectly OK for a valid decimal integer to begin with '9' but
    116eb3a (parse_date(): allow ancient git-timestamp, 2012-02-02) did
    not express the range correctly.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    gitster committed Jul 12, 2012
  3. @jlehmann @gitster

    submodules: don't stumble over symbolic links when cloning recursively

    Since 69c3051 (submodules: refactor computation of relative gitdir path)
    cloning a submodule recursively fails for nested submodules when a
    symbolic link is part of the path to the work tree of the superproject.
    
    This happens when module_clone() tries to find the relative paths between
    the work tree and the git dir. When a symbolic link in current $PWD points
    to a directory that is at a different level, then determining the number
    of "../" needed to traverse to the superproject's work tree leads to a
    wrong result.
    
    As there is no portable way to say "pwd -P", use cd_to_toplevel to remove
    the link from $PWD, which fixes this problem.
    
    A test for this issue has been added to t7406.
    
    Reported-by: Bob Halley <halley@play-bow.org>
    Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jlehmann committed with gitster Jul 12, 2012
Commits on Jul 11, 2012
  1. @gitster

    Git 1.7.11.2

    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    gitster committed Jul 11, 2012
  2. @gitster

    Merge branch 'jc/maint-blame-unique-abbrev' into maint

    "git blame" did not try to make sure that the abbreviated commit
    object names in its output are unique.
    
    * jc/maint-blame-unique-abbrev:
      blame: compute abbreviation width that ensures uniqueness
    gitster committed Jul 11, 2012
  3. @gitster

    Merge branch 'rj/platform-pread-may-be-thread-unsafe' into maint

    On Cygwin, the platform pread(2) is not thread safe, just like our own
    compat/ emulation, and cannot be used in the index-pack program.
    Makefile variable NO_THREAD_SAFE_PREAD can be defined to avoid use of
    this function in a threaded program.
    
    * rj/platform-pread-may-be-thread-unsafe:
      index-pack: Disable threading on cygwin
    gitster committed Jul 11, 2012
  4. @gitster

    Merge branch 'th/diff-no-index-fixes' into maint

    "git diff --no-index" did not correctly handle relative paths and
    did not correctly give exit codes when run under "--quiet" option.
    
    * th/diff-no-index-fixes:
      diff-no-index: exit(1) if 'diff --quiet <repo file> <external file>' finds changes
      diff: handle relative paths in no-index
    gitster committed Jul 11, 2012