1. 23 1月, 2014 5 次提交
    • P
      git p4 test: do not pollute /tmp · 0cf1b72a
      Pete Wyckoff 提交于
      Generating the submit template for p4 uses tempfile.mkstemp(),
      which by default puts files in /tmp.  For a test that fails,
      possibly on purpose, this is not cleaned up.  Run with TMPDIR
      pointing into the trash directory so the temp files go away
      with the test results.
      
      To do this required some other minor changes.  First, the editor
      is launched using system(editor + " " + template_file), using
      shell expansion to build the command string.  This doesn't work
      if editor has a space in it.  And is generally unwise as it's
      easy to fool the shell into doing extra work.  Exec the args
      directly, without shell expansion.
      
      Second, without shell expansion, the trick of "P4EDITOR=:" used
      in the tests doesn't work.  Use a real command, true, as the
      non-interactive editor for testing.
      Signed-off-by: NPete Wyckoff <pw@padd.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      0cf1b72a
    • P
      git p4 test: run as user "author" · 0055b56e
      Pete Wyckoff 提交于
      The tests use author@example.com as the canonical submitter,
      but he does not have an entry in the p4 users database.
      This causes the generated change description to complain
      that the git and p4 users disagree.  The complaint message
      is still valid, but isn't useful in tests.  It was introduced
      in 848de9c3 (git-p4: warn if git authorship won't be retained,
      2011-05-13).
      
      Fix t9813 to use @example.com instead of @localhost due to
      change in p4_add_user().  Move the function into the git p4
      test library so author can be added at initialization time.
      Signed-off-by: NPete Wyckoff <pw@padd.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      0055b56e
    • P
      git p4 test: is_cli_file_writeable succeeds · 0577849d
      Pete Wyckoff 提交于
      Commit e9df0f9c (git p4: cygwin p4 client does not mark read-only,
      2013-01-26) fixed a problem with "test -w" on cygwin, but mistakenly
      marked the new test as failing.  Fix this.
      Signed-off-by: NPete Wyckoff <pw@padd.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      0577849d
    • P
      git p4 test: explicitly check p4 wildcard delete · 630c4f19
      Pete Wyckoff 提交于
      There was no test where p4 deleted a file with a wildcard
      character.  Make sure git p4 applies the wildcard decoding
      properly when importing a delete that includes a wildcard.
      Signed-off-by: NPete Wyckoff <pw@padd.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      630c4f19
    • P
      git p4: work around p4 bug that causes empty symlinks · 40f846c3
      Pete Wyckoff 提交于
      Damien Gérard highlights an interesting problem.  Some p4
      repositories end up with symlinks that have an empty target.  It
      is not possible to create this with current p4, but they do
      indeed exist.
      
      The effect in git p4 is that "p4 print" on the symlink returns an
      empty string, confusing the curret symlink-handling code.
      
      Such broken repositories cause problems in p4 as well, even with
      no git involved.  In p4, syncing to a change that includes a
      bogus symlink causes errors:
      
          //depot/empty-symlink - updating /home/me/p4/empty-symlink
          rename: /home/me/p4/empty-symlink: No such file or directory
      
      and leaves no symlink.
      
      In git, replicate the p4 behavior by ignoring these bad symlinks.
      If, in a later p4 revision, the symlink happens to point to
      something non-null, the symlink will be replaced properly.
      
      Add a big test for all this too.
      
      This happens to be a regression introduced by 1292df11 (git-p4:
      Fix occasional truncation of symlink contents., 2013-08-08) and
      appeared first in 1.8.5.  But it shows up only in p4 repositories
      of dubious character, so can wait for a proper release.
      Tested-by: NDamien Gérard <damien@iwi.me>
      Signed-off-by: NPete Wyckoff <pw@padd.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      40f846c3
  2. 22 1月, 2014 2 次提交
  3. 13 12月, 2013 3 次提交
    • J
      Merge branch 'cl/p4-use-diff-tree' · feb28ad0
      Junio C Hamano 提交于
      * cl/p4-use-diff-tree:
        git p4: Use git diff-tree instead of format-patch
      feb28ad0
    • J
      Merge branch 'tr/config-multivalue-lift-max' · 34977179
      Junio C Hamano 提交于
      * tr/config-multivalue-lift-max:
        config: arbitrary number of matches for --unset and --replace-all
      34977179
    • J
      Merge branch 'mh/fetch-tags-in-addition-to-normal-refs' · e66ef7ae
      Junio C Hamano 提交于
      The "--tags" option to "git fetch" used to be literally a synonym to
      a "refs/tags/*:refs/tags/*" refspec, which meant that (1) as an
      explicit refspec given from the command line, it silenced the lazy
      "git fetch" default that is configured, and (2) also as an explicit
      refspec given from the command line, it interacted with "--prune"
      to remove any tag that the remote we are fetching from does not
      have.
      
      This demotes it to an option; with it, we fetch all tags in
      addition to what would be fetched without the option, and it does
      not interact with the decision "--prune" makes to see what
      remote-tracking refs the local has are missing the remote
      counterpart.
      
      * mh/fetch-tags-in-addition-to-normal-refs: (23 commits)
        fetch: improve the error messages emitted for conflicting refspecs
        handle_duplicate(): mark error message for translation
        ref_remote_duplicates(): extract a function handle_duplicate()
        ref_remove_duplicates(): simplify loop logic
        t5536: new test of refspec conflicts when fetching
        ref_remove_duplicates(): avoid redundant bisection
        git-fetch.txt: improve description of tag auto-following
        fetch-options.txt: simplify ifdef/ifndef/endif usage
        fetch, remote: properly convey --no-prune options to subprocesses
        builtin/remote.c:update(): use struct argv_array
        builtin/remote.c: reorder function definitions
        query_refspecs(): move some constants out of the loop
        fetch --prune: prune only based on explicit refspecs
        fetch --tags: fetch tags *in addition to* other stuff
        fetch: only opportunistically update references based on command line
        get_expanded_map(): avoid memory leak
        get_expanded_map(): add docstring
        builtin/fetch.c: reorder function definitions
        get_ref_map(): rename local variables
        api-remote.txt: correct section "struct refspec"
        ...
      e66ef7ae
  4. 10 12月, 2013 2 次提交
    • J
      Merge git://repo.or.cz/git-gui · 3d252a9c
      Junio C Hamano 提交于
      * git://repo.or.cz/git-gui:
        git-gui: correct spelling errors in comments
        git-gui: add menu item to launch a bash shell on Windows.
        git-gui: corrected setup of git worktree under cygwin.
        git-gui: right half window is paned
        git-gui: Add gui.displayuntracked option
        git-gui: show the maxrecentrepo config option in the preferences dialog
        git-gui: added gui.maxrecentrepo to extend the number of remembered repos
        git-gui: Improve font rendering on retina macbooks
      3d252a9c
    • J
      Merge git://ozlabs.org/~paulus/gitk · ec418bcf
      Junio C Hamano 提交于
      * git://ozlabs.org/~paulus/gitk:
        gitk: Recognize -L option
        gitk: Support showing the gathered inline diffs
        gitk: Split out diff part in $commitinfo
        gitk: Refactor per-line part of getblobdiffline and its support
        gitk: Support -G option from the command line
        gitk: Tag display improvements
      ec418bcf
  5. 07 12月, 2013 8 次提交
    • T
      config: arbitrary number of matches for --unset and --replace-all · 83786fa4
      Thomas Rast 提交于
      git-config used a static match array to hold the matches we want to
      unset/replace when using --unset or --replace-all.  Use a
      variable-sized array instead.
      
      This in particular fixes the symptoms git-svn had when storing large
      numbers of svn-remote.*.added-placeholder entries in the config file.
      
      While the tests are rather more paranoid than just --unset and
      --replace-all, the other operations already worked.  Indeed git-svn's
      usage only breaks the first time *after* creating so many entries,
      when it wants to unset and re-add them all.
      Reported-by: NJess Hottenstein <jess.hottenstein@gmail.com>
      Signed-off-by: NThomas Rast <tr@thomasrast.ch>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      83786fa4
    • J
      Start 1.9 cycle · 077f4344
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      077f4344
    • J
      Merge branch 'jk/remove-experimental-loose-object-support' · dd1cec57
      Junio C Hamano 提交于
      * jk/remove-experimental-loose-object-support:
        drop support for "experimental" loose objects
      dd1cec57
    • J
      Merge branch 'nd/magic-pathspec' · e2bcd4f7
      Junio C Hamano 提交于
      "git diff -- ':(icase)makefile'" were rejected unnecessarily.
      This needs to be merged to 'maint' later.
      
      * nd/magic-pathspec:
        diff: restrict pathspec limitations to diff b/f case only
      e2bcd4f7
    • J
      Merge branch 'rr/for-each-ref-decoration' · cb6bd572
      Junio C Hamano 提交于
      Add a few formatting directives to "git for-each-ref --format=...",
      to paint them in color, etc.
      
      * rr/for-each-ref-decoration:
        for-each-ref: avoid color leakage
        for-each-ref: introduce %(color:...) for color
        for-each-ref: introduce %(upstream:track[short])
        for-each-ref: introduce %(HEAD) asterisk marker
        t6300 (for-each-ref): don't hardcode SHA-1 hexes
        t6300 (for-each-ref): clearly demarcate setup
      cb6bd572
    • J
      Merge branch 'jc/bundle' · 10a36382
      Junio C Hamano 提交于
      Code clean-up.
      
      * jc/bundle:
        bundle: use argv-array
      10a36382
    • J
      Merge branch 'rh/remote-hg-bzr-updates' · ef63eb55
      Junio C Hamano 提交于
      Updates to remote-bzr and remote-hg in contrib.
      
      * rh/remote-hg-bzr-updates:
        remote-bzr, remote-hg: fix email address regular expression
        test-hg.sh: help user correlate verbose output with email test
        test-hg.sh: fix duplicate content strings in author tests
        test-hg.sh: avoid obsolete 'test' syntax
        test-hg.sh: eliminate 'local' bashism
        test-bzr.sh, test-hg.sh: prepare for change to push.default=simple
        test-bzr.sh, test-hg.sh: allow running from any dir
        test-lib.sh: convert $TEST_DIRECTORY to an absolute path
      ef63eb55
    • J
      Merge branch 'jn/perl-lib-extra' · 128c5d07
      Junio C Hamano 提交于
      Allow customizing the paths to Perl modules with the new
      PERLLIB_EXTRA makefile variable.
      
      * jn/perl-lib-extra:
        Makefile: add PERLLIB_EXTRA variable that adds to default perl path
        Makefile: rebuild perl scripts when perl paths change
      128c5d07
  6. 06 12月, 2013 14 次提交
    • J
      Merge branch 'gj/push-more-verbose-advice' (early part) · b00d2440
      Junio C Hamano 提交于
      * 'gj/push-more-verbose-advice' (early part):
        push: enhance unspecified push default warning
      b00d2440
    • J
      Merge branch 'jn/mediawiki-makefile-updates' · 968182a4
      Junio C Hamano 提交于
      Build and installation procedure clean-up.
      
      * jn/mediawiki-makefile-updates:
        git-remote-mediawiki build: handle DESTDIR/INSTLIBDIR with whitespace
        git-remote-mediawiki build: make 'install' command configurable
        git-remote-mediawiki: honor DESTDIR in "make install"
        git-remote-mediawiki: do not remove installed files in "clean" target
      968182a4
    • J
      Merge branch 'jl/submodule-update-retire-orig-flags' · c83386d1
      Junio C Hamano 提交于
      Code clean-up.
      
      * jl/submodule-update-retire-orig-flags:
        submodule update: remove unnecessary orig_flags variable
      c83386d1
    • J
      Merge branch 'nd/wt-status-align-i18n' · c3dc3827
      Junio C Hamano 提交于
      An attempt to automatically align the names in the "git status"
      output, taking the display width of (translated) section labels
      into account.
      
      * nd/wt-status-align-i18n:
        wt-status: take the alignment burden off translators
      c3dc3827
    • J
      Merge branch 'sb/sha1-loose-object-info-check-existence' · c17fa972
      Junio C Hamano 提交于
      "git cat-file --batch-check=ok" did not check the existence of the
      named object.
      
      * sb/sha1-loose-object-info-check-existence:
        sha1_loose_object_info(): do not return success on missing object
      c17fa972
    • J
      Merge branch 'jk/two-way-merge-corner-case-fix' · 39795802
      Junio C Hamano 提交于
      Fix a rather longstanding corner-case bug in twoway "reset to
      there" merge, which is most often seen in "git am --abort".
      
      * jk/two-way-merge-corner-case-fix:
        t1005: add test for "read-tree --reset -u A B"
        t1005: reindent
        unpack-trees: fix "read-tree -u --reset A B" with conflicted index
      39795802
    • J
      Merge branch 'jc/ref-excludes' · 10167eb2
      Junio C Hamano 提交于
      People often wished a way to tell "git log --branches" (and "git
      log --remotes --not --branches") to exclude some local branches
      from the expansion of "--branches" (similarly for "--tags", "--all"
      and "--glob=<pattern>").  Now they have one.
      
      * jc/ref-excludes:
        rev-parse: introduce --exclude=<glob> to tame wildcards
        rev-list --exclude: export add/clear-ref-exclusion and ref-excluded API
        rev-list --exclude: tests
        document --exclude option
        revision: introduce --exclude=<glob> to tame wildcards
      10167eb2
    • J
      Merge branch 'nv/parseopt-opt-arg' · 3576f113
      Junio C Hamano 提交于
      Enhance "rev-parse --parseopt" mode to help parsing options with
      an optional parameter.
      
      * nv/parseopt-opt-arg:
        rev-parse --parseopt: add the --stuck-long mode
        Use the word 'stuck' instead of 'sticked'
      3576f113
    • J
      Merge branch 'bc/http-100-continue' · c5a77e8f
      Junio C Hamano 提交于
      Issue "100 Continue" responses to help use of GSS-Negotiate
      authentication scheme over HTTP transport when needed.
      
      * bc/http-100-continue:
        remote-curl: fix large pushes with GSSAPI
        remote-curl: pass curl slot_results back through run_slot
        http: return curl's AUTHAVAIL via slot_results
      c5a77e8f
    • J
      Merge branch 'jc/merge-base-reflog' · 07d406b7
      Junio C Hamano 提交于
      Code the logic in "pull --rebase" that figures out a fork point
      from reflog entries in C.
      
      * jc/merge-base-reflog:
        merge-base: teach "--fork-point" mode
        merge-base: use OPT_CMDMODE and clarify the command line parsing
      07d406b7
    • J
      Merge branch 'jk/replace-perl-in-built-scripts' · 219ea0e7
      Junio C Hamano 提交于
      * jk/replace-perl-in-built-scripts:
        use @@PERL@@ in built scripts
      219ea0e7
    • J
      Merge branch 'jh/loose-object-dirs-creation-race' · 86cd8dc8
      Junio C Hamano 提交于
      When two processes created one loose object file each, which fell
      into the same fan-out bucket that previously did not have any
      objects, they both tried to do an equivalent of
      
          mkdir .git/objects/$fanout &&
          chmod $shared_perm .git/objects/$fanout
      
      before writing into their file .git/objects/$fanout/$remainder,
      one of which could have failed unnecessarily when the second
      invocation of mkdir found that the directory already has been
      created by the first one.
      
      * jh/loose-object-dirs-creation-race:
        sha1_file.c:create_tmpfile(): Fix race when creating loose object dirs
      86cd8dc8
    • J
      Merge branch 'jk/robustify-parse-commit' · 5bb62059
      Junio C Hamano 提交于
      * jk/robustify-parse-commit:
        checkout: do not die when leaving broken detached HEAD
        use parse_commit_or_die instead of custom message
        use parse_commit_or_die instead of segfaulting
        assume parse_commit checks for NULL commit
        assume parse_commit checks commit->object.parsed
        log_tree_diff: die when we fail to parse a commit
      5bb62059
    • J
      Merge branch 'ak/submodule-foreach-quoting' · b2a0afd9
      Junio C Hamano 提交于
      A behavior change, but a worthwhile one: "git submodule foreach"
      was treating its arguments as part of a single command to be
      concatenated and passed to a shell, making writing buggy
      scripts too easy.
      
      This patch preserves the old "just pass it to the shell" behavior
      when a single argument is passed to 'git submodule foreach' and
      moves to a new "skip the shell and use the arguments passed
      unmolested" behavior when more than one argument is passed.
      
      The old behavior (always concatenating and passing to the shell)
      was similar to the 'ssh' command, while the new behavior (switching
      on the number of arguments) is what 'xterm -e' does.
      
      May need more thought to make sure this change is advertised well
      so that scripts that used multiple arguments but added their own
      extra layer of quoting are not broken.
      
      * ak/submodule-foreach-quoting:
        submodule foreach: skip eval for more than one argument
      b2a0afd9
  7. 04 12月, 2013 6 次提交