Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Aug 19, 2015
  1. @gitster

    Merge 'hv/submodule-config' to 'sb/submodule-helper'

    gitster committed
    * hv/submodule-config:
      submodule: allow erroneous values for the fetchRecurseSubmodules option
      submodule: use new config API for worktree configurations
      submodule: extract functions for config set and lookup
      submodule: implement a config API for lookup of .gitmodules values
Commits on Jul 13, 2015
  1. @gitster

    Merge branch 'nd/multiple-work-trees'

    gitster committed
    "git checkout [<tree-ish>] <paths>" spent unnecessary cycles
    checking if the current branch was checked out elsewhere, when we
    know we are not switching the branches ourselves.
    * nd/multiple-work-trees:
      worktree: new place for "git prune --worktrees"
      checkout: don't check worktrees when not necessary
Commits on Oct 20, 2014
  1. @gitster

    Merge branch 'cc/interpret-trailers'

    gitster committed
    A new filter to programatically edit the tail end of the commit log
    * cc/interpret-trailers:
      Documentation: add documentation for 'git interpret-trailers'
      trailer: add tests for commands in config file
      trailer: execute command from 'trailer.<name>.command'
      trailer: add tests for "git interpret-trailers"
      trailer: add interpret-trailers command
      trailer: put all the processing together and print
      trailer: parse trailers from file or stdin
      trailer: process command line trailer arguments
      trailer: read and process config information
      trailer: process trailers from input message and arguments
      trailer: add data structures and basic functions
Commits on Oct 14, 2014
  1. @gitster

    Merge branch 'rs/sha1-array-test'

    gitster committed
    * rs/sha1-array-test:
      sha1-lookup: handle duplicates in sha1_pos()
      sha1-array: add test-sha1-array and basic tests
Commits on Jul 16, 2014
  1. @gitster

    Merge branch 'nd/split-index'

    gitster committed
    An experiment to use two files (the base file and incremental
    changes relative to it) to represent the index to reduce I/O cost
    of rewriting a large index when only small part of the working tree
    * nd/split-index: (32 commits)
      t1700: new tests for split-index mode
      t2104: make sure split index mode is off for the version test
      read-cache: force split index mode with GIT_TEST_SPLIT_INDEX
      read-tree: note about dropping split-index mode or index version
      read-tree: force split-index mode off on --index-output
      rev-parse: add --shared-index-path to get shared index path
      update-index --split-index: do not split if $GIT_DIR is read only
      update-index: new options to enable/disable split index mode
      split-index: strip pathname of on-disk replaced entries
      split-index: do not invalidate cache-tree at read time
      split-index: the reading part
      split-index: the writing part
      read-cache: mark updated entries for split index
      read-cache: save deleted entries in split index
      read-cache: mark new entries for split index
      read-cache: split-index mode
      read-cache: save index SHA-1 after reading
      entry.c: update cache_changed if refresh_cache is set in checkout_entry()
      cache-tree: mark istate->cache_changed on prime_cache_tree()
      cache-tree: mark istate->cache_changed on cache tree update
Commits on Jun 6, 2014
  1. @gitster

    Merge branch 'tb/unicode-6.3-zero-width'

    gitster committed
    Update the logic to compute the display width needed for utf8
    strings and allow us to more easily maintain the tables used in
    that logic.
    We may want to let the users choose if codepoints with ambiguous
    widths are treated as a double or single width in a follow-up patch.
    * tb/unicode-6.3-zero-width:
      utf8: make it easier to auto-update git_wcwidth()
      utf8.c: use a table for double_width
Commits on Feb 27, 2014
  1. @gitster

    Merge branch 'kb/fast-hashmap'

    gitster committed
    Improvements to our hash table to get it to meet the needs of the
    msysgit fscache project, with some nice performance improvements.
    * kb/fast-hashmap:
      name-hash: retire unused index_name_exists()
      hashmap.h: use 'unsigned int' for hash-codes everywhere
      test-hashmap.c: drop unnecessary #includes
      .gitignore: test-hashmap is a generated file
      read-cache.c: fix memory leaks caused by removed cache entries
      builtin/update-index.c: cleanup update_one
      fix 'git update-index --verbose --again' output
      remove old hash.[ch] implementation
      name-hash.c: remove cache entries instead of marking them CE_UNHASHED
      name-hash.c: use new hash map implementation for cache entries
      name-hash.c: remove unreferenced directory entries
      name-hash.c: use new hash map implementation for directories
      diffcore-rename.c: use new hash map implementation
      diffcore-rename.c: simplify finding exact renames
      diffcore-rename.c: move code around to prepare for the next patch
      buitin/describe.c: use new hash map implementation
      add a hashtable implementation that supports O(1) removal
      submodule: don't access the .gitmodules cache entry after removing it
Commits on Dec 12, 2013
  1. @gitster

    Merge branch 'jk/remove-deprecated'

    gitster committed
    * jk/remove-deprecated:
      stop installing git-tar-tree link
      peek-remote: remove deprecated alias of ls-remote
      lost-found: remove deprecated command
      tar-tree: remove deprecated command
      repo-config: remove deprecated alias for "git config"
Commits on Sep 9, 2013
  1. @gitster

    Merge branch 'jc/url-match'

    gitster committed
    Allow section.<urlpattern>.var configuration variables to be
    treated as a "virtual" section.var given a URL, and use the
    mechanism to enhance http.* configuration variables.
    This is a reroll of Kyle J. McKay's work.
    * jc/url-match:
      builtin/config.c: compilation fix
      config: "git config --get-urlmatch" parses section.<url>.key
      builtin/config: refactor collect_config()
      config: parse http.<url>.<variable> using urlmatch
      config: add generic callback wrapper to parse section.<url>.key
      config: add helper to normalize and match URLs
      http.c: fix parsing of http.sslCertPasswordProtected variable
Commits on Jul 22, 2013
  1. @gitster

    Merge branch 'es/check-mailmap'

    gitster committed
    A new command to allow scripts to query the mailmap information.
    * es/check-mailmap:
      t4203: test check-mailmap command invocation
      builtin: add git-check-mailmap command
Commits on Jul 1, 2013
  1. @gitster

    Merge branch 'jc/topo-author-date-sort'

    gitster committed
    "git log" learned the "--author-date-order" option, with which the
    output is topologically sorted and commits in parallel histories
    are shown intermixed together based on the author timestamp.
    * jc/topo-author-date-sort:
      t6003: add --author-date-order test
      topology tests: teach a helper to set author dates as well
      t6003: add --date-order test
      topology tests: teach a helper to take abbreviated timestamps
      t/lib-t6000: style fixes
      log: --author-date-order
      sort-in-topological-order: use prio-queue
      prio-queue: priority queue of pointers to structs
      toposort: rename "lifo" field
Commits on Jun 20, 2013
  1. @gitster

    Merge branch 'rs/discard-index-discard-array'

    gitster committed
    * rs/discard-index-discard-array:
      read-cache: free cache in discard_index
      read-cache: add simple performance test
Commits on Jun 11, 2013
  1. @gitster

    prio-queue: priority queue of pointers to structs

    gitster committed
    Traditionally we used a singly linked list of commits to hold a set
    of in-flight commits while traversing history.  The most typical use
    of the list is to add commits that are newly discovered to it, keep
    the list sorted by commit timestamp, pick up the newest one from the
    list, and keep digging.  The cost of keeping the singly linked list
    sorted is nontrivial, and this typical use pattern better matches a
    priority queue.
    Introduce a prio-queue structure, that can be used either as a LIFO
    stack, or a priority queue.  This will be used in the next patch to
    hold in-flight commits during sort-in-topological-order.
    Tests and the idea to make it usable for any "void *" pointers to
    "things" are by Jeff King.  Bugs are mine.
    Signed-off-by: Junio C Hamano <>
Commits on Apr 28, 2013
  1. @gitster

    git-remote-testgit: build it to run under $SHELL_PATH

    gitster committed
    Just like all the other shell scripts, replace the shebang line to
    make sure it runs under the shell the user specified.
    As this no longer depends on bashisms, t5801 does not have to say
    bash must be available somewhere on the system.
    Signed-off-by: Junio C Hamano <>
Commits on Jan 24, 2013
  1. @gitster

    Merge branch 'as/check-ignore'

    gitster committed
    Add a new command "git check-ignore" for debugging .gitignore
    The variable names may want to get cleaned up but that can be done
    * as/check-ignore:
      clean.c, ls-files.c: respect encapsulation of exclude_list_groups
      t0008: avoid brace expansion
      add git-check-ignore sub-command
      setup.c: document get_pathspec()
      add.c: extract new die_if_path_beyond_symlink() for reuse
      add.c: extract check_path_for_gitlink() from treat_gitlinks() for reuse
      pathspec.c: rename newly public functions for clarity
      add.c: move pathspec matchers into new pathspec.c for reuse
      add.c: remove unused argument from validate_pathspec()
      dir.c: improve docs for match_pathspec() and match_pathspec_depth()
      dir.c: provide clear_directory() for reclaiming dir_struct memory
      dir.c: keep track of where patterns came from
      dir.c: use a single struct exclude_list per source of excludes
Commits on Jan 10, 2013
  1. @gitster

    Merge branch 'nd/wildmatch'

    gitster committed
    Allows pathname patterns in .gitignore and .gitattributes files
    with double-asterisks "foo/**/bar" to match any number of directory
    * nd/wildmatch:
      wildmatch: replace variable 'special' with better named ones
      compat/fnmatch: respect NO_FNMATCH* even on glibc
      wildmatch: fix "**" special case
      t3070: Disable some failing fnmatch tests
      test-wildmatch: avoid Windows path mangling
      Support "**" wildcard in .gitignore and .gitattributes
      wildmatch: make /**/ match zero or more directories
      wildmatch: adjust "**" behavior
      wildmatch: fix case-insensitive matching
      wildmatch: remove static variable force_lower_case
      wildmatch: make wildmatch's return value compatible with fnmatch
      t3070: disable unreliable fnmatch tests
      Integrate wildmatch to git
      wildmatch: follow Git's coding convention
      wildmatch: remove unnecessary functions
      Import wildmatch from rsync
      ctype: support iscntrl, ispunct, isxdigit and isprint
      ctype: make sane_ctype[] const array
Commits on Jan 7, 2013
  1. @gitster

    Merge branch 'cc/no-gitk-build-dependency'

    gitster committed
    Remove leftover bits from an earlier change to move gitk in its own
    subdirectory.  Reimplementing the dependency tracking rules needs
    to be done in gitk history separately.
    * cc/no-gitk-build-dependency:
      Makefile: replace "echo 1>..." with "echo >..."
      Makefile: detect when PYTHON_PATH changes
      Makefile: remove tracking of TCLTK_PATH
Commits on Sep 17, 2012
  1. @gitster

    Merge branch 'mh/string-list'

    gitster committed
    * mh/string-list:
      api-string-list.txt: initialize the string_list the easy way
      string_list: add a function string_list_longest_prefix()
      string_list: add a new function, string_list_remove_duplicates()
      string_list: add a new function, filter_string_list()
      string_list: add two new functions for splitting strings
      string_list: add function string_list_append_nodup()
Commits on Sep 15, 2012
  1. @gitster

    Merge branch 'rj/test-regex' into maint-1.7.11

    gitster committed
    * rj/test-regex:
      test-regex: Add a test to check for a bug in the regex routines
Commits on Sep 11, 2012
  1. @gitster

    Merge branch 'rj/test-regex'

    gitster committed
    Git ships with a fall-back regexp implementation for platforms with
    buggy regexp library; give people a tool to see if they should be
    using it on their platform.
    * rj/test-regex:
      test-regex: Add a test to check for a bug in the regex routines
Commits on Jul 16, 2012
  1. @gitster

    Merge branch 'jn/makefile-cleanup'

    gitster committed
    Tightens dependency rules to avoid unnecessary recompilation, and
    cleans up our Makefile in general.
    * jn/makefile-cleanup:
      Makefile: document ground rules for target-specific dependencies
      Makefile: move GIT-VERSION-FILE dependencies closer to use
      Makefile: build instaweb similar to other scripts
      Makefile: update scripts when build-time parameters change
      Makefile: do not replace @@GIT_VERSION@@ in shell scripts
      Makefile: split prefix flags from GIT-CFLAGS
      Makefile: be silent when only GIT_USER_AGENT changes
      Makefile: split GIT_USER_AGENT from GIT-CFLAGS
      Makefile: do not replace @@GIT_USER_AGENT@@ in scripts
      Makefile: apply dependencies consistently to sparse/asm targets
      Makefile: do not have git.o depend on common-cmds.h
      Makefile: fold XDIFF_H and VCSSVN_H into LIB_H
      Makefile: fold MISC_H into LIB_H
      Makefile: sort LIB_H list
Commits on May 3, 2012
  1. @gitster

    Merge branch 'nd/columns'

    gitster committed
    A couple of commands learn --column option to produce columnar output.
    By Nguyễn Thái Ngọc Duy (9) and Zbigniew Jędrzejewski-Szmek (1)
    * nd/columns:
      tag: add --column
      column: support piping stdout to external git-column process
      status: add --column
      branch: add --column
      help: reuse print_columns() for help -a
      column: add dense layout support
      t9002: work around shells that are unable to set COLUMNS to 1
      column: add columnar layout
      Stop starting pager recursively
      Add column layout skeleton and git-column
Commits on Apr 24, 2012
  1. @gitster

    Merge branch 'hv/submodule-recurse-push'

    gitster committed
    "git push --recurse-submodules" learns to optionally look into the
    histories of submodules bound to the superproject and push them out.
    By Heiko Voigt
    * hv/submodule-recurse-push:
      push: teach --recurse-submodules the on-demand option
      Refactor submodule push check to use string list instead of integer
      Teach revision walking machinery to walk multiple times sequencially
Commits on Apr 23, 2012
  1. @gitster

    Merge branch 'rs/commit-list-sort-in-batch'

    gitster committed
    Setting up a revision traversal with many starting points was inefficient
    as these were placed in a date-order priority queue one-by-one.
    By René Scharfe (3) and Junio C Hamano (1)
    * rs/commit-list-sort-in-batch:
      mergesort: rename it to llist_mergesort()
      revision: insert unsorted, then sort in prepare_revision_walk()
      commit: use mergesort() in commit_list_sort_by_date()
      add mergesort() for linked lists
Commits on Jan 27, 2012
  1. @gitster

    Merge branch 'svn-fe' of git:// into jn/svn-fe

    gitster committed
    This simplifies svn-fe a great deal and fulfills a longstanding wish:
    support for dumps with deltas in them, and incremental imports.
    The cost is that commandline usage of the svn-fe tool becomes a little
    more complicated since it no longer keeps state itself but instead reads
    blobs back from fast-import in order to copy them between revisions and
    apply deltas to them.
    Also removes a couple of custom data structures and replaces them with
    strbufs like other parts of Git.
    * 'svn-fe' of git:// (32 commits)
      vcs-svn: reset first_commit_done in fast_export_init
      vcs-svn: do not initialize report_buffer twice
      vcs-svn: avoid hangs from corrupt deltas
      vcs-svn: guard against overflow when computing preimage length
      vcs-svn: cap number of bytes read from sliding view
      test-svn-fe: split off "test-svn-fe -d" into a separate function
      vcs-svn: implement text-delta handling
      vcs-svn: let deltas use data from preimage
      vcs-svn: let deltas use data from postimage
      vcs-svn: verify that deltas consume all inline data
      vcs-svn: implement copyfrom_data delta instruction
      vcs-svn: read instructions from deltas
      vcs-svn: read inline data from deltas
      vcs-svn: read the preimage when applying deltas
      vcs-svn: parse svndiff0 window header
      vcs-svn: skeleton of an svn delta parser
      vcs-svn: make buffer_read_binary API more convenient
      vcs-svn: learn to maintain a sliding view of a file
      Makefile: list one vcs-svn/xdiff object or header per line
      vcs-svn: avoid using ls command twice
Commits on Dec 20, 2011
  1. @gitster

    Merge branch 'tr/cache-tree'

    gitster committed
    * tr/cache-tree:
      reset: update cache-tree data when appropriate
      commit: write cache-tree data when writing index anyway
      Refactor cache_tree_update idiom from commit
      Test the current state of the cache-tree optimization
      Add test-scrap-cache-tree
Commits on May 26, 2011
  1. @gitster

    Merge branch 'jn/gitweb-js'

    gitster committed
    * jn/gitweb-js:
      gitweb: Make JavaScript ability to adjust timezones configurable
      gitweb.js: Add UI for selecting common timezone to display dates
      gitweb: JavaScript ability to adjust time based on timezone
      gitweb: Unify the way long timestamp is displayed
      gitweb: Refactor generating of long dates into format_timestamp_html
      gitweb.js: Provide getElementsByClassName method (if it not exists)
      gitweb.js: Introduce code to handle cookies from JavaScript
      gitweb.js: Extract and improve datetime handling
      gitweb.js: Provide default values for padding in padLeftStr and padLeft
      gitweb.js: Update and improve comments in JavaScript files
      gitweb: Split JavaScript for maintability, combining on build
Commits on Apr 28, 2011
  1. @gitster

    Merge branch 'mz/rebase'

    gitster committed
    * mz/rebase: (34 commits)
      rebase: define options in OPTIONS_SPEC
      Makefile: do not install sourced rebase scripts
      rebase: use @{upstream} if no upstream specified
      rebase -i: remove unnecessary state rebase-root
      rebase -i: don't read unused variable preserve_merges
      git-rebase--am: remove unnecessary --3way option
      rebase -m: don't print exit code 2 when merge fails
      rebase -m: remember allow_rerere_autoupdate option
      rebase: remember strategy and strategy options
      rebase: remember verbose option
      rebase: extract code for writing basic state
      rebase: factor out sub command handling
      rebase: make -v a tiny bit more verbose
      rebase -i: align variable names
      rebase: show consistent conflict resolution hint
      rebase: extract am code to new source file
      rebase: extract merge code to new source file
      rebase: remove $branch as synonym for $orig_head
      rebase -i: support --stat
      rebase: factor out call to pre-rebase hook
Commits on Dec 28, 2010
  1. @gitster

    Merge branch 'nd/setup'

    gitster committed
    * nd/setup: (47 commits)
      setup_work_tree: adjust relative $GIT_WORK_TREE after moving cwd
      git.txt: correct where --work-tree path is relative to
      Revert "Documentation: always respect core.worktree if set"
      t0001: test git init when run via an alias
      Remove all logic from get_git_work_tree()
      setup: rework setup_explicit_git_dir()
      setup: clean up setup_discovered_git_dir()
      t1020-subdirectory: test alias expansion in a subdirectory
      setup: clean up setup_bare_git_dir()
      setup: limit get_git_work_tree()'s to explicit setup case only
      Use git_config_early() instead of git_config() during repo setup
      Add git_config_early()
      git-rev-parse.txt: clarify --git-dir
      t1510: setup case #31
      t1510: setup case #30
      t1510: setup case #29
      t1510: setup case #28
      t1510: setup case #27
      t1510: setup case #26
      t1510: setup case #25
Commits on Sep 4, 2010
  1. @gitster

    Merge branch 'ab/test-2'

    gitster committed
    * ab/test-2: (51 commits)
      tests: factor HOME=$(pwd) in
      test-lib: use subshell instead of cd $new && .. && cd $old
      tests: simplify "missing PREREQ" message
      t/ Run the passing TODO test inside its own test-lib
      test-lib: Allow overriding of TEST_DIRECTORY
      test-lib: Use "$GIT_BUILD_DIR" instead of "$TEST_DIRECTORY"/../
      test-lib: Use $TEST_DIRECTORY or $GIT_BUILD_DIR instead of $(pwd) and ../
      test: Introduce $GIT_BUILD_DIR
      cvs tests: do not touch test CVS repositories shipped with source
      t/ Add a PERL prerequisite
      t/ Add a PERL prerequisite
      t/ Add a PERL prerequisite
      t/ convert setup code to tests
      t/ change from skip_all=* to prereq skip
      t/ Remove needless PROG=* assignment
      t/ change from skip_all=* to prereq skip
      lib-patch-mode tests: change from skip_all=* to prereq skip
      t/ change from skip_all=* to prereq skip
      tests: Move FILEMODE prerequisite to
      t/Makefile: Create test-results dir for smoke target
Commits on Aug 31, 2010
  1. @gitster

    Merge branch 'jn/svn-fe'

    gitster committed
    * jn/svn-fe:
      t/ add an +x bit to this test
      t9010 (svn-fe): avoid symlinks in test
      t9010 (svn-fe): use Unix-style path in URI
      vcs-svn: Avoid %z in format string
      vcs-svn: Rename dirent pool to build on Windows
      compat: add strtok_r()
      treap: style fix
      vcs-svn: remove build artifacts on "make clean"
      svn-fe manual: Clarify warning about deltas in dump files
      Update svn-fe manual
      SVN dump parser
      Infrastructure to write revisions in fast-export format
      Add stream helper library
      Add string-specific memory pool
      Add treap implementation
      Add memory pool library
      Introduce vcs-svn lib
Commits on May 21, 2010
  1. @gitster

    Merge branch 'sr/remote-helper-export'

    gitster committed
    * sr/remote-helper-export:
      t5800: testgit helper requires Python support
      Makefile: Simplify handling of python scripts
      remote-helpers: add tests for testgit helper
      remote-helpers: add testgit helper
      remote-helpers: add support for an export command
      remote-helpers: allow requesing the path to the .git directory
      fast-import: always create marks_file directories
      clone: also configure url for bare clones
      clone: pass the remote name to remote_get
Commits on Jan 13, 2010
  1. @gitster

    Merge branch 'il/vcs-helper'

    gitster committed
    * il/vcs-helper:
      Reset possible helper before reusing remote structure
      Remove special casing of http, https and ftp
      Support remote archive from all smart transports
      Support remote helpers implementing smart transports
      Support taking over transports
      Refactor git transport options parsing
      Pass unknown protocols to external protocol handlers
      Support mandatory capabilities
      Add remote helper debug mode
  2. @gitster

    Merge branch 'nd/sparse'

    gitster committed
    * nd/sparse: (25 commits)
      t7002: test for not using external grep on skip-worktree paths
      t7002: set test prerequisite "external-grep" if supported
      grep: do not do external grep on skip-worktree entries
      commit: correctly respect skip-worktree bit
      ie_match_stat(): do not ignore skip-worktree bit with CE_MATCH_IGNORE_VALID
      tests: rename duplicate t1009
      sparse checkout: inhibit empty worktree
      Add tests for sparse checkout
      read-tree: add --no-sparse-checkout to disable sparse checkout support
      unpack-trees(): ignore worktree check outside checkout area
      unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index
      unpack-trees(): "enable" sparse checkout and load $GIT_DIR/info/sparse-checkout
      unpack-trees.c: generalize verify_* functions
      unpack-trees(): add CE_WT_REMOVE to remove on worktree alone
      Introduce "sparse checkout"
      dir.c: export excluded_1() and add_excludes_from_file_1()
      excluded_1(): support exclude files in index
      unpack-trees(): carry skip-worktree bit over in merged_entry()
      Read .gitignore from index if it is skip-worktree
      Avoid writing to buffer in add_excludes_from_file_1()
Commits on Nov 21, 2009
  1. @gitster

    Merge branch 'jh/notes' (early part)

    gitster committed
    * 'jh/notes' (early part):
      Add selftests verifying concatenation of multiple notes for the same commit
      Refactor notes code to concatenate multiple notes annotating the same object
      Add selftests verifying that we can parse notes trees with various fanouts
      Teach the notes lookup code to parse notes trees with various fanout schemes
      Teach notes code to free its internal data structures on request
      Add '%N'-format for pretty-printing commit notes
      Add flags to get_commit_notes() to control the format of the note string
      t3302-notes-index-expensive: Speed up create_repo()
      fast-import: Add support for importing commit notes
      Teach "-m <msg>" and "-F <file>" to "git notes edit"
      Add an expensive test for git-notes
      Speed up git notes lookup
      Add a script to edit/inspect notes
      Introduce commit notes
Something went wrong with that request. Please try again.