1. 20 8月, 2015 3 次提交
    • J
      Merge branch 'ps/t1509-chroot-test-fixup' · 034603f0
      Junio C Hamano 提交于
      t1509 test that requires a dedicated VM environment had some
      bitrot, which has been corrected.
      
      * ps/t1509-chroot-test-fixup:
        tests: fix cleanup after tests in t1509-root-worktree
        tests: fix broken && chains in t1509-root-worktree
      034603f0
    • J
      Merge branch 'sb/check-return-from-read-ref' · 1d82ef5b
      Junio C Hamano 提交于
      * sb/check-return-from-read-ref:
        transport-helper: die on errors reading refs.
      1d82ef5b
    • J
      Merge branch 'mm/pull-upload-pack' · d772def9
      Junio C Hamano 提交于
      "git pull" in recent releases of Git has a regression in the code
      that allows custom path to the --upload-pack=<program>.  This has
      been corrected.
      
      Note that this is irrelevant for 'master' with "git pull" rewritten
      in C.
      
      * mm/pull-upload-pack:
        pull.sh: quote $upload_pack when passing it to git-fetch
      d772def9
  2. 18 8月, 2015 5 次提交
  3. 13 8月, 2015 9 次提交
    • J
      Second batch for 2.6 · 130be8ee
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      130be8ee
    • J
      Merge branch 'sb/remove-unused-var-from-builtin-add' · fde61a0f
      Junio C Hamano 提交于
      * sb/remove-unused-var-from-builtin-add:
        add: remove dead code
      fde61a0f
    • J
      Merge branch 'sb/parse-options-codeformat' · 535efaf6
      Junio C Hamano 提交于
      * sb/parse-options-codeformat:
        parse-options: align curly braces for all options
      535efaf6
    • J
      Merge branch 'dt/unpack-trees-cache-tree-revalidate' · 9ad8474b
      Junio C Hamano 提交于
      The code to perform multi-tree merges has been taught to repopulate
      the cache-tree upon a successful merge into the index, so that
      subsequent "diff-index --cached" (hence "status") and "write-tree"
      (hence "commit") will go faster.
      
      The same logic in "git checkout" may now be removed, but that is a
      separate issue.
      
      * dt/unpack-trees-cache-tree-revalidate:
        unpack-trees: populate cache-tree on successful merge
      9ad8474b
    • J
      Merge branch 'dt/reflog-tests' · 0188f323
      Junio C Hamano 提交于
      Tests that assume how reflogs are represented on the filesystem too
      much have been corrected.
      
      * dt/reflog-tests:
        tests: remove some direct access to .git/logs
        t/t7509: remove unnecessary manipulation of reflog
      0188f323
    • J
      Merge branch 'es/worktree-add-cleanup' · 53860f03
      Junio C Hamano 提交于
      The "new-worktree-mode" hack in "checkout" that was added in
      nd/multiple-work-trees topic has been removed by updating the
      implementation of new "worktree add".
      
      * es/worktree-add-cleanup: (25 commits)
        Documentation/git-worktree: fix duplicated 'from'
        Documentation/config: mention "now" and "never" for 'expire' settings
        Documentation/git-worktree: fix broken 'linkgit' invocation
        checkout: drop intimate knowledge of newly created worktree
        worktree: populate via "git reset --hard" rather than "git checkout"
        worktree: avoid resolving HEAD unnecessarily
        worktree: make setup of new HEAD distinct from worktree population
        worktree: detect branch-name/detached and error conditions locally
        worktree: add_worktree: construct worktree-population command locally
        worktree: elucidate environment variables intended for child processes
        worktree: make branch creation distinct from worktree population
        worktree: add: suppress auto-vivication with --detach and no <branch>
        worktree: make --detach mutually exclusive with -b/-B
        worktree: introduce options container
        worktree: simplify new branch (-b/-B) option checking
        worktree: improve worktree setup message
        branch: publish die_if_checked_out()
        checkout: teach check_linked_checkout() about symbolic link HEAD
        checkout: check_linked_checkout: simplify symref parsing
        checkout: check_linked_checkout: improve "already checked out" aesthetic
        ...
      53860f03
    • J
      Merge branch 'pt/am-builtin' · 7aa2da61
      Junio C Hamano 提交于
      Rewrite "am" in "C".
      
      * pt/am-builtin: (46 commits)
        git-am: add am.threeWay config variable
        builtin-am: remove redirection to git-am.sh
        builtin-am: check for valid committer ident
        builtin-am: implement legacy -b/--binary option
        builtin-am: implement -i/--interactive
        builtin-am: support and auto-detect mercurial patches
        builtin-am: support and auto-detect StGit series files
        builtin-am: support and auto-detect StGit patches
        builtin-am: rerere support
        builtin-am: invoke post-applypatch hook
        builtin-am: invoke pre-applypatch hook
        builtin-am: invoke applypatch-msg hook
        builtin-am: support automatic notes copying
        builtin-am: invoke post-rewrite hook
        builtin-am: implement -S/--gpg-sign, commit.gpgsign
        builtin-am: implement --committer-date-is-author-date
        builtin-am: implement --ignore-date
        builtin-am: pass git-apply's options to git-apply
        builtin-am: implement --[no-]scissors
        builtin-am: support --keep-cr, am.keepcr
        ...
      7aa2da61
    • J
      Merge branch 'es/worktree-add' · c1e5ca90
      Junio C Hamano 提交于
      Remove remaining cruft from  "git checkout --to", which
      transitioned to "git worktree add".
      
      * es/worktree-add:
        config: rename "gc.pruneWorktreesExpire" to "gc.worktreePruneExpire"
        Documentation/git-worktree: wordsmith worktree-related manpages
        Documentation/config: fix stale "git prune --worktree" reference
        Documentation/git-worktree: fix incorrect reference to file "locked"
        Documentation/git-worktree: consistently use term "linked working tree"
      c1e5ca90
    • J
      Merge branch 'ad/bisect-cleanup' · 71cc6007
      Junio C Hamano 提交于
      Code and documentation clean-up to "git bisect".
      
      * ad/bisect-cleanup:
        bisect: don't mix option parsing and non-trivial code
        bisect: simplify the addition of new bisect terms
        bisect: replace hardcoded "bad|good" by variables
        Documentation/bisect: revise overall content
        Documentation/bisect: move getting help section to the end
        bisect: correction of typo
      71cc6007
  4. 06 8月, 2015 3 次提交
  5. 05 8月, 2015 20 次提交
    • R
      git-am: add am.threeWay config variable · e97a5e76
      Remi Lespinet 提交于
      Add the am.threeWay configuration variable to use the -3 or --3way
      option of git am by default. When am.threeway is set and not desired
      for a specific git am command, the --no-3way option can be used to
      override it.
      Signed-off-by: NRemi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr>
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      e97a5e76
    • P
      builtin-am: remove redirection to git-am.sh · 783d7e86
      Paul Tan 提交于
      At the beginning of the rewrite of git-am.sh to C, in order to not break
      existing test scripts that depended on a functional git-am, a
      redirection to git-am.sh was introduced that would activate if the
      environment variable _GIT_USE_BUILTIN_AM was not defined.
      
      Now that all of git-am.sh's functionality has been re-implemented in
      builtin/am.c, remove this redirection, and retire git-am.sh into
      contrib/examples/.
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      783d7e86
    • P
      builtin-am: check for valid committer ident · 5e4f9cff
      Paul Tan 提交于
      When commit_tree() is called, if the user does not have an explicit
      committer ident configured, it will attempt to construct a default
      committer ident based on the user's and system's info (e.g. gecos field,
      hostname etc.) However, if a default committer ident is unable to be
      constructed, commit_tree() will die(), but at this point of git-am's
      execution, there will already be changes made to the index and work
      tree.
      
      This can be confusing to new users, and as such since d64e6b04 (Keep
      Porcelainish from failing by broken ident after making changes.,
      2006-02-18) git-am.sh will check to see if the committer ident has been
      configured, or a default one can be constructed, before even starting to
      apply patches.
      
      Re-implement this in builtin/am.c.
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      5e4f9cff
    • P
      builtin-am: implement legacy -b/--binary option · c2676cde
      Paul Tan 提交于
      The -b/--binary option was initially implemented in 087b6742 (git-am:
      --binary; document --resume and --binary., 2005-11-16). The option will
      pass the --binary flag to git-apply to allow it to apply binary patches.
      
      However, in 2b6eef94 (Make apply --binary a no-op., 2006-09-06), --binary
      was been made a no-op in git-apply. Following that, since cb3a160d
      (git-am: ignore --binary option, 2008-08-09), the --binary option in
      git-am is ignored as well.
      
      In 6c15a1c6 (am: officially deprecate -b/--binary option, 2012-03-13),
      the --binary option was tweaked to its present behavior: when set, the
      message:
      
      	The -b/--binary option has been a no-op for long time, and it
      	will be removed. Please do not use it anymore.
      
      will be printed.
      
      Re-implement this in builtin/am.c.
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      c2676cde
    • P
      builtin-am: implement -i/--interactive · 7ff26832
      Paul Tan 提交于
      Since d1c5f2a4 (Add git-am, applymbox replacement., 2005-10-07),
      git-am.sh supported the --interactive mode. After parsing the patch mail
      and extracting the patch, commit message and authorship info, an
      interactive session will begin that allows the user to choose between:
      
      * applying the patch
      
      * applying the patch and all subsequent patches (by disabling
        interactive mode in subsequent patches)
      
      * skipping the patch
      
      * editing the commit message
      
      Since f89ad67f (Add [v]iew patch in git-am interactive., 2005-10-25),
      git-am.sh --interactive also supported viewing the patch to be applied.
      
      When --resolved-ing in --interactive mode, we need to take care to
      update the patch with the contents of the index, such that the correct
      patch will be displayed when the patch is viewed in interactive mode.
      
      Re-implement the above in builtin/am.c
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      7ff26832
    • P
      builtin-am: support and auto-detect mercurial patches · 94cd175c
      Paul Tan 提交于
      Since 0cfd1120 (am: preliminary support for hg patches, 2011-08-29),
      git-am.sh could convert mercurial patches to an RFC2822 mail patch
      suitable for parsing with git-mailinfo, and queue them in the state
      directory for application.
      
      Since 15ced753 (git-am foreign patch support: autodetect some patch
      formats, 2009-05-27), git-am.sh was able to auto-detect mercurial
      patches by checking if the file begins with the line:
      
      	# HG changeset patch
      
      Re-implement the above in builtin/am.c.
      Helped-by: NStefan Beller <sbeller@google.com>
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      94cd175c
    • P
      builtin-am: support and auto-detect StGit series files · 336108c1
      Paul Tan 提交于
      Since c574e683 (git-am foreign patch support: StGIT support, 2009-05-27),
      git-am.sh is able to read a single StGit series file and, for each StGit
      patch listed in the file, convert the StGit patch into a RFC2822 mail
      patch suitable for parsing with git-mailinfo, and queue them in the
      state directory for applying.
      
      Since 15ced753 (git-am foreign patch support: autodetect some patch
      formats, 2009-05-27), git-am.sh is able to auto-detect StGit series
      files by checking to see if the file starts with the string:
      
      	# This series applies on GIT commit
      
      Re-implement the above in builtin/am.c.
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      336108c1
    • P
      builtin-am: support and auto-detect StGit patches · 5ae41c79
      Paul Tan 提交于
      Since c574e683 (git-am foreign patch support: StGIT support, 2009-05-27),
      git-am.sh supported converting StGit patches into RFC2822 mail patches
      that can be parsed with git-mailinfo.
      
      Implement this by introducing two functions in builtin/am.c:
      stgit_patch_to_mail() and split_mail_conv().
      
      stgit_patch_to_mail() is a callback function for split_mail_conv(), and
      contains the logic for converting an StGit patch into an RFC2822 mail
      patch.
      
      split_mail_conv() implements the logic to go through each file in the
      `paths` list, reading from stdin where specified, and calls the callback
      function to write the converted patch to the corresponding output file
      in the state directory. This interface should be generic enough to
      support other foreign patch formats in the future.
      
      Since 15ced753 (git-am foreign patch support: autodetect some patch
      formats, 2009-05-27), git-am.sh is able to auto-detect StGit patches.
      Re-implement this in builtin/am.c.
      Helped-by: NEric Sunshine <sunshine@sunshineco.com>
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      5ae41c79
    • P
      builtin-am: rerere support · f1cb96d6
      Paul Tan 提交于
      git-am.sh will call git-rerere at the following events:
      
      * "git rerere" when a three-way merge fails to record the conflicted
        automerge results. Since 8389b52b (git-rerere: reuse recorded resolve.,
        2006-01-28)
      
        * Since cb6020bb (Teach --[no-]rerere-autoupdate option to merge,
          revert and friends, 2009-12-04), git-am.sh supports the
          --[no-]rerere-autoupdate option as well, and would pass it to
          git-rerere.
      
      * "git rerere" when --resolved, to record the hand resolution. Since
        f131dd49 (rerere: record (or avoid misrecording) resolved, skipped or
        aborted rebase/am, 2006-12-08)
      
      * "git rerere clear" when --skip-ing. Since f131dd49 (rerere: record (or
        avoid misrecording) resolved, skipped or aborted rebase/am,
        2006-12-08)
      
      * "git rerere clear" when --abort-ing. Since 3e5057a8 (git am --abort,
        2008-07-16)
      
      Re-implement the above in builtin/am.c.
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      f1cb96d6
    • P
      builtin-am: invoke post-applypatch hook · 7088f807
      Paul Tan 提交于
      Since d1c5f2a4 (Add git-am, applymbox replacement., 2005-10-07),
      git-am.sh will invoke the post-applypatch hook after the patch is
      applied and a commit is made. The exit code of the hook is ignored.
      
      Re-implement this in builtin/am.c.
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      7088f807
    • P
      builtin-am: invoke pre-applypatch hook · 6c24c5c0
      Paul Tan 提交于
      Since d1c5f2a4 (Add git-am, applymbox replacement., 2005-10-07),
      git-am.sg will invoke the pre-applypatch hook after applying the patch
      to the index, but before a commit is made. Should the hook exit with a
      non-zero status, git am will exit.
      
      Re-implement this in builtin/am.c.
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      6c24c5c0
    • P
      builtin-am: invoke applypatch-msg hook · b8803d8f
      Paul Tan 提交于
      Since d1c5f2a4 (Add git-am, applymbox replacement., 2005-10-07),
      git-am.sh will invoke the applypatch-msg hooks just after extracting the
      patch message. If the applypatch-msg hook exits with a non-zero status,
      git-am.sh abort before even applying the patch to the index.
      
      Re-implement this in builtin/am.c.
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      b8803d8f
    • P
      builtin-am: support automatic notes copying · 88b291fe
      Paul Tan 提交于
      Since eb2151bb (rebase: support automatic notes copying, 2010-03-12),
      git-am.sh supported automatic notes copying in --rebasing mode by
      invoking "git notes copy" once it has finished applying all the patches.
      
      Re-implement this feature in builtin/am.c.
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      88b291fe
    • P
      builtin-am: invoke post-rewrite hook · 13b97ea5
      Paul Tan 提交于
      Since 96e19488 (rebase: invoke post-rewrite hook, 2010-03-12), git-am.sh
      will invoke the post-rewrite hook after it successfully finishes
      applying all the queued patches.
      
      To do this, when parsing a mail to extract its patch and metadata, in
      --rebasing mode git-am.sh will also store the original commit ID in the
      $state_dir/original-commit file. Once it applies and commits the patch,
      the original commit ID, and the new commit ID, will be appended to the
      $state_dir/rewritten file.
      
      Once all of the queued mail have been processed, git-am.sh will then
      invoke the post-rewrite hook with the contents of the
      $state_dir/rewritten file.
      
      Re-implement this in builtin/am.c.
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      13b97ea5
    • P
      builtin-am: implement -S/--gpg-sign, commit.gpgsign · 7e35dacb
      Paul Tan 提交于
      Since 3b4e395f (am: add the --gpg-sign option, 2014-02-01), git-am.sh
      supported the --gpg-sign option, and would pass it to git-commit-tree,
      thus GPG-signing the commit object.
      
      Re-implement this option in builtin/am.c.
      
      git-commit-tree would also sign the commit by default if the
      commit.gpgsign setting is true. Since we do not run commit-tree, we
      re-implement this behavior by handling the commit.gpgsign setting
      ourselves.
      Helped-by: NStefan Beller <sbeller@google.com>
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      7e35dacb
    • P
      builtin-am: implement --committer-date-is-author-date · 0cd4bcba
      Paul Tan 提交于
      Since 3f01ad66 (am: Add --committer-date-is-author-date option,
      2009-01-22), git-am.sh implemented the --committer-date-is-author-date
      option, which tells git-am to use the timestamp recorded in the email
      message as both author and committer date.
      
      Re-implement this option in builtin/am.c.
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      0cd4bcba
    • P
      builtin-am: implement --ignore-date · f07adb62
      Paul Tan 提交于
      Since a79ec62d (git-am: Add --ignore-date option, 2009-01-24), git-am.sh
      supported the --ignore-date option, and would use the current timestamp
      instead of the one provided in the patch if the option was set.
      
      Re-implement this option in builtin/am.c.
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      f07adb62
    • P
      builtin-am: pass git-apply's options to git-apply · 257e8cec
      Paul Tan 提交于
      git-am.sh recognizes some of git-apply's options, and would pass them to
      git-apply:
      
      * --whitespace, since 8c31cb82 (git-am: --whitespace=x option.,
        2006-02-28)
      
      * -C, since 67dad687 (add -C[NUM] to git-am, 2007-02-08)
      
      * -p, since 2092a1fe (Teach git-am to pass -p option down to git-apply,
        2007-02-11)
      
      * --directory, since b47dfe9e (git-am: add --directory=<dir> option,
        2009-01-11)
      
      * --reject, since b80da424 (git-am: implement --reject option passed to
        git-apply, 2009-01-23)
      
      * --ignore-space-change, --ignore-whitespace, since 86c91f91 (git apply:
        option to ignore whitespace differences, 2009-08-04)
      
      * --exclude, since 77e9e496 (am: pass exclude down to apply, 2011-08-03)
      
      * --include, since 58725efd (am: support --include option, 2012-03-28)
      
      * --reject, since b80da424 (git-am: implement --reject option passed to
        git-apply, 2009-01-23)
      
      Re-implement support for these options in builtin/am.c.
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      257e8cec
    • P
      builtin-am: implement --[no-]scissors · 9b646617
      Paul Tan 提交于
      Since 017678b4 (am/mailinfo: Disable scissors processing by default,
      2009-08-26), git-am supported the --[no-]scissors option, passing it to
      git-mailinfo.
      
      Re-implement support for this option in builtin/am.c.
      
      Since the default setting of --scissors in git-mailinfo can be
      configured with mailinfo.scissors (and perhaps through other settings in
      the future), to be safe we make an explicit distinction between
      SCISSORS_UNSET, SCISSORS_TRUE and SCISSORS_FALSE.
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      9b646617
    • P
      builtin-am: support --keep-cr, am.keepcr · 5d123a40
      Paul Tan 提交于
      Since ad2c9280 (git-am: Add command line parameter `--keep-cr` passing it
      to git-mailsplit, 2010-02-27), git-am.sh supported the --keep-cr option
      and would pass it to git-mailsplit.
      
      Since e80d4cbe (git-am: Add am.keepcr and --no-keep-cr to override it,
      2010-02-27), git-am.sh supported the am.keepcr config setting, which
      controls whether --keep-cr is on by default.
      
      Re-implement the above in builtin/am.c.
      Signed-off-by: NPaul Tan <pyokagan@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      5d123a40