1. 31 1月, 2018 5 次提交
    • S
      travis-ci: don't fail if user already exists on 32 bit Linux build job · 6b995760
      SZEDER Gábor 提交于
      The 32 bit Linux build job runs in a Docker container, which lends
      itself to running and debugging locally, too.  Especially during
      debugging one usually doesn't want to start with a fresh container
      every time, to save time spent on installing a bunch of dependencies.
      However, that doesn't work quite smootly, because the script running
      in the container always creates a new user, which then must be removed
      every time before subsequent executions, or the build script fails.
      
      Make this process more convenient and don't try to create that user if
      it already exists and has the right user ID in the container, so
      developers don't have to bother with running a 'userdel' each time
      before they run the build script.
      
      The build job on Travis CI always starts with a fresh Docker
      container, so this change doesn't make a difference there.
      Signed-off-by: NSZEDER Gábor <szeder.dev@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      6b995760
    • S
      travis-ci: don't run the test suite as root in the 32 bit Linux build · 53303302
      SZEDER Gábor 提交于
      Travis CI runs the 32 bit Linux build job in a Docker container, where
      all commands are executed as root by default.  Therefore, ever since
      we added this build job in 88dedd5e (Travis: also test on 32-bit
      Linux, 2017-03-05), we have a bit of code to create a user in the
      container matching the ID of the host user and then to run the test
      suite as this user.  Matching the host user ID is important, because
      otherwise the host user would have no access to any files written by
      processes running in the container, notably the logs of failed tests
      couldn't be included in the build job's trace log.
      
      Alas, this piece of code never worked, because it sets the variable
      holding the user name ($CI_USER) in a subshell, meaning it doesn't
      have any effect by the time we get to the point to actually use the
      variable to switch users with 'su'.  So all this time we were running
      the test suite as root.
      
      Reorganize that piece of code in 'ci/run-linux32-build.sh' a bit to
      avoid that problematic subshell and to ensure that we switch to the
      right user.  Furthermore, make the script's optional host user ID
      option mandatory, so running the build accidentally as root will
      become harder when debugging locally.  If someone really wants to run
      the test suite as root, whatever the reasons might be, it'll still be
      possible to do so by explicitly passing '0' as host user ID.
      
      Finally, one last catch: since commit 7e72cfce (travis-ci: save prove
      state for the 32 bit Linux build, 2017-12-27) the 'prove' test harness
      has been writing its state to the Travis CI cache directory from
      within the Docker container while running as root.  After this patch
      'prove' will run as a regular user, so in future build jobs it won't
      be able overwrite a previously written, still root-owned state file,
      resulting in build job failures.  To resolve this we should manually
      delete caches containing such root-owned files, but that would be a
      hassle.  Instead, work this around by changing the owner of the whole
      contents of the cache directory to the host user ID.
      Signed-off-by: NSZEDER Gábor <szeder.dev@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      53303302
    • S
      travis-ci: don't repeat the path of the cache directory · b2cbaa09
      SZEDER Gábor 提交于
      Some of our 'ci/*' scripts repeat the name or full path of the Travis
      CI cache directory, and the following patches will add new places
      using that path.
      
      Use a variable to refer to the path of the cache directory instead, so
      it's hard-coded only in a single place.
      
      Pay extra attention to the 32 bit Linux build: it runs in a Docker
      container, so pass the path of the cache directory from the host to
      the container in an environment variable.  Note that an environment
      variable passed this way is exported inside the container, therefore
      its value is directly available in the 'su' snippet even though that
      snippet is single quoted.  Furthermore, use the variable in the
      container only if it's been assigned a non-empty value, to prevent
      errors when someone is running or debugging the Docker build locally,
      because in that case the variable won't be set as there won't be any
      Travis CI cache.
      Signed-off-by: NSZEDER Gábor <szeder.dev@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      b2cbaa09
    • S
      travis-ci: use 'set -e' in the 32 bit Linux build job · 04d47e96
      SZEDER Gábor 提交于
      The script 'ci/run-linux32-build.sh' running inside the Docker
      container of the 32 bit Linux build job uses an && chain to break the
      build if one of the commands fails.  This is problematic for two
      reasons:
      
        - The && chain is broken, because there is this in the middle:
      
          test -z $HOST_UID || (CI_USER="ci" && useradd -u $HOST_UID $CI_USER) &&
      
          Luckily it is broken in a way that it didn't lead to false
          successes.  If installing dependencies fails, then the rest of the
          first && chain is skipped and execution resumes  after the ||
          operator.  At that point $HOST_UID is still unset, causing
          'useradd' to error out with "invalid user ID 'ci'", which in turn
          causes the second && chain to abort the script and thus break the
          build.
      
        - All other 'ci/*' scripts use 'set -e' to break the build if one of
          the commands fails.  This inconsistency among these scripts is
          asking for trouble: I forgot about the && chain more than once
          while working on this patch series.
      
      Enable 'set -e' for the whole script and for the commands executed
      under 'su' as well.
      
      While touching every line in the 'su' command block anyway, change
      their indentation to use a tab instead of spaces.
      Signed-off-by: NSZEDER Gábor <szeder.dev@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      04d47e96
    • S
  2. 24 1月, 2018 19 次提交
    • J
      First batch after 2.16 · 5be1f00a
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      5be1f00a
    • J
      Merge branch 'nd/add-i-ignore-submodules' · e7e80778
      Junio C Hamano 提交于
      "git add -p" was taught to ignore local changes to submodules as
      they do not interfere with the partial addition of regular changes
      anyway.
      
      * nd/add-i-ignore-submodules:
        add--interactive: ignore submodule changes except HEAD
      e7e80778
    • J
      Merge branch 'mm/send-email-fallback-to-local-mail-address' · 897de845
      Junio C Hamano 提交于
      Instead of maintaining home-grown email address parsing code, ship
      a copy of reasonably recent Mail::Address to be used as a fallback
      in 'git send-email' when the platform lacks it.
      
      * mm/send-email-fallback-to-local-mail-address:
        send-email: add test for Linux's get_maintainer.pl
        perl/Git: remove now useless email-address parsing code
        send-email: add and use a local copy of Mail::Address
      897de845
    • J
      Merge branch 'ab/doc-cat-file-e-still-shows-errors' · 93a622f4
      Junio C Hamano 提交于
      Doc update.
      
      * ab/doc-cat-file-e-still-shows-errors:
        cat-file doc: document that -e will return some output
      93a622f4
    • J
      Merge branch 'as/read-tree-prefix-doc-fix' · 3e25b6c6
      Junio C Hamano 提交于
      Doc update.
      
      * as/read-tree-prefix-doc-fix:
        doc/read-tree: remove obsolete remark
      3e25b6c6
    • J
      Merge branch 'ys/bisect-object-id-missing-conversion-fix' · 537e1064
      Junio C Hamano 提交于
      Fix for a commented-out code to adjust it to a rather old API change.
      
      * ys/bisect-object-id-missing-conversion-fix:
        bisect: debug: convert struct object to object_id
      537e1064
    • J
      Merge branch 'tg/stash-with-pathspec-fix' · 087d1a8e
      Junio C Hamano 提交于
      "git stash -- <pathspec>" incorrectly blew away untracked files in
      the directory that matched the pathspec, which has been corrected.
      
      * tg/stash-with-pathspec-fix:
        stash: don't delete untracked files that match pathspec
      087d1a8e
    • J
      Merge branch 'sb/submodule-update-reset-fix' · f0605836
      Junio C Hamano 提交于
      When resetting the working tree files recursively, the working tree
      of submodules are now also reset to match.
      
      * sb/submodule-update-reset-fix:
        submodule: submodule_move_head omits old argument in forced case
        unpack-trees: oneway_merge to update submodules
        t/lib-submodule-update.sh: fix test ignoring ignored files in submodules
        t/lib-submodule-update.sh: clarify test
      f0605836
    • J
      Merge branch 'bw/oidmap-autoinit' · d470b7ad
      Junio C Hamano 提交于
      Code clean-up.
      
      * bw/oidmap-autoinit:
        oidmap: ensure map is initialized
      d470b7ad
    • J
      Merge branch 'ab/commit-m-with-fixup' · 55504498
      Junio C Hamano 提交于
      "git commit --fixup" did not allow "-m<message>" option to be used
      at the same time; allow it to annotate resulting commit with more
      text.
      
      * ab/commit-m-with-fixup:
        commit: add support for --fixup <commit> -m"<extra message>"
        commit doc: document that -c, -C, -F and --fixup with -m error
      55504498
    • J
      Merge branch 'cc/codespeed' · 86d7fcc4
      Junio C Hamano 提交于
      "perf" test output can be sent to codespeed server.
      
      * cc/codespeed:
        perf/run: read GIT_PERF_REPO_NAME from perf.repoName
        perf/run: learn to send output to codespeed server
        perf/run: learn about perf.codespeedOutput
        perf/run: add conf_opts argument to get_var_from_env_or_config()
        perf/aggregate: implement codespeed JSON output
        perf/aggregate: refactor printing results
        perf/aggregate: fix checking ENV{GIT_PERF_SUBSECTION}
      86d7fcc4
    • J
      Merge branch 'ab/perf-grep-threads' · 59b43c01
      Junio C Hamano 提交于
      More perf tests for threaded grep
      
      * ab/perf-grep-threads:
        perf: amend the grep tests to test grep.threads
      59b43c01
    • J
      Merge branch 'sb/diff-blobfind-pickaxe' · c0d75f0e
      Junio C Hamano 提交于
      "diff" family of commands learned "--find-object=<object-id>" option
      to limit the findings to changes that involve the named object.
      
      * sb/diff-blobfind-pickaxe:
        diff: use HAS_MULTI_BITS instead of counting bits manually
        diff: properly error out when combining multiple pickaxe options
        diffcore: add a pickaxe option to find a specific blob
        diff: introduce DIFF_PICKAXE_KINDS_MASK
        diff: migrate diff_flags.pickaxe_ignore_case to a pickaxe_opts bit
        diff.h: make pickaxe_opts an unsigned bit field
      c0d75f0e
    • J
      Merge branch 'jk/abort-clone-with-existing-dest' · addd37cd
      Junio C Hamano 提交于
      "git clone $there $here" is allowed even when here directory exists
      as long as it is an empty directory, but the command incorrectly
      removed it upon a failure of the operation.
      
      * jk/abort-clone-with-existing-dest:
        clone: do not clean up directories we didn't create
        clone: factor out dir_exists() helper
        t5600: modernize style
        t5600: fix outdated comment about unborn HEAD
      addd37cd
    • J
      Merge branch 'jc/merge-symlink-ours-theirs' · 14b9d9aa
      Junio C Hamano 提交于
      "git merge -Xours/-Xtheirs" learned to use our/their version when
      resolving a conflicting updates to a symbolic link.
      
      * jc/merge-symlink-ours-theirs:
        merge: teach -Xours/-Xtheirs to symbolic link merge
      14b9d9aa
    • J
      Merge branch 'rs/lose-leak-pending' · 0bbab7d2
      Junio C Hamano 提交于
      API clean-up around revision traversal.
      
      * rs/lose-leak-pending:
        commit: remove unused function clear_commit_marks_for_object_array()
        revision: remove the unused flag leak_pending
        checkout: avoid using the rev_info flag leak_pending
        bundle: avoid using the rev_info flag leak_pending
        bisect: avoid using the rev_info flag leak_pending
        object: add clear_commit_marks_all()
        ref-filter: use clear_commit_marks_many() in do_merge_filter()
        commit: use clear_commit_marks_many() in remove_redundant()
        commit: avoid allocation in clear_commit_marks_many()
      0bbab7d2
    • J
      Merge branch 'jm/svn-pushmergeinfo-fix' · a713fb59
      Junio C Hamano 提交于
      "git svn dcommit" did not take into account the fact that a
      svn+ssh:// URL with a username@ (typically used for pushing) refers
      to the same SVN repository without the username@ and failed when
      svn.pushmergeinfo option is set.
      
      * jm/svn-pushmergeinfo-fix:
        git-svn: fix svn.pushmergeinfo handling of svn+ssh usernames.
      a713fb59
    • J
      Merge branch 'nd/ita-wt-renames-in-status' · bc3dca07
      Junio C Hamano 提交于
      "git status" after moving a path in the working tree (hence making
      it appear "removed") and then adding with the -N option (hence
      making that appear "added") detected it as a rename, but did not
      report the  old and new pathnames correctly.
      
      * nd/ita-wt-renames-in-status:
        wt-status.c: handle worktree renames
        wt-status.c: rename rename-related fields in wt_status_change_data
        wt-status.c: catch unhandled diff status codes
        wt-status.c: coding style fix
        Use DIFF_DETECT_RENAME for detect_rename assignments
        t2203: test status output with porcelain v2 format
      bc3dca07
    • J
      Merge branch 'dk/describe-all-output-fix' · fac64e01
      Junio C Hamano 提交于
      An old regression in "git describe --all $annotated_tag^0" has been
      fixed.
      
      * dk/describe-all-output-fix:
        describe: prepend "tags/" when describing tags with embedded name
      fac64e01
  3. 22 1月, 2018 5 次提交
  4. 20 1月, 2018 1 次提交
    • B
      repository: pre-initialize hash algo pointer · e26f7f19
      brian m. carlson 提交于
      There are various git subcommands (among them, clone) which don't set up
      the repository (that is, they lack RUN_SETUP or RUN_SETUP_GENTLY) but
      end up needing to have information about the hash algorithm in use.
      Because the hash algorithm is part of struct repository and it's only
      initialized in repository setup, we can end up dereferencing a NULL
      pointer in some cases if we call one of these subcommands and look up
      the empty blob or empty tree values.
      
      A "git clone" of a project that has two paths that differ only in
      case suffers from this if it is run on a case insensitive platform.
      When the command attempts to check out one of these two paths after
      checking out the other one, the checkout codepath needs to see if
      the version that is already on the filesystem (which should not
      happen if the FS were case sensitive) is dirty, and it needs to
      exercise the hashing code at that point.
      
      In the future, we can add a command line option for this or read it
      from the configuration, but until we're ready to expose that
      functionality to the user, simply initialize the repository
      structure to use the current hash algorithm, SHA-1.
      Signed-off-by: Nbrian m. carlson <sandals@crustytoothpaste.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      e26f7f19
  5. 18 1月, 2018 1 次提交
  6. 17 1月, 2018 2 次提交
    • J
      Merge tag 'l10n-2.16.0-rnd2' of git://github.com/git-l10n/git-po · e0d57502
      Junio C Hamano 提交于
      l10n for Git 2.16.0 round 2
      
      * tag 'l10n-2.16.0-rnd2' of git://github.com/git-l10n/git-po: (24 commits)
        l10n: de.po: translate 72 new messages
        l10n: de.po: improve messages when a branch starts to track another ref
        l10n: bg.po: Updated Bulgarian translation (3288t)
        l10n: TEAMS: add zh_CN team members
        l10n: zh_CN: for git v2.16.0 l10n round 2
        l10n: sv.po: Update Swedish translation (3288t0f0u)
        l10n: ru.po: update Russian translation
        l10n: TEAMS: Add ko team members
        l10n: ko.po: Update Korean translation
        l10n: fr.po 2.16 round 2
        l10n: es.po: Spanish translation 2.16.0 round 2
        l10n: vi.po(3288t): Updated Vietnamese translation for v2.16.0 round 2
        l10n: git.pot: v2.16.0 round 2 (8 new, 4 removed)
        l10n: es.po: Update Spanish Translation v2.16.0
        l10n: fr.po v2.16.0 round 1
        l10n: bg.po: Updated Bulgarian translation (3284t)
        l10n: sv.po: Update Swedish translation (3284t0f0u)
        l10n: fr.po: "worktree list" mistranslated as prune
        l10n: git.pot: v2.16.0 round 1 (64 new, 25 removed)
        l10n: fixes to German translation
        ...
      e0d57502
    • N
      add--interactive: ignore submodule changes except HEAD · 12434efc
      Nguyễn Thái Ngọc Duy 提交于
      For 'add -i' and 'add -p', the only action we can take on a dirty
      submodule entry is update the index with a new value from its HEAD. The
      content changes inside (from its own index, untracked files...) do not
      matter, at least until 'git add -i' learns about launching a new
      interactive add session inside a submodule.
      
      Ignore all other submodules changes except HEAD. This reduces the number
      of entries the user has to check through in 'git add -i', and the number
      of 'no' they have to answer to 'git add -p' when dirty submodules are
      present.
      Signed-off-by: NNguyễn Thái Ngọc Duy <pclouds@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      12434efc
  7. 15 1月, 2018 2 次提交
  8. 13 1月, 2018 1 次提交
  9. 12 1月, 2018 4 次提交