1. 01 3月, 2016 1 次提交
  2. 27 2月, 2016 26 次提交
    • J
      Git 2.8-rc0 · f02fbc4f
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      f02fbc4f
    • J
      Merge branch 'mm/readme-markdown' · b52cb95a
      Junio C Hamano 提交于
      README has been renamed to README.md and its contents got tweaked
      slightly to make it easier on the eyes.
      
      * mm/readme-markdown:
        README.md: move down historical explanation about the name
        README.md: don't call git stupid in the title
        README.md: move the link to git-scm.com up
        README.md: add hyperlinks on filenames
        README: use markdown syntax
      b52cb95a
    • J
      Merge branch 'ma/update-hooks-sample-typofix' · 2e55d300
      Junio C Hamano 提交于
      * ma/update-hooks-sample-typofix:
        templates/hooks: fix minor typo in the sample update-hook
      2e55d300
    • J
      Merge branch 'ls/makefile-cflags-developer-tweak' · 0f0dd370
      Junio C Hamano 提交于
      There is a new DEVELOPER knob that enables many compiler warning
      options in the Makefile.
      
      * ls/makefile-cflags-developer-tweak:
        add DEVELOPER makefile knob to check for acknowledged warnings
      0f0dd370
    • J
      Merge branch 'dt/initial-ref-xn-commit-doc' · 69616f74
      Junio C Hamano 提交于
      * dt/initial-ref-xn-commit-doc:
        refs: document transaction semantics
      69616f74
    • J
      Merge branch 'js/config-set-in-non-repository' · d3faba84
      Junio C Hamano 提交于
      "git config section.var value" to set a value in per-repository
      configuration file failed when it was run outside any repository,
      but didn't say the reason correctly.
      
      * js/config-set-in-non-repository:
        git config: report when trying to modify a non-existing repo config
      d3faba84
    • J
      Merge branch 'jk/epipe-in-async' · 8ef250c5
      Junio C Hamano 提交于
      Handling of errors while writing into our internal asynchronous
      process has been made more robust, which reduces flakiness in our
      tests.
      
      * jk/epipe-in-async:
        t5504: handle expected output from SIGPIPE death
        test_must_fail: report number of unexpected signal
        fetch-pack: ignore SIGPIPE in sideband demuxer
        write_or_die: handle EPIPE in async threads
      8ef250c5
    • J
      Merge branch 'mm/push-default-warning' · 15be6210
      Junio C Hamano 提交于
      Across the transition at around Git version 2.0, the user used to
      get a pretty loud warning when running "git push" without setting
      push.default configuration variable.  We no longer warn, given that
      the transition is over long time ago.
      
      * mm/push-default-warning:
        push: remove "push.default is unset" warning message
      15be6210
    • J
      Merge branch 'fa/merge-recursive-no-rename' · 4ce064dd
      Junio C Hamano 提交于
      "git merge-recursive" learned "--no-renames" option to disable its
      rename detection logic.
      
      * fa/merge-recursive-no-rename:
        t3034: test deprecated interface
        t3034: test option to disable renames
        t3034: add rename threshold tests
        merge-recursive: find-renames resets threshold
        merge-strategies.txt: fix typo
        merge-recursive: more consistent interface
        merge-recursive: option to disable renames
      4ce064dd
    • J
      Merge branch 'sb/submodule-fetch-nontip' · 9671a76c
      Junio C Hamano 提交于
      When "git submodule update" did not result in fetching the commit
      object in the submodule that is referenced by the superproject, the
      command learned to retry another fetch, specifically asking for
      that commit that may not be connected to the refs it usually
      fetches.
      
      * sb/submodule-fetch-nontip:
        submodule: try harder to fetch needed sha1 by direct fetching sha1
      9671a76c
    • J
      Merge branch 'sb/submodule-module-list-fix' · 03f682bf
      Junio C Hamano 提交于
      A helper function "git submodule" uses since v2.7.0 to list the
      modules that match the pathspec argument given to its subcommands
      (e.g. "submodule add <repo> <path>") has been fixed.
      
      * sb/submodule-module-list-fix:
        submodule helper list: respect correct path prefix
      03f682bf
    • J
      Merge branch 'tb/conversion' · c6b94eb0
      Junio C Hamano 提交于
      Code simplification.
      
      * tb/conversion:
        convert.c: correct attr_action()
        convert.c: simplify text_stat
        convert.c: refactor crlf_action
        convert.c: use text_eol_is_crlf()
        convert.c: remove input_crlf_action()
        convert.c: remove unused parameter 'path'
        t0027: add tests for get_stream_filter()
      c6b94eb0
    • J
      Merge branch 'jk/grep-binary-workaround-in-test' · 31633637
      Junio C Hamano 提交于
      Recent versions of GNU grep are pickier when their input contains
      arbitrary binary data, which some of our tests uses.  Rewrite the
      tests to sidestep the problem.
      
      * jk/grep-binary-workaround-in-test:
        t9200: avoid grep on non-ASCII data
        t8005: avoid grep on non-ASCII data
      31633637
    • J
      Merge branch 'ps/plug-xdl-merge-leak' · c1fa85ff
      Junio C Hamano 提交于
      * ps/plug-xdl-merge-leak:
        xdiff/xmerge: fix memory leak in xdl_merge
      c1fa85ff
    • J
      Merge branch 'mm/push-simple-doc' · 1e4c08ff
      Junio C Hamano 提交于
      The documentation did not clearly state that the 'simple' mode is
      now the default for "git push" when push.default configuration is
      not set.
      
      * mm/push-simple-doc:
        Documentation/git-push: document that 'simple' is the default
      1e4c08ff
    • J
      Merge branch 'jg/credential-cache-chdir-to-sockdir' · 2a24444a
      Junio C Hamano 提交于
      The "credential-cache" daemon process used to run in whatever
      directory it happened to start in, but this made umount(2)ing the
      filesystem that houses the repository harder; now the process
      chdir()s to the directory that house its own socket on startup.
      
      * jg/credential-cache-chdir-to-sockdir:
        credential-cache--daemon: change to the socket dir on startup
        credential-cache--daemon: disallow relative socket path
        credential-cache--daemon: refactor check_socket_directory
      2a24444a
    • J
      Merge branch 'ps/config-error' · 225caa73
      Junio C Hamano 提交于
      Many codepaths forget to check return value from git_config_set();
      the function is made to die() to make sure we do not proceed when
      setting a configuration variable failed.
      
      * ps/config-error:
        config: rename git_config_set_or_die to git_config_set
        config: rename git_config_set to git_config_set_gently
        compat: die when unable to set core.precomposeunicode
        sequencer: die on config error when saving replay opts
        init-db: die on config errors when initializing empty repo
        clone: die on config error in cmd_clone
        remote: die on config error when manipulating remotes
        remote: die on config error when setting/adding branches
        remote: die on config error when setting URL
        submodule--helper: die on config error when cloning module
        submodule: die on config error when linking modules
        branch: die on config error when editing branch description
        branch: die on config error when unsetting upstream
        branch: report errors in tracking branch setup
        config: introduce set_or_die wrappers
      225caa73
    • J
      Merge branch 'mg/work-tree-tests' · 56d4e7e6
      Junio C Hamano 提交于
      Traditionally, the tests that try commands that work on the
      contents in the working tree were named with "worktree" in their
      filenames, but with the recent addition of "git worktree"
      subcommand, whose tests are also named similarly, it has become
      harder to tell them apart.  The traditional tests have been renamed
      to use "work-tree" instead in an attempt to differentiate them.
      
      * mg/work-tree-tests:
        tests: rename work-tree tests to *work-tree*
      56d4e7e6
    • J
      Merge branch 'ls/config-origin' · dd0f567f
      Junio C Hamano 提交于
      The configuration system has been taught to phrase where it found a
      bad configuration variable in a better way in its error messages.
      "git config" learnt a new "--show-origin" option to indicate where
      the values come from.
      
      * ls/config-origin:
        config: add '--show-origin' option to print the origin of a config value
        config: add 'origin_type' to config_source struct
        rename git_config_from_buf to git_config_from_mem
        t: do not hide Git's exit code in tests using 'nul_to_q'
      dd0f567f
    • J
      Merge branch 'jk/tighten-alloc' · 11529ece
      Junio C Hamano 提交于
      Update various codepaths to avoid manually-counted malloc().
      
      * jk/tighten-alloc: (22 commits)
        ewah: convert to REALLOC_ARRAY, etc
        convert ewah/bitmap code to use xmalloc
        diff_populate_gitlink: use a strbuf
        transport_anonymize_url: use xstrfmt
        git-compat-util: drop mempcpy compat code
        sequencer: simplify memory allocation of get_message
        test-path-utils: fix normalize_path_copy output buffer size
        fetch-pack: simplify add_sought_entry
        fast-import: simplify allocation in start_packfile
        write_untracked_extension: use FLEX_ALLOC helper
        prepare_{git,shell}_cmd: use argv_array
        use st_add and st_mult for allocation size computation
        convert trivial cases to FLEX_ARRAY macros
        use xmallocz to avoid size arithmetic
        convert trivial cases to ALLOC_ARRAY
        convert manual allocations to argv_array
        argv-array: add detach function
        add helpers for allocating flex-array structs
        harden REALLOC_ARRAY and xcalloc against size_t overflow
        tree-diff: catch integer overflow in combine_diff_path allocation
        ...
      11529ece
    • J
      Merge branch 'jk/more-comments-on-textconv' · 3ed26a44
      Junio C Hamano 提交于
      The memory ownership rule of fill_textconv() API, which was a bit
      tricky, has been documented a bit better.
      
      * jk/more-comments-on-textconv:
        diff: clarify textconv interface
      3ed26a44
    • J
      Merge branch 'jk/no-diff-emit-common' · 18b26b18
      Junio C Hamano 提交于
      "git merge-tree" used to mishandle "both sides added" conflict with
      its own "create a fake ancestor file that has the common parts of
      what both sides have added and do a 3-way merge" logic; this has
      been updated to use the usual "3-way merge with an empty blob as
      the fake common ancestor file" approach used in the rest of the
      system.
      
      * jk/no-diff-emit-common:
        xdiff: drop XDL_EMIT_COMMON
        merge-tree: drop generate_common strategy
        merge-one-file: use empty blob for add/add base
      18b26b18
    • J
      Merge branch 'ak/git-strip-extension-from-dashed-command' · dede2961
      Junio C Hamano 提交于
      Code simplification.
      
      * ak/git-strip-extension-from-dashed-command:
        git.c: simplify stripping extension of a file in handle_builtin()
      dede2961
    • J
      Merge branch 'ak/extract-argv0-last-dir-sep' · 7943cba1
      Junio C Hamano 提交于
      Code simplification.
      
      * ak/extract-argv0-last-dir-sep:
        exec_cmd.c: use find_last_dir_sep() for code simplification
      7943cba1
    • J
      Merge branch 'kn/ref-filter-atom-parsing' · 26f7b5c7
      Junio C Hamano 提交于
      The ref-filter's format-parsing code has been refactored, in
      preparation for "branch --format" and friends.
      
      * kn/ref-filter-atom-parsing:
        ref-filter: introduce objectname_atom_parser()
        ref-filter: introduce contents_atom_parser()
        ref-filter: introduce remote_ref_atom_parser()
        ref-filter: align: introduce long-form syntax
        ref-filter: introduce align_atom_parser()
        ref-filter: introduce parse_align_position()
        ref-filter: introduce color_atom_parser()
        ref-filter: introduce parsing functions for each valid atom
        ref-filter: introduce struct used_atom
        ref-filter: bump 'used_atom' and related code to the top
        ref-filter: use string_list_split over strbuf_split
      26f7b5c7
    • J
      Merge branch 'tg/git-remote' · ae2f2554
      Junio C Hamano 提交于
      The internal API to interact with "remote.*" configuration
      variables has been streamlined.
      
      * tg/git-remote:
        remote: use remote_is_configured() for add and rename
        remote: actually check if remote exits
        remote: simplify remote_is_configured()
        remote: use parse_config_key
      ae2f2554
  3. 26 2月, 2016 13 次提交
    • J
      t5504: handle expected output from SIGPIPE death · 43f3afc6
      Jeff King 提交于
      Commit 8bf4becf (add "ok=sigpipe" to test_must_fail and use
      it to fix flaky tests, 2015-11-27) taught t5504 to handle
      "git push" racily exiting with SIGPIPE rather than failing.
      
      However, one of the tests checks the output of the command,
      as well. In the SIGPIPE case, we will not have produced any
      output. If we want the test to be truly non-flaky, we have
      to accept either output.
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      43f3afc6
    • J
      test_must_fail: report number of unexpected signal · f3ed0b37
      Jeff King 提交于
      If a command is marked as test_must_fail but dies with a
      signal, we consider that a problem and report the error to
      stderr. However, we don't say _which_ signal; knowing that
      can make debugging easier. Let's share as much as we know.
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      f3ed0b37
    • J
      fetch-pack: ignore SIGPIPE in sideband demuxer · 9ff18faf
      Jeff King 提交于
      If the other side feeds us a bogus pack, index-pack (or
      unpack-objects) may die early, before consuming all of its
      input. As a result, the sideband demuxer may get SIGPIPE
      (racily, depending on whether our data made it into the pipe
      buffer or not). If this happens and we are compiled with
      pthread support, it will take down the main thread, too.
      
      This isn't the end of the world, as the main process will
      just die() anyway when it sees index-pack failed. But it
      does mean we don't get a chance to say "fatal: index-pack
      failed" or similar. And it also means that we racily fail
      t5504, as we sometimes die() and sometimes are killed by
      SIGPIPE.
      
      So let's ignore SIGPIPE while demuxing the sideband. We are
      already careful to check the return value of write(), so we
      won't waste time writing to a broken pipe. The caller will
      notice the error return from the async thread, though in
      practice we don't even get that far, as we die() as soon as
      we see that index-pack failed.
      
      The non-sideband case is already fine; we let index-pack
      read straight from the socket, so there is no SIGPIPE at
      all. Technically the non-threaded async case is also OK
      without this (the forked async process gets SIGPIPE), but
      it's not worth distinguishing from the threaded case here.
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      9ff18faf
    • J
      write_or_die: handle EPIPE in async threads · 9658846c
      Jeff King 提交于
      When write_or_die() sees EPIPE, it treats it specially by
      converting it into a SIGPIPE death. We obviously cannot
      ignore it, as the write has failed and the caller expects us
      to die. But likewise, we cannot just call die(), because
      printing any message at all would be a nuisance during
      normal operations.
      
      However, this is a problem if write_or_die() is called from
      a thread. Our raised signal ends up killing the whole
      process, when logically we just need to kill the thread
      (after all, if we are ignoring SIGPIPE, there is good reason
      to think that the main thread is expecting to handle it).
      
      Inside an async thread, the die() code already does the
      right thing, because we use our custom die_async() routine,
      which calls pthread_join(). So ideally we would piggy-back
      on that, and simply call:
      
        die_quietly_with_code(141);
      
      or similar. But refactoring the die code to do this is
      surprisingly non-trivial. The die_routines themselves handle
      both printing and the decision of the exit code. Every one
      of them would have to be modified to take new parameters for
      the code, and to tell us to be quiet.
      
      Instead, we can just teach write_or_die() to check for the
      async case and handle it specially. We do have to build an
      interface to abstract the async exit, but it's simple and
      self-contained. If we had many call-sites that wanted to do
      this die_quietly_with_code(), this approach wouldn't scale
      as well, but we don't. This is the only place where do this
      weird exit trick.
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      9658846c
    • L
      add DEVELOPER makefile knob to check for acknowledged warnings · 658df95a
      Lars Schneider 提交于
      We assume Git developers have a reasonably modern compiler and recommend
      them to enable the DEVELOPER makefile knob to ensure their patches are
      clear of all compiler warnings the Git core project cares about.
      
      Enable the DEVELOPER makefile knob in the Travis-CI build.
      Suggested-by: NJeff King <peff@peff.net>
      Signed-off-by: NLars Schneider <larsxschneider@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      658df95a
    • D
      refs: document transaction semantics · 49386868
      David Turner 提交于
      Add some comments on ref transaction semantics to refs.h
      Signed-off-by: NDavid Turner <dturner@twopensource.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      49386868
    • J
      git config: report when trying to modify a non-existing repo config · 638fa623
      Johannes Schindelin 提交于
      It is a pilot error to call `git config section.key value` outside of
      any Git worktree. The message
      
      	error: could not lock config file .git/config: No such file or
      	directory
      
      is not very helpful in that situation, though. Let's print a helpful
      message instead.
      Signed-off-by: NJohannes Schindelin <johannes.schindelin@gmx.de>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      638fa623
    • M
      push: remove "push.default is unset" warning message · 2f275207
      Matthieu Moy 提交于
      The warning was important before the 2.0 transition, and remained
      important for a while after, so that new users get push.default
      explicitly in their configuration and do not experience inconsistent
      behavior if they ever used an older version of Git.
      
      The warning has been there since version 1.8.0 (Oct 2012), hence we can
      expect the vast majority of current Git users to have been exposed to
      it, and most of them have already set push.default explicitly. The
      switch from 'matching' to 'simple' was planned for 2.0 (May 2014), but
      actually happened only for 2.3 (Feb 2015).
      
      Today, the warning is mostly seen by beginners, who have not set their
      push.default configuration (yet). For many of them, the warning is
      confusing because it talks about concepts that they have not learned and
      asks them a choice that they are not able to make yet. See for example
      
        http://stackoverflow.com/questions/13148066/warning-push-default-is-unset-its-implicit-value-is-changing-in-git-2-0
      
      (1260 votes for the question, 1824 for the answer as of writing)
      
      Remove the warning completely to avoid disturbing beginners. People who
      still occasionally use an older version of Git will be exposed to the
      warning through this old version.
      
      Eventually, versions of Git without the warning will be deployed enough
      and tutorials will not need to advise setting push.default anymore.
      Signed-off-by: NMatthieu Moy <Matthieu.Moy@imag.fr>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      2f275207
    • M
      README.md: move down historical explanation about the name · a217f073
      Matthieu Moy 提交于
      The explanations about why the name was chosen are secondary compared to
      the description and link to the documentation.
      
      Some consider these explanations as good computer scientists joke, but
      other see it as needlessly offensive vocabulary.
      
      This patch preserves the historical joke, but gives it less importance
      by moving it to the end of the README, and makes it clear that it is a
      historical explanation, that does not necessarily reflect the state of
      mind of current developers.
      Signed-off-by: NMatthieu Moy <Matthieu.Moy@imag.fr>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      a217f073
    • M
      README.md: don't call git stupid in the title · 28513c4f
      Matthieu Moy 提交于
      "the stupid content tracker" was true in the early days of Git, but
      hardly applicable these days. "fast, scalable, distributed" describes
      Git more accuralety.
      
      Also, "stupid" can be seen as offensive by some people. Let's not use it
      in the very first words of the README.
      
      The new formulation is taken from the description of the Debian package.
      Signed-off-by: NMatthieu Moy <Matthieu.Moy@imag.fr>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      28513c4f
    • M
      README.md: move the link to git-scm.com up · d9b297db
      Matthieu Moy 提交于
      The documentation available on git-scm.com is nicely formatted. It's
      better to point users to it than to the source code of the
      documentation.
      Signed-off-by: NMatthieu Moy <Matthieu.Moy@imag.fr>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      d9b297db
    • M
      README.md: add hyperlinks on filenames · 61649720
      Matthieu Moy 提交于
      Signed-off-by: NMatthieu Moy <Matthieu.Moy@imag.fr>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      61649720
    • M
      README: use markdown syntax · 4ad21f5d
      Matthieu Moy 提交于
      This allows repository browsers like GitHub to display the content of
      the file nicely formatted.
      Signed-off-by: NMatthieu Moy <Matthieu.Moy@imag.fr>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      4ad21f5d