1. 22 Dec, 2017 1 commit
    • Luke Diamand's avatar
      git-p4: update multiple shelved change lists · 8cf422db
      Luke Diamand authored
      --update-shelve can now be specified multiple times on the
      command-line, to update multiple shelved changelists in a single
      submit.
      
      This then means that a git patch series can be mirrored to a
      sequence of shelved changelists, and (relatively easily) kept in
      sync as changes are made in git.
      
      Note that Perforce does not really support overlapping shelved
      changelists where one change touches the files modified by
      another. Trying to do this will result in merge conflicts.
      Signed-off-by: Luke Diamand's avatarLuke Diamand <[email protected]>
      Signed-off-by: default avatarJunio C Hamano <[email protected]>
      8cf422db
  2. 19 Dec, 2017 13 commits
    • Junio C Hamano's avatar
      RelNotes: the tenth batch · 936d1b98
      Junio C Hamano authored
      Signed-off-by: default avatarJunio C Hamano <[email protected]>
      936d1b98
    • Junio C Hamano's avatar
      Merge branch 'ls/editor-waiting-message' · 0c69a132
      Junio C Hamano authored
      Git shows a message to tell the user that it is waiting for the
      user to finish editing when spawning an editor, in case the editor
      opens to a hidden window or somewhere obscure and the user gets
      lost.
      
      * ls/editor-waiting-message:
        launch_editor(): indicate that Git waits for user input
        refactor "dumb" terminal determination
      0c69a132
    • Junio C Hamano's avatar
      Merge branch 'sg/setup-doc-update' · bdae4af8
      Junio C Hamano authored
      Comment update.
      
      * sg/setup-doc-update:
        setup.c: fix comment about order of .git directory discovery
      bdae4af8
    • Junio C Hamano's avatar
      Merge branch 'ar/unconfuse-three-dots' · 8d7fefaa
      Junio C Hamano authored
      Ancient part of codebase still shows dots after an abbreviated
      object name just to show that it is not a full object name, but
      these ellipses are confusing to people who newly discovered Git
      who are used to seeing abbreviated object names and find them
      confusing with the range syntax.
      
      * ar/unconfuse-three-dots:
        t2020: test variations that matter
        t4013: test new output from diff --abbrev --raw
        diff: diff_aligned_abbrev: remove ellipsis after abbreviated SHA-1 value
        t4013: prepare for upcoming "diff --raw --abbrev" output format change
        checkout: describe_detached_head: remove ellipsis after committish
        print_sha1_ellipsis: introduce helper
        Documentation: user-manual: limit usage of ellipsis
        Documentation: revisions: fix typo: "three dot" ---> "three-dot" (in line with "two-dot").
      8d7fefaa
    • Junio C Hamano's avatar
      Merge branch 'tg/worktree-create-tracking' · 66d3f193
      Junio C Hamano authored
      The way "git worktree add" determines what branch to create from
      where and checkout in the new worktree has been updated a bit.
      
      * tg/worktree-create-tracking:
        add worktree.guessRemote config option
        worktree: add --guess-remote flag to add subcommand
        worktree: make add <path> <branch> dwim
        worktree: add --[no-]track option to the add subcommand
        worktree: add can be created from any commit-ish
        checkout: factor out functions to new lib file
      66d3f193
    • Junio C Hamano's avatar
      Merge branch 'gk/tracing-optimization' · 1974f479
      Junio C Hamano authored
      The tracing infrastructure has been optimized for cases where no
      tracing is requested.
      
      * gk/tracing-optimization:
        trace: improve performance while category is disabled
        trace: remove trace key normalization
      1974f479
    • Junio C Hamano's avatar
      Merge branch 'bw/submodule-config-cleanup' · 6f3a0b6d
      Junio C Hamano authored
      Recent update to the submodule configuration code broke "diff-tree"
      by accidentally stopping to read from the index upfront.
      
      * bw/submodule-config-cleanup:
        diff-tree: read the index so attribute checks work in bare repositories
      6f3a0b6d
    • Junio C Hamano's avatar
      Merge branch 'sb/clone-recursive-submodule-doc' · a328b2cb
      Junio C Hamano authored
      Doc update.
      
      * sb/clone-recursive-submodule-doc:
        Documentation/git-clone: improve description for submodule recursing
      a328b2cb
    • Junio C Hamano's avatar
      Merge branch 'ls/git-gui-no-double-utf8-author-name' · e7d1b526
      Junio C Hamano authored
      Amending commits in git-gui broke the author name that is non-ascii
      due to incorrect enconding conversion.
      
      * ls/git-gui-no-double-utf8-author-name:
        git-gui: prevent double UTF-8 conversion
      e7d1b526
    • Junio C Hamano's avatar
      Merge branch 'bw/pathspec-match-submodule-boundary' · f4f233e1
      Junio C Hamano authored
      An v2.12-era regression in pathspec match logic, which made it look
      into submodule tree even when it is not desired, has been fixed.
      
      * bw/pathspec-match-submodule-boundary:
        pathspec: only match across submodule boundaries when requested
      f4f233e1
    • Junio C Hamano's avatar
      Merge branch 'jt/diff-anchored-patience' · d7c6c236
      Junio C Hamano authored
      "git diff" learned a variant of the "--patience" algorithm, to
      which the user can specify which 'unique' line to be used as
      anchoring points.
      
      * jt/diff-anchored-patience:
        diff: support anchoring line(s)
      d7c6c236
    • Junio C Hamano's avatar
      Merge branch 'en/merge-recursive-icase-removal' · 6d2c4619
      Junio C Hamano authored
      The code internal to the recursive merge strategy was not fully
      prepared to see a path that is renamed to try overwriting another
      path that is only different in case on case insensitive systems.
      This does not matter in the current code, but will start to matter
      once the rename detection logic starts taking hints from nearby
      paths moving to some directory and moves a new path along with them.
      
      * en/merge-recursive-icase-removal:
        merge-recursive: ignore_case shouldn't reject intentional removals
      6d2c4619
    • Junio C Hamano's avatar
      Merge branch 'en/rename-progress' · 64668546
      Junio C Hamano authored
      Historically, the diff machinery for rename detection had a
      hardcoded limit of 32k paths; this is being lifted to allow users
      trade cycles with a (possibly) easier to read result.
      
      * en/rename-progress:
        diffcore-rename: make diff-tree -l0 mean -l<large>
        sequencer: show rename progress during cherry picks
        diff: remove silent clamp of renameLimit
        progress: fix progress meters when dealing with lots of work
        sequencer: warn when internal merge may be suboptimal due to renameLimit
      64668546
  3. 14 Dec, 2017 1 commit
  4. 13 Dec, 2017 14 commits
    • Junio C Hamano's avatar
      RelNotes: the ninth batch · d9a3764a
      Junio C Hamano authored
      Signed-off-by: default avatarJunio C Hamano <[email protected]>
      d9a3764a
    • Junio C Hamano's avatar
      Merge branch 'js/hashmap-update-sample' · d9195982
      Junio C Hamano authored
      Code comment update.
      
      * js/hashmap-update-sample:
        hashmap: adjust documentation to reflect reality
      d9195982
    • Junio C Hamano's avatar
      Merge branch 'en/remove-stripspace' · 37cba004
      Junio C Hamano authored
      An internal function that was left for backward compatibility has
      been removed, as there is no remaining callers.
      
      * en/remove-stripspace:
        strbuf: remove unused stripspace function alias
      37cba004
    • Junio C Hamano's avatar
      Merge branch 'jk/no-optional-locks' · e6bf6afe
      Junio C Hamano authored
      Doc update for a feature available in Git v2.14 and upwards.
      
      * jk/no-optional-locks:
        git-status.txt: mention --no-optional-locks
      e6bf6afe
    • Junio C Hamano's avatar
      Merge branch 'ds/for-each-file-in-obj-micro-optim' · 97e1f857
      Junio C Hamano authored
      The code to iterate over loose object files got optimized.
      
      * ds/for-each-file-in-obj-micro-optim:
        sha1_file: use strbuf_add() instead of strbuf_addf()
      97e1f857
    • Junio C Hamano's avatar
      Merge branch 'jk/progress-delay-fix' · 36ddee94
      Junio C Hamano authored
      A regression in the progress eye-candy was fixed.
      
      * jk/progress-delay-fix:
        progress: drop delay-threshold code
        progress: set default delay threshold to 100%, not 0%
      36ddee94
    • Junio C Hamano's avatar
      Merge branch 'ks/doc-checkout-previous' · 70656652
      Junio C Hamano authored
      @{-N} in "git checkout @{-N}" may refer to a detached HEAD state,
      but the documentation was not clear about it, which has been fixed.
      
      * ks/doc-checkout-previous:
        Doc/checkout: checking out using @{-N} can lead to detached state
      70656652
    • Junio C Hamano's avatar
      Merge branch 'fk/sendmail-from-path' · 577051bc
      Junio C Hamano authored
      "git send-email" tries to see if the sendmail program is available
      in /usr/lib and /usr/sbin; extend the list of locations to be
      checked to also include directories on $PATH.
      
      * fk/sendmail-from-path:
        git-send-email: honor $PATH for sendmail binary
      577051bc
    • Junio C Hamano's avatar
      Merge branch 'tg/t-readme-updates' · d22512e0
      Junio C Hamano authored
      Developer doc updates.
      
      * tg/t-readme-updates:
        t/README: document test_cmp_rev
        t/README: remove mention of adding copyright notices
      d22512e0
    • Junio C Hamano's avatar
      Merge branch 'pc/submodule-helper' · 41a05ee3
      Junio C Hamano authored
      A message fix.
      
      * pc/submodule-helper:
        submodule--helper.c: i18n: add a missing space in message
      41a05ee3
    • Junio C Hamano's avatar
      Merge branch 'jc/receive-pack-hook-doc' · e49ac110
      Junio C Hamano authored
      Doc update.
      
      * jc/receive-pack-hook-doc:
        hooks doc: clarify when receive-pack invokes its hooks
      e49ac110
    • Junio C Hamano's avatar
      Merge branch 'ab/pcre2-grep' · b3f04e5b
      Junio C Hamano authored
      "git grep" compiled with libpcre2 sometimes triggered a segfault,
      which is being fixed.
      
      * ab/pcre2-grep:
        grep: fix segfault under -P + PCRE2 <=10.30 + (*NO_JIT)
        test-lib: add LIBPCRE1 & LIBPCRE2 prerequisites
      b3f04e5b
    • Junio C Hamano's avatar
      Merge branch 'ra/decorate-limit-refs' · 6c3daa23
      Junio C Hamano authored
      The tagnames "git log --decorate" uses to annotate the commits can
      now be limited to subset of available refs with the two additional
      options, --decorate-refs[-exclude]=<pattern>.
      
      * ra/decorate-limit-refs:
        log: add option to choose which refs to decorate
      6c3daa23
    • Junio C Hamano's avatar
      Merge branch 'bc/hash-algo' · 721cc431
      Junio C Hamano authored
      An infrastructure to define what hash function is used in Git is
      introduced, and an effort to plumb that throughout various
      codepaths has been started.
      
      * bc/hash-algo:
        repository: fix a sparse 'using integer as NULL pointer' warning
        Switch empty tree and blob lookups to use hash abstraction
        Integrate hash algorithm support with repo setup
        Add structure representing hash algorithm
        setup: expose enumerated repo info
      721cc431
  5. 07 Dec, 2017 2 commits
    • Lars Schneider's avatar
      launch_editor(): indicate that Git waits for user input · abfb04d0
      Lars Schneider authored
      When a graphical GIT_EDITOR is spawned by a Git command that opens
      and waits for user input (e.g. "git rebase -i"), then the editor window
      might be obscured by other windows. The user might be left staring at
      the original Git terminal window without even realizing that s/he needs
      to interact with another window before Git can proceed. To this user Git
      appears hanging.
      
      Print a message that Git is waiting for editor input in the original
      terminal and get rid of it when the editor returns, if the terminal
      supports erasing the last line.  Also, make sure that our message is
      terminated with a whitespace so that any message the editor may show
      upon starting up will be kept separate from our message.
      
      Power users might not want to see this message or their editor might
      already print such a message (e.g. emacsclient). Allow these users to
      suppress the message by disabling the "advice.waitingForEditor" config.
      
      The standard advise() function is not used here as it would always add
      a newline which would make deleting the message harder.
      Helped-by: default avatarJunio C Hamano <[email protected]>
      Signed-off-by: default avatarLars Schneider <[email protected]>
      Signed-off-by: default avatarJunio C Hamano <[email protected]>
      abfb04d0
    • Gábor Szeder's avatar
      setup.c: fix comment about order of .git directory discovery · 176b2d32
      Gábor Szeder authored
      Since gitfiles were introduced in b44ebb19 (Add platform-independent
      .git "symlink", 2008-02-20) the order of checks during .git directory
      discovery is: gitfile, gitdir, bare repo.  However, that commit did
      only partially update the in-code comment describing this order,
      missing the last line which still puts gitdir before gitfile.
      Signed-off-by: Gábor Szeder's avatarSZEDER Gábor <[email protected]>
      Signed-off-by: default avatarJunio C Hamano <[email protected]>
      176b2d32
  6. 06 Dec, 2017 9 commits
    • Brandon Williams's avatar
      diff-tree: read the index so attribute checks work in bare repositories · fd66bcc3
      Brandon Williams authored
      A regression was introduced in 557a5998 (submodule: remove
      gitmodules_config, 2017-08-03) to how attribute processing was handled
      in bare repositories when running the diff-tree command.
      
      By default the attribute system will first try to read ".gitattribute"
      files from the working tree and then falls back to reading them from the
      index if there isn't a copy checked out in the worktree.  Prior to
      557a5998 the index was read as a side effect of the call to
      'gitmodules_config()' which ensured that the index was already populated
      before entering the attribute subsystem.
      
      Since the call to 'gitmodules_config()' was removed the index is no
      longer being read so when the attribute system tries to read from the
      in-memory index it doesn't find any ".gitattribute" entries effectively
      ignoring any configured attributes.
      
      Fix this by explicitly reading the index during the setup of diff-tree.
      Reported-by: default avatarBen Boeckel <[email protected]>
      Signed-off-by: default avatarBrandon Williams <[email protected]>
      Signed-off-by: default avatarJunio C Hamano <[email protected]>
      fd66bcc3
    • Thomas Gummerer's avatar
      add worktree.guessRemote config option · e92445a7
      Thomas Gummerer authored
      Some users might want to have the --guess-remote option introduced in
      the previous commit on by default, so they don't have to type it out
      every time they create a new worktree.
      
      Add a config option worktree.guessRemote that allows users to configure
      the default behaviour for themselves.
      Signed-off-by: default avatarThomas Gummerer <[email protected]>
      Signed-off-by: default avatarJunio C Hamano <[email protected]>
      e92445a7
    • Thomas Gummerer's avatar
      worktree: add --guess-remote flag to add subcommand · 71d6682d
      Thomas Gummerer authored
      Currently 'git worktree add <path>' creates a new branch named after the
      basename of the <path>, that matches the HEAD of whichever worktree we
      were on when calling "git worktree add <path>".
      
      It's sometimes useful to have 'git worktree add <path> behave more like
      the dwim machinery in 'git checkout <new-branch>', i.e. check if the new
      branch name, derived from the basename of the <path>, uniquely matches
      the branch name of a remote-tracking branch, and if so check out that
      branch and set the upstream to the remote-tracking branch.
      
      Add a new --guess-remote option that enables exactly that behaviour.
      Signed-off-by: default avatarThomas Gummerer <[email protected]>
      Signed-off-by: default avatarJunio C Hamano <[email protected]>
      71d6682d
    • Gennady Kupava's avatar
      trace: improve performance while category is disabled · 8eeb25c6
      Gennady Kupava authored
      Move just enough code from trace.c into trace.h header so all code
      necessary to determine that trace is disabled could be inlined to
      calling functions.  Then perform the check if the trace key is
      enabled sooner in call chain.
      Signed-off-by: default avatarGennady Kupava <[email protected]>
      Signed-off-by: default avatarJunio C Hamano <[email protected]>
      8eeb25c6
    • Junio C Hamano's avatar
      RelNotes: the eighth batch · 95ec6b1b
      Junio C Hamano authored
      Signed-off-by: default avatarJunio C Hamano <[email protected]>
      95ec6b1b
    • Junio C Hamano's avatar
      Sync with maint · 3b136a71
      Junio C Hamano authored
      3b136a71
    • Junio C Hamano's avatar
      Merge branch 'jn/ssh-wrappers' · ef470364
      Junio C Hamano authored
      The ssh-variant 'simple' introduced earlier broke existing
      installations by not passing --port/-4/-6 and not diagnosing an
      attempt to pass these as an error.  Instead, default to
      automatically detect how compatible the GIT_SSH/GIT_SSH_COMMAND is
      to OpenSSH convention and then error out an invocation to make it
      easier to diagnose connection errors.
      
      * jn/ssh-wrappers:
        connect: correct style of C-style comment
        ssh: 'simple' variant does not support --port
        ssh: 'simple' variant does not support -4/-6
        ssh: 'auto' variant to select between 'ssh' and 'simple'
        connect: split ssh option computation to its own function
        connect: split ssh command line options into separate function
        connect: split git:// setup into a separate function
        connect: move no_fork fallback to git_tcp_connect
        ssh test: make copy_ssh_wrapper_as clean up after itself
      ef470364
    • Junio C Hamano's avatar
      Merge branch 'bw/protocol-v1' · 4c6dad00
      Junio C Hamano authored
      A new mechanism to upgrade the wire protocol in place is proposed
      and demonstrated that it works with the older versions of Git
      without harming them.
      
      * bw/protocol-v1:
        Documentation: document Extra Parameters
        ssh: introduce a 'simple' ssh variant
        i5700: add interop test for protocol transition
        http: tell server that the client understands v1
        connect: tell server that the client understands v1
        connect: teach client to recognize v1 server response
        upload-pack, receive-pack: introduce protocol version 1
        daemon: recognize hidden request arguments
        protocol: introduce protocol extension mechanisms
        pkt-line: add packet_write function
        connect: in ref advertisement, shallows are last
      4c6dad00
    • Junio C Hamano's avatar
      Merge branch 'sp/doc-info-attributes' · f65ab574
      Junio C Hamano authored
      Doc update.
      
      * sp/doc-info-attributes:
        doc: Mention info/attributes in gitrepository-layout
      f65ab574