1. 09 9月, 2016 22 次提交
    • J
      Merge branch 'hv/doc-commit-reference-style' into maint · 3e8e69a6
      Junio C Hamano 提交于
      A small doc update.
      
      * hv/doc-commit-reference-style:
        SubmittingPatches: use gitk's "Copy commit summary" format
        SubmittingPatches: document how to reference previous commits
      3e8e69a6
    • J
      Merge branch 'sg/reflog-past-root' into maint · b5abd302
      Junio C Hamano 提交于
      A small test clean-up for a topic introduced in v2.9.1 and later.
      
      * sg/reflog-past-root:
        t1410: remove superfluous 'git reflog' from the 'walk past root' test
      b5abd302
    • J
      Merge branch 'rs/mailinfo-lib' into maint · 71165f02
      Junio C Hamano 提交于
      Small code clean-up.
      
      * rs/mailinfo-lib:
        mailinfo: recycle strbuf in check_header()
      71165f02
    • J
      Merge branch 'jk/tighten-alloc' into maint · 9bef6422
      Junio C Hamano 提交于
      Small code and comment clean-up.
      
      * jk/tighten-alloc:
        receive-pack: use FLEX_ALLOC_MEM in queue_command()
        correct FLEXPTR_* example in comment
      9bef6422
    • J
      Merge branch 'rs/use-strbuf-add-unique-abbrev' into maint · 5e469ab6
      Junio C Hamano 提交于
      A small code clean-up.
      
      * rs/use-strbuf-add-unique-abbrev:
        use strbuf_add_unique_abbrev() for adding short hashes
      5e469ab6
    • J
      Merge branch 'rs/merge-recursive-string-list-init' into maint · f14883b9
      Junio C Hamano 提交于
      A small code clean-up.
      
      * rs/merge-recursive-string-list-init:
        merge-recursive: use STRING_LIST_INIT_NODUP
      f14883b9
    • J
      Merge branch 'rs/merge-add-strategies-simplification' into maint · 24c88ad8
      Junio C Hamano 提交于
      A small code clean-up.
      
      * rs/merge-add-strategies-simplification:
        merge: use string_list_split() in add_strategies()
      24c88ad8
    • J
      Merge branch 'ls/packet-line-protocol-doc-fix' into maint · a75341c7
      Junio C Hamano 提交于
      Correct an age-old calco (is that a typo-like word for calc)
      in the documentation.
      
      * ls/packet-line-protocol-doc-fix:
        pack-protocol: fix maximum pkt-line size
      a75341c7
    • J
      Merge branch 'bw/mingw-avoid-inheriting-fd-to-lockfile' into maint · c0e8b3b4
      Junio C Hamano 提交于
      The tempfile (hence its user lockfile) API lets the caller to open
      a file descriptor to a temporary file, write into it and then
      finalize it by first closing the filehandle and then either
      removing or renaming the temporary file.  When the process spawns a
      subprocess after obtaining the file descriptor, and if the
      subprocess has not exited when the attempt to remove or rename is
      made, the last step fails on Windows, because the subprocess has
      the file descriptor still open.  Open tempfile with O_CLOEXEC flag
      to avoid this (on Windows, this is mapped to O_NOINHERIT).
      
      * bw/mingw-avoid-inheriting-fd-to-lockfile:
        mingw: ensure temporary file handles are not inherited by child processes
        t6026-merge-attr: child processes must not inherit index.lock handles
      c0e8b3b4
    • J
      Merge branch 'dg/document-git-c-in-git-config-doc' into maint · 15a27298
      Junio C Hamano 提交于
      The "git -c var[=val] cmd" facility to append a configuration
      variable definition at the end of the search order was described in
      git(1) manual page, but not in git-config(1), which was more likely
      place for people to look for when they ask "can I make a one-shot
      override, and if so how?"
      
      * dg/document-git-c-in-git-config-doc:
        doc: mention `git -c` in git-config(1)
      15a27298
    • J
      Merge branch 'js/no-html-bypass-on-windows' into maint · ba22efd8
      Junio C Hamano 提交于
      On Windows, help.browser configuration variable used to be ignored,
      which has been corrected.
      
      * js/no-html-bypass-on-windows:
        Revert "display HTML in default browser using Windows' shell API"
      ba22efd8
    • J
      Merge branch 'jk/difftool-command-not-found' into maint · bde42f08
      Junio C Hamano 提交于
      "git difftool" by default ignores the error exit from the backend
      commands it spawns, because often they signal that they found
      differences by exiting with a non-zero status code just like "diff"
      does; the exit status codes 126 and above however are special in
      that they are used to signal that the command is not executable,
      does not exist, or killed by a signal.  "git difftool" has been
      taught to notice these exit status codes.
      
      * jk/difftool-command-not-found:
        difftool: always honor fatal error exit codes
      bde42f08
    • J
      Merge branch 'sb/checkout-explit-detach-no-advice' into maint · 7c964719
      Junio C Hamano 提交于
      "git checkout --detach <branch>" used to give the same advice
      message as that is issued when "git checkout <tag>" (or anything
      that is not a branch name) is given, but asking with "--detach" is
      an explicit enough sign that the user knows what is going on.  The
      advice message has been squelched in this case.
      
      * sb/checkout-explit-detach-no-advice:
        checkout: do not mention detach advice for explicit --detach option
      7c964719
    • J
      Merge branch 'rs/pull-signed-tag' into maint · 69307312
      Junio C Hamano 提交于
      When "git merge-recursive" works on history with many criss-cross
      merges in "verbose" mode, the names the command assigns to the
      virtual merge bases could have overwritten each other by unintended
      reuse of the same piece of memory.
      
      * rs/pull-signed-tag:
        commit: use FLEX_ARRAY in struct merge_remote_desc
        merge-recursive: fix verbose output for multiple base trees
        commit: factor out set_merge_remote_desc()
        commit: use xstrdup() in get_merge_parent()
      69307312
    • J
      Merge branch 'js/test-lint-pathname' into maint · 86df11b1
      Junio C Hamano 提交于
      The "t/" hierarchy is prone to get an unusual pathname; "make test"
      has been taught to make sure they do not contain paths that cannot
      be checked out on Windows (and the mechanism can be reusable to
      catch pathnames that are not portable to other platforms as need
      arises).
      
      * js/test-lint-pathname:
        t/Makefile: ensure that paths are valid on platforms we care
      86df11b1
    • J
      Merge branch 'js/mv-dir-to-new-directory' into maint · 8e7c580e
      Junio C Hamano 提交于
      "git mv dir non-existing-dir/" did not work in some environments
      the same way as existing mainstream platforms.  The code now moves
      "dir" to "non-existing-dir", without relying on rename("A", "B/")
      that strips the trailing slash of '/'.
      
      * js/mv-dir-to-new-directory:
        git mv: do not keep slash in `git mv dir non-existing-dir/`
      8e7c580e
    • J
      Merge branch 'js/import-tars-hardlinks' into maint · 5e09f1dd
      Junio C Hamano 提交于
      "import-tars" fast-import script (in contrib/) used to ignore a
      hardlink target and replaced it with an empty file, which has been
      corrected to record the same blob as the other file the hardlink is
      shared with.
      
      * js/import-tars-hardlinks:
        import-tars: support hard links
      5e09f1dd
    • J
      Merge branch 'ms/document-pack-window-memory-is-per-thread' into maint · c343e491
      Junio C Hamano 提交于
      * ms/document-pack-window-memory-is-per-thread:
        document git-repack interaction of pack.threads and pack.windowMemory
      c343e491
    • J
      Merge branch 'jk/push-force-with-lease-creation' into maint · f34d900a
      Junio C Hamano 提交于
      "git push --force-with-lease" already had enough logic to allow
      ensuring that such a push results in creation of a ref (i.e. the
      receiving end did not have another push from sideways that would be
      discarded by our force-pushing), but didn't expose this possibility
      to the users.  It does so now.
      
      * jk/push-force-with-lease-creation:
        t5533: make it pass on case-sensitive filesystems
        push: allow pushing new branches with --force-with-lease
        push: add shorthand for --force-with-lease branch creation
        Documentation/git-push: fix placeholder formatting
      f34d900a
    • J
      Merge branch 'jk/reflog-date' into maint · f59c6e6c
      Junio C Hamano 提交于
      The reflog output format is documented better, and a new format
      --date=unix to report the seconds-since-epoch (without timezone)
      has been added.
      
      * jk/reflog-date:
        date: clarify --date=raw description
        date: add "unix" format
        date: document and test "raw-local" mode
        doc/pretty-formats: explain shortening of %gd
        doc/pretty-formats: describe index/time formats for %gd
        doc/rev-list-options: explain "-g" output formats
        doc/rev-list-options: clarify "commit@{Nth}" for "-g" option
      f59c6e6c
    • J
      Merge branch 'jc/renormalize-merge-kill-safer-crlf' into maint · 7f5885ad
      Junio C Hamano 提交于
      "git merge" with renormalization did not work well with
      merge-recursive, due to "safer crlf" conversion kicking in when it
      shouldn't.
      
      * jc/renormalize-merge-kill-safer-crlf:
        merge: avoid "safer crlf" during recording of merge results
        convert: unify the "auto" handling of CRLF
      7f5885ad
    • J
      Merge branch 'jk/common-main' into maint · faacc8ef
      Junio C Hamano 提交于
      There are certain house-keeping tasks that need to be performed at
      the very beginning of any Git program, and programs that are not
      built-in commands had to do them exactly the same way as "git"
      potty does.  It was easy to make mistakes in one-off standalone
      programs (like test helpers).  A common "main()" function that
      calls cmd_main() of individual program has been introduced to
      make it harder to make mistakes.
      
      * jk/common-main:
        mingw: declare main()'s argv as const
        common-main: call git_setup_gettext()
        common-main: call restore_sigpipe_to_default()
        common-main: call sanitize_stdfds()
        common-main: call git_extract_argv0_path()
        add an extra level of indirection to main()
      faacc8ef
  2. 31 8月, 2016 1 次提交
  3. 27 8月, 2016 1 次提交
  4. 24 8月, 2016 2 次提交
    • D
      doc: mention `git -c` in git-config(1) · ae1f7094
      David Glasser 提交于
      Signed-off-by: NDavid Glasser <glasser@davidglasser.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      ae1f7094
    • B
      mingw: ensure temporary file handles are not inherited by child processes · 05d1ed61
      Ben Wijen 提交于
      When the index is locked and child processes inherit the handle to
      said lock and the parent process wants to remove the lock before the
      child process exits, on Windows there is a problem: it won't work
      because files cannot be deleted if a process holds a handle on them.
      The symptom:
      
          Rename from 'xxx/.git/index.lock' to 'xxx/.git/index' failed.
          Should I try again? (y/n)
      
      Spawning child processes with bInheritHandles==FALSE would not work
      because no file handles would be inherited, not even the hStdXxx
      handles in STARTUPINFO (stdin/stdout/stderr).
      
      Opening every file with O_NOINHERIT does not work, either, as e.g.
      git-upload-pack expects inherited file handles.
      
      This leaves us with the only way out: creating temp files with the
      O_NOINHERIT flag. This flag is Windows-specific, however. For our
      purposes, it is equivalent to O_CLOEXEC (which does not exist on
      Windows), so let's just open temporary files with the O_CLOEXEC flag and
      map that flag to O_NOINHERIT on Windows.
      
      As Eric Wong pointed out, we need to be careful to handle the case where
      the Linux headers used to compile Git support O_CLOEXEC but the Linux
      kernel used to run Git does not: it returns an EINVAL.
      
      This fixes the test that we just introduced to demonstrate the problem.
      Signed-off-by: NBen Wijen <ben@wijen.net>
      Signed-off-by: NJohannes Schindelin <johannes.schindelin@gmx.de>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      05d1ed61
  5. 20 8月, 2016 1 次提交
  6. 19 8月, 2016 1 次提交
    • B
      t6026-merge-attr: child processes must not inherit index.lock handles · ad65f7e3
      Ben Wijen 提交于
      On Windows, a file cannot be removed unless all file handles to it have
      been released. Hence it is particularly important to close handles when
      spawning children (which would probably not even know that they hold on
      to those handles).
      
      The example chosen for this test is a custom merge driver that indeed
      has no idea that it blocks the deletion of index.lock. The full use case
      is a daemon that lives on after the merge, with subsequent invocations
      handing off to the daemon, thereby avoiding hefty start-up costs. We
      simulate this behavior by simply sleeping one second.
      
      Note that the test only fails on Windows, due to the file locking issue.
      Since we have no way to say "expect failure with MINGW, success
      otherwise", we simply skip this test on Windows for now.
      Signed-off-by: NBen Wijen <ben@wijen.net>
      Signed-off-by: NJohannes Schindelin <johannes.schindelin@gmx.de>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      ad65f7e3
  7. 18 8月, 2016 1 次提交
  8. 17 8月, 2016 1 次提交
    • J
      t/Makefile: ensure that paths are valid on platforms we care · c2cafd39
      Johannes Schindelin 提交于
      Some pathnames that are okay on ext4 and on HFS+ cannot be checked
      out on Windows. Tests that want to see operations on such paths on
      filesystems that support them must do so behind appropriate test
      prerequisites, and must not include them in the source tree (instead
      they should create them when they run). Otherwise, the source tree
      cannot even be checked out.
      
      Make sure that double-quotes, asterisk, colon, greater/less-than,
      question-mark, backslash, tab, vertical-bar, as well as any non-ASCII
      characters never appear in the pathnames with a new test-lint-* target
      as part of a `make test`. To that end, we call `git ls-files` (ensuring
      that the paths are quoted properly), relying on the fact that paths
      containing non-ASCII characters are quoted within double-quotes.
      
      In case that the source code does not actually live in a Git
      repository (e.g. when extracted from a .zip file), or that the `git`
      executable cannot be executed, we simply ignore the error for now; In
      that case, our trusty Continuous Integration will be the last line of
      defense and catch any problematic file name.
      
      Noticed when a topic wanted to add a pathname with '>' in it.  A
      check like this will prevent a similar problems from happening in the
      future.
      Signed-off-by: NJohannes Schindelin <johannes.schindelin@gmx.de>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      c2cafd39
  9. 16 8月, 2016 3 次提交
  10. 14 8月, 2016 7 次提交