1. 15 7月, 2013 1 次提交
  2. 13 7月, 2013 1 次提交
    • S
      .mailmap: Map email addresses to names · 94b410bb
      Stefan Beller 提交于
      People change email addresses quite often and sometimes forget to
      add their entry to the mailmap file.  I have contacted lots of
      people, whose name occurs multiple times in the short log having
      different email addresses. The entries in the mailmap of this patch
      are either confirmed by them or are trivial.  Trivial means
      different capitalisation of the domain (@MIT.EDU and @mit.edu) or
      the domain was localhost, (none) or @local.
      
      Additionally to adding (name, email) mappings to the .mailmap file,
      it has also been sorted ("LC_ALL=C /usr/bin/sort", byte-value sort).
      
      While the most changes happen at the email addresses, we also have a
      name change in here. Karl Hasselström is now known as Karl Wiberg
      due to marriage. Congratulations!
      
      To find out whom to contact I used the following small
      script:
      
          #!/bin/bash
          git shortlog -sne |awk '{ NF--; $1=""; print }' |sort |uniq -d > mailmapdoubles
          while read line ; do
              # remove leading whitespace
              trimmed=$(echo $line | sed -e 's/^ *//g' -e 's/ *$//g')
              echo "git shortlog -sne | grep \""$trimmed"\""
          done < mailmapdoubles > mailmapdoubles2
          sh mailmapdoubles2
          rm mailmapdoubles
          rm mailmapdoubles2
      
      Also interesting for similar tasks are these snippets:
      
          # Finding out duplicates by comparing email addresses:
          git shortlog -sne |awk '{ print $NF }' |sort |uniq -d
      
          # Finding out duplicates by comparing names:
          git shortlog -sne |awk '{ NF--; $1=""; print }' |sort |uniq -d
      Signed-off-by: NStefan Beller <stefanbeller@googlemail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      94b410bb
  3. 12 7月, 2013 11 次提交
    • J
      Update draft release notes to 1.8.4 · 911011aa
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      911011aa
    • J
      Merge branch 'jc/t1512-fix' · eb40e515
      Junio C Hamano 提交于
      A test that should have failed but didn't revealed a bug that needs
      to be corrected.
      
      * jc/t1512-fix:
        get_short_sha1(): correctly disambiguate type-limited abbreviation
        t1512: correct leftover constants from earlier edition
      eb40e515
    • J
      Merge branch 'tr/test-v-and-v-subtest-only' · f3930e43
      Junio C Hamano 提交于
      Finishing touches to a topic that is already in master for the
      upcoming release.
      
      * tr/test-v-and-v-subtest-only:
        t0000: do not use export X=Y
      f3930e43
    • J
      Merge branch 'af/rebase-i-merge-options' · 5b6cd0fe
      Junio C Hamano 提交于
      "git rebase -i" now honors --strategy and -X options.
      
      * af/rebase-i-merge-options:
        Do not ignore merge options in interactive rebase
      5b6cd0fe
    • J
      Merge branch 'pb/stash-refuse-to-kill' · d26792ad
      Junio C Hamano 提交于
      "git stash save" is not just about "saving" the local changes, but
      also is to restore the working tree state to that of HEAD. If you
      changed a non-directory into a directory in the local change, you
      may have untracked files in that directory, which have to be killed
      while doing so, unless you run it with --include-untracked.  Teach
      the command to detect and error out before spreading the damage.
      
      This needed a small fix to "ls-files --killed".
      
      * pb/stash-refuse-to-kill:
        git stash: avoid data loss when "git stash save" kills a directory
        treat_directory(): do not declare submodules to be untracked
      d26792ad
    • J
      Merge branch 'jc/maint-diff-core-safecrlf' · 77f3c3f1
      Junio C Hamano 提交于
      "git diff" refused to even show difference when core.safecrlf is
      set to true (i.e. error out) and there are offending lines in the
      working tree files.
      
      * jc/maint-diff-core-safecrlf:
        diff: demote core.safecrlf=true to core.safecrlf=warn
      77f3c3f1
    • J
      Merge branch 'jg/status-config' · e29497d2
      Junio C Hamano 提交于
      "git status" learned status.branch and status.short configuration
      variables to use --branch and --short options by default (override
      with --no-branch and --no-short options from the command line).
      
      * jg/status-config:
        status/commit: make sure --porcelain is not affected by user-facing config
        commit: make it work with status.short
        status: introduce status.branch to enable --branch by default
        status: introduce status.short to enable --short by default
      e29497d2
    • J
      Merge branch 'jk/bash-completion' · 04ce8938
      Junio C Hamano 提交于
      * jk/bash-completion:
        completion: learn about --man-path
        completion: handle unstuck form of base git options
      04ce8938
    • J
      Merge branch 'rr/rebase-checkout-reflog' · 6af98404
      Junio C Hamano 提交于
      Invocations of "git checkout" used internally by "git rebase" were
      counted as "checkout", and affected later "git checkout -" to the
      the user to an unexpected place.
      
      * rr/rebase-checkout-reflog:
        checkout: respect GIT_REFLOG_ACTION
        status: do not depend on rebase reflog messages
        t/t2021-checkout-last: "checkout -" should work after a rebase finishes
        wt-status: remove unused field in grab_1st_switch_cbdata
        t7512: test "detached from" as well
      6af98404
    • J
      Merge branch 'jc/triangle-push-fixup' · 3b8d2765
      Junio C Hamano 提交于
      Earlier remote.pushdefault (and per-branch branch.*.pushremote)
      were introduced as an additional mechanism to choose what
      repository to push into when "git push" did not say it from the
      command line, to help people who push to a repository that is
      different from where they fetch from.  This attempts to finish that
      topic by teaching the default mechanism to choose branch in the
      remote repository to be updated by such a push.
      
      The 'current', 'matching' and 'nothing' modes (specified by the
      push.default configuration variable) extend to such a "triangular"
      workflow naturally, but 'upstream' and 'simple' have to be updated.
      
      . 'upstream' is about pushing back to update the branch in the
        remote repository that the current branch fetches from and
        integrates with, it errors out in a triangular workflow.
      
      . 'simple' is meant to help new people by avoiding mistakes, and
        will be the safe default in Git 2.0.
      
        In a non-triangular workflow, it will continue to act as a cross
        between 'upstream' and 'current' in that it pushes to the current
        branch's @{upstream} only when it is set to the same name as the
        current branch (e.g. your 'master' forks from the 'master' from
        the central repository).
      
        In a triangular workflow, this series tentatively defines it as
        the same as 'current', but we may have to tighten it to avoid
        surprises in some way.
      
      * jc/triangle-push-fixup:
        t/t5528-push-default: test pushdefault workflows
        t/t5528-push-default: generalize test_push_*
        push: change `simple` to accommodate triangular workflows
        config doc: rewrite push.default section
        t/t5528-push-default: remove redundant test_config lines
      3b8d2765
    • J
      Merge branch 'mh/maint-lockfile-overflow' · fb58544e
      Junio C Hamano 提交于
      * mh/maint-lockfile-overflow:
        lockfile: fix buffer overflow in path handling
      fb58544e
  4. 08 7月, 2013 2 次提交
    • T
      t0000: do not use export X=Y · e66681eb
      Torsten Bögershausen 提交于
      The shell syntax "export X=Y A=B" is not understood by all shells.
      Signed-off-by: NTorsten Bögershausen <tboegi@web.de>
      Acked-by: NThomas Rast <trast@inf.ethz.ch>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      e66681eb
    • M
      lockfile: fix buffer overflow in path handling · 2fbd4f92
      Michael Haggerty 提交于
      The path of the file to be locked is held in lock_file::filename,
      which is a fixed-length buffer of length PATH_MAX.  This buffer is
      also (temporarily) used to hold the path of the lock file, which is
      the path of the file being locked plus ".lock".  Because of this, the
      path of the file being locked must be less than (PATH_MAX - 5)
      characters long (5 chars are needed for ".lock" and one character for
      the NUL terminator).
      
      On entry into lock_file(), the path length was only verified to be
      less than PATH_MAX characters, not less than (PATH_MAX - 5)
      characters.
      
      When and if resolve_symlink() is called, then that function is
      correctly told to treat the buffer as (PATH_MAX - 5) characters long.
      This part is correct.  However:
      
      * If LOCK_NODEREF was specified, then resolve_symlink() is never
        called.
      
      * If resolve_symlink() is called but the path is not a symlink, then
        the length check is never applied.
      
      So it is possible for a path with length (PATH_MAX - 5 <= len <
      PATH_MAX) to make it through the checks.  When ".lock" is strcat()ted
      to such a path, the lock_file::filename buffer is overflowed.
      
      Fix the problem by adding a check when entering lock_file() that the
      original path is less than (PATH_MAX - 5) characters.
      
      [jc: with independent development by Peff]
      Signed-off-by: NMichael Haggerty <mhagger@alum.mit.edu>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      2fbd4f92
  5. 05 7月, 2013 2 次提交
    • J
      Merge branch 'maint' · f8abaeba
      Junio C Hamano 提交于
      * maint:
        fixup-builtins: retire an old transition helper script
      f8abaeba
    • J
      Merge branch 'tr/test-v-and-v-subtest-only' · 04f2ddda
      Junio C Hamano 提交于
      Allows N instances of tests run in parallel, each running 1/N parts
      of the test suite under Valgrind, to speed things up.
      
      * tr/test-v-and-v-subtest-only:
        perf-lib: fix start/stop of perf tests
        test-lib: support running tests under valgrind in parallel
        test-lib: allow prefixing a custom string before "ok N" etc.
        test-lib: valgrind for only tests matching a pattern
        test-lib: verbose mode for only tests matching a pattern
        test-lib: self-test that --verbose works
        test-lib: rearrange start/end of test_expect_* and test_skip
        test-lib: refactor $GIT_SKIP_TESTS matching
        test-lib: enable MALLOC_* for the actual tests
      04f2ddda
  6. 04 7月, 2013 21 次提交
  7. 03 7月, 2013 1 次提交
  8. 02 7月, 2013 1 次提交
    • J
      get_short_sha1(): correctly disambiguate type-limited abbreviation · 94d75d1e
      Junio C Hamano 提交于
      One test in t1512 that expects a failure incorrectly passed.  The
      test prepares a commit whose object name begins with ten "0"s, and
      also prepares a tag that points at the commit.  The object name of
      the tag also begins with ten "0"s.  There is no other commit-ish
      object in the repository whose name begins with such a prefix.
      
      Ideally, in such a repository:
      
          $ git rev-parse --verify 0000000000^{commit}
      
      should yield that commit.  If 0000000000 is taken as the commit
      0000000000e4f, peeling it to a commmit yields that commit itself,
      and if 0000000000 is taken as the tag 0000000000f8f, peeling it to a
      commit also yields the same commit, so in that twisted sense, the
      extended SHA-1 expression 0000000000^{commit} is unambigous.  The
      test that expects a failure is to check the above command.
      
      The reason the test expects a failure is that we did not implement
      such a "unification" of two candidate objects.  What we did (or at
      least, meant to) implement was to recognise that a commit-ish is
      required to expand 0000000000, and notice that there are two succh
      commit-ish, and diagnose the request as ambiguous.
      
      However, there was a bug in the logic to check the candidate
      objects.  When the code saw 0000000000f8f (a tag) that shared the
      shortened prefix (ten "0"s), it tried to make sure that the tag is a
      commit-ish by looking at the tag object.  Because it incorrectly
      used lookup_object() when the tag has not been parsed, however, we
      incorrectly declared that the tag is _not_ a commit-ish, leaving the
      sole commit in the repository, 0000000000e4f, that has the required
      prefix as "unique match", causing the test to pass when it shouldn't.
      
      This fixes the logic to inspect the type of the object a tag refers
      to, to make the test that is expected to fail correctly fail.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      94d75d1e