To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Feb 2016, #04; Fri, 12)
-X-master-at: 494398473714dcbedb38b1ac79b531c7384b3bc4
-X-next-at: 6faf27b4ff26804a07363078b238b5cfd3dfa976
+Subject: What's cooking in git.git (Feb 2016, #05; Wed, 17)
+X-master-at: 0233b800c838ddda41db318ee396320b3c21a560
+X-next-at: 45cd78e6c697b37c226f619775990486cf53e84f
-What's cooking in git.git (Feb 2016, #04; Fri, 12)
+What's cooking in git.git (Feb 2016, #05; Wed, 17)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
http://git-blame.blogspot.com/p/git-public-repositories.html
+--------------------------------------------------
+[Graduated to "master"]
+
+* ah/stripspace-optstring (2016-01-29) 1 commit
+ (merged to 'next' on 2016-02-12 at cd021aa)
+ + stripspace: call U+0020 a "space" instead of a "blank"
+
+
+* da/user-useconfigonly (2016-02-08) 2 commits
+ (merged to 'next' on 2016-02-09 at 8b303ce)
+ + ident: add user.useConfigOnly boolean for when ident shouldn't be guessed
+ + fmt_ident: refactor strictness checks
+
+ The "user.useConfigOnly" configuration variable can be used to
+ force the user to always set user.email & user.name configuration
+ variables, serving as a reminder for those who work on multiple
+ projects and do not want to put these in their $HOME/.gitconfig.
+
+
+* dw/mergetool-vim-window-shuffle (2016-02-12) 1 commit
+ (merged to 'next' on 2016-02-12 at 2a2e8bd)
+ + mergetool: reorder vim/gvim buffers in three-way diffs
+
+ The vimdiff backend for "git mergetool" has been tweaked to arrange
+ and number buffers in the order that would match the expectation of
+ majority of people who read left to right, then top down and assign
+ buffers 1 2 3 4 "mentally" to local base remote merge windows based
+ on that order.
+
+
+* jk/drop-rsync-transport (2016-02-01) 1 commit
+ (merged to 'next' on 2016-02-03 at 08be402)
+ + transport: drop support for git-over-rsync
+
+ It turns out "git clone" over rsync transport has been broken when
+ the source repository has packed references for a long time, and
+ nobody noticed nor complained about it.
+
+
+* jk/rerere-xsnprintf (2016-02-08) 1 commit
+ (merged to 'next' on 2016-02-09 at ff9ade3)
+ + rerere: replace strcpy with xsnprintf
+ (this branch is used by jc/rerere-multi.)
+
+ Some calls to strcpy(3) triggers a false warning from static
+ analysers that are less intelligent than humans, and reducing the
+ number of these false hits helps us notice real issues. A few
+ calls to strcpy(3) in "git rerere" that are already safe has been
+ rewritten to avoid false wanings.
+
+
+* jk/test-path-utils-xsnprintf (2016-02-08) 1 commit
+ (merged to 'next' on 2016-02-09 at 931f70b)
+ + test-path-utils: use xsnprintf in favor of strcpy
+
+ Some calls to strcpy(3) triggers a false warning from static
+ analysers that are less intelligent than humans, and reducing the
+ number of these false hits helps us notice real issues. A few
+ calls to strcpy(3) in test-path-utils that are already safe has
+ been rewritten to avoid false wanings.
+
+
+* js/mingw-tests (2016-02-08) 21 commits
+ (merged to 'next' on 2016-02-08 at 417e555)
+ + gitignore: ignore generated test-fake-ssh executable
+ (merged to 'next' on 2016-02-03 at ace7624)
+ + mingw: do not bother to test funny file names
+ + mingw: skip a test in t9130 that cannot pass on Windows
+ + mingw: handle the missing POSIXPERM prereq in t9124
+ + mingw: avoid illegal filename in t9118
+ + mingw: mark t9100's test cases with appropriate prereqs
+ + t0008: avoid absolute path
+ + mingw: work around pwd issues in the tests
+ + mingw: fix t9700's assumption about directory separators
+ + mingw: skip test in t1508 that fails due to path conversion
+ + tests: turn off git-daemon tests if FIFOs are not available
+ + mingw: disable mkfifo-based tests
+ + mingw: accomodate t0060-path-utils for MSYS2
+ + mingw: fix t5601-clone.sh
+ + mingw: let lstat() fail with errno == ENOTDIR when appropriate
+ + mingw: try to delete target directory before renaming
+ + mingw: prepare the TMPDIR environment variable for shell scripts
+ + mingw: factor out Windows specific environment setup
+ + Git.pm: stop assuming that absolute paths start with a slash
+ + mingw: do not trust MSYS2's MinGW gettext.sh
+ + mingw: let's use gettext with MSYS2
+ (this branch is used by mg/mingw-test-fix.)
+
+ Test scripts have been updated to remove assumptions that are not
+ portable between Git for POSIX and Git for Windows, or to skip ones
+ with expectations that are not satisfiable on Git for Windows.
+
+
+* mg/mingw-test-fix (2016-02-08) 1 commit
+ (merged to 'next' on 2016-02-12 at df77956)
+ + t9100: fix breakage when SHELL_PATH is not /bin/sh
+ (this branch uses js/mingw-tests.)
+
+ An earlier adjustment of test mistakenly used write_script
+ to prepare a file whose exact content matters for the test;
+ reverting that part fixes the breakage for those who use
+ SHELL_PATH that is different from /bin/sh.
+
+
+* mm/clean-doc-fix (2016-02-09) 1 commit
+ (merged to 'next' on 2016-02-09 at ced8555)
+ + Documentation/git-clean.txt: don't mention deletion of .git/modules/*
+
+ The documentation for "git clean" has been corrected; it mentioned
+ that .git/modules/* are removed by giving two "-f", which has never
+ been the case.
+
+
+* nd/clear-gitenv-upon-use-of-alias (2016-02-02) 4 commits
+ (merged to 'next' on 2016-02-09 at 2c441b4)
+ + restore_env(): free the saved environment variable once we are done
+ + git: simplify environment save/restore logic
+ + git: protect against unbalanced calls to {save,restore}_env()
+ + git: remove an early return from save_env_before_alias()
+
+ The automatic typo correction applied to an alias was broken
+ with a recent change already in 'master'.
+
--------------------------------------------------
[New Topics]
-* ep/format-printf (2016-02-11) 22 commits
- - wt-status.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - utf8.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - transport-helper.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - trace.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - strbuf.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - remote.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - pkt-line.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - merge-recursive.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - imap-send.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - http-backend.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - fsck.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - daemon.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - config.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - color.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - cache.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - builtin/upload-archive.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - builtin/update-index.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - builtin/receive-pack.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - builtin/index-pack.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - argv-array.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - advice.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
- - git-compat-util.h: add the FORMAT_PRINTF macro
+* cn/deprecate-ssh-git-url (2016-02-15) 1 commit
+ - Disown ssh+git and git+ssh
- Undecided.
+ Needs toning down by replacing the condescendence with an
+ explanation and enlightenment.
+ ($gmane/286222)
-* ew/force-ipv4 (2016-02-12) 1 commit
- - connect & http: support -4 and -6 switches for remote operations
+* jk/config-include (2016-02-13) 1 commit
+ - git-config: better document default behavior for `--include`
+
+ Will merge to 'next'.
- "git fetch" and friends that make network connections can now be
- told to only use ipv4 (or ipv6).
+
+* nd/git-common-dir-fix (2016-02-12) 1 commit
+ - rev-parse: take prefix into account in --git-common-dir
Will merge to 'next'.
-* jk/lose-name-path (2016-02-12) 5 commits
- - list-objects: pass full pathname to callbacks
- - list-objects: drop name_path entirely
- - list-objects: convert name_path to a strbuf
- - show_object_with_name: simplify by using path_name()
- - http-push: stop using name_path
+* sp/remote-curl-ssl-strerror (2016-02-15) 1 commit
+ - remote-curl: include curl_errorstr on SSL setup failures
- The "name_path" API was an attempt to reduce the need to construct
- the full path out of a series of path components while walking a
- tree hierarchy, but over time made less efficient because the path
- needs to be flattened, e.g. to be compared with another path that
- is already flat. Remove the API and rewrite its users to simplify
- overall code complexity.
+ Help those who debug http(s) part of the system.
+
+ Will merge to 'next'.
+
+
+* bc/http-empty-auth (2016-02-15) 1 commit
+ - http: add option to try authentication without username
+
+ Some authentication methods do not need username or password, but
+ libcurl needs some hint that it needs to perform authentication.
+ Supplying an empty username and password string is a valid way to
+ do so, but you can set the http.[<url>.]emptyAuth configuration
+ variable to achieve the same, if you find it cleaner.
+
+ Will merge to 'next'.
+
+
+* ce/https-public-key-pinning (2016-02-15) 1 commit
+ - http: implement public key pinning
+
+ You can now set http.[<url>.]pinnedpubkey to specify the pinned
+ public key when building with recent enough versions of libcURL.
+
+ Will merge to 'next'.
+
+
+* ew/connect-verbose (2016-02-15) 1 commit
+ - t5570: add tests for "git {clone,fetch,pull} -v"
+
+ Will merge to 'next'.
+
+
+* fa/merge-recursive-no-rename (2016-02-17) 2 commits
+ - merge-recursive: more consistent interface
+ - merge-recursive: option to disable renames
+
+ "git merge-recursive" learned "--no-renames" option to disable its
+ rename detection logic.
Will merge to 'next'.
---------------------------------------------------
-[Graduated to "master"]
-* aw/push-force-with-lease-reporting (2016-02-01) 1 commit
- (merged to 'next' on 2016-02-03 at facd28f)
- + push: fix ref status reporting for --force-with-lease
+* jc/am-i-v-fix (2016-02-17) 3 commits
+ - am -i: fix "v"iew
+ - pager: factor out a helper to prepare a child process to run the pager
+ - pager: lose a separate argv[]
- "git push --force-with-lease" has been taught to report if the push
- needed to force (or fast-forwarded).
+ The "v(iew)" subcommand of the interactive "git am -i" command was
+ broken in 2.6.0 timeframe when the command was rewritten in C.
+
+ Will merge to 'next'.
+
+
+* jk/merge-tree-merge-blobs (2016-02-16) 1 commit
+ - merge_blobs: use strbuf instead of manually-sized mmfile_t
+
+ "git merge-tree" (a throw-away demonstration) did not work very
+ well when merging "both sides added a new file at the same path"
+ case.
+
+ Undecided; we might be better off deleting it altogether.
-* cc/untracked (2016-01-27) 11 commits
- (merged to 'next' on 2016-02-01 at 8203631)
- + t7063: add tests for core.untrackedCache
- + test-dump-untracked-cache: don't modify the untracked cache
- + config: add core.untrackedCache
- + dir: simplify untracked cache "ident" field
- + dir: add remove_untracked_cache()
- + dir: add {new,add}_untracked_cache()
- + update-index: move 'uc' var declaration
- + update-index: add untracked cache notifications
- + update-index: add --test-untracked-cache
- + update-index: use enum for untracked cache options
- + dir: free untracked cache when removing it
+* jk/tighten-alloc (2016-02-15) 18 commits
+ - ewah: convert to REALLOC_ARRAY, etc
+ - convert ewah/bitmap code to use xmalloc
+ - diff_populate_gitlink: use a strbuf
+ - transport_anonymize_url: use xstrfmt
+ - git-compat-util: drop mempcpy compat code
+ - sequencer: simplify memory allocation of get_message
+ - test-path-utils: fix normalize_path_copy output buffer size
+ - fetch-pack: simplify add_sought_entry
+ - fast-import: simplify allocation in start_packfile
+ - write_untracked_extension: use FLEX_ALLOC helper
+ - use st_add and st_mult for allocation size computation
+ - convert trivial cases to FLEX_ARRAY macros
+ - use xmallocz to avoid size arithmetic
+ - convert trivial cases to ALLOC_ARRAY
+ - add helpers for allocating flex-array structs
+ - harden REALLOC_ARRAY and xcalloc against size_t overflow
+ - tree-diff: catch integer overflow in combine_diff_path allocation
+ - add helpers for detecting size_t overflow
- Update the untracked cache subsystem and change its primary UI from
- "git update-index" to "git config".
+ Update various codepaths to avoid manually-counted malloc().
+ Will merge to 'next'.
+
+
+* js/git-remote-add-url-insteadof-test (2016-02-17) 1 commit
+ - t5505: 'remote add x y' should work when url.y.insteadOf = x
+
+ Will merge to 'next'.
-* ew/connect-verbose (2016-01-28) 1 commit
- (merged to 'next' on 2016-02-03 at ceac37e)
- + pass transport verbosity down to git_connect
- There were a few "now I am doing this thing" progress messages in
- the TCP connection code that can be triggered by setting a verbose
- option internally in the code, but "git fetch -v" and friends never
- passed the verbose option down to that codepath.
+* nd/dwim-wildcards-as-pathspecs (2016-02-10) 3 commits
+ - get_sha1: don't die() on bogus search strings
+ - check_filename: tighten dwim-wildcard ambiguity
+ - checkout: reorder check_filename conditional
- There was a brief discussion about the impact on the end-user
- experience by not limiting this to "fetch -v -v", but I think the
- conclusion is that this is OK to enable with a single "-v" as it is
- not too noisy.
+ "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a
+ rev, i.e. the object named by the the pathname with wildcard
+ characters in a tree object.
+ I lost track of this topic; did we decide that this is a good thing
+ to do, or unnecessary noise to only cater to a crazy use case?
-* jk/options-cleanup (2016-02-01) 6 commits
- (merged to 'next' on 2016-02-03 at a78d89d)
- + apply, ls-files: simplify "-z" parsing
- + checkout-index: disallow "--no-stage" option
- + checkout-index: handle "--no-index" option
- + checkout-index: handle "--no-prefix" option
- + checkout-index: simplify "-z" option parsing
- + give "nbuf" strbuf a more meaningful name
- Various clean-ups to the command line option parsing.
+* nd/exclusion-regression-fix (2016-02-15) 4 commits
+ - dir.c: don't exclude whole dir prematurely
+ - dir.c: support marking some patterns already matched
+ - dir.c: support tracing exclude
+ - dir.c: fix match_pathname()
+ Another try to add support to the ignore mechanism that lets you
+ say "this is excluded" and then later say "oh, no, this part (that
+ is a subset of the previous part) is not exlucded".
-* js/test-lib-windows-emulated-yes (2016-02-02) 1 commit
- (merged to 'next' on 2016-02-03 at bf6b42c)
- + test-lib: limit the output of the yes utility
+ Will merge to 'next'.
- The emulated "yes" command used in our test scripts has been
- tweaked not to spend too much time generating unnecessary output
- that is not used, to help those who test on Windows where it would
- not stop until it fills the pipe buffer due to lack of SIGPIPE.
+* nd/worktree-add-B (2016-02-15) 2 commits
+ - worktree add -B: do the checkout test before update branch
+ - worktree: fix "add -B"
-* js/xmerge-marker-eol (2016-01-27) 2 commits
- (merged to 'next' on 2016-02-01 at 05d91a4)
- + merge-file: ensure that conflict sections match eol style
- + merge-file: let conflict markers match end-of-line style of the context
+ "git worktree add -B <branchname>" did not work.
- The low-level merge machinery has been taught to use CRLF line
- termination when inserting conflict markers to merged contents that
- are themselves CRLF line-terminated.
+ Will merge to 'next'.
-* ls/clean-smudge-override-in-config (2016-01-29) 1 commit
- (merged to 'next' on 2016-02-03 at 5962354)
- + convert: treat an empty string for clean/smudge filters as "cat"
+* ps/config-error (2016-02-17) 16 commits
+ - SQUASH
+ - config: rename git_config_set_or_die to git_config_set
+ - config: rename git_config_set to git_config_set_gently
+ - compat: die when unable to set core.precomposeunicode
+ - sequencer: die on config error when saving replay opts
+ - init-db: die on config errors when initializing empty repo
+ - clone: die on config error in cmd_clone
+ - remote: die on config error when manipulating remotes
+ - remote: die on config error when setting/adding branches
+ - remote: die on config error when setting URL
+ - submodule--helper: die on config error when cloning module
+ - submodule: die on config error when linking modules
+ - branch: die on config error when editing branch description
+ - branch: die on config error when unsetting upstream
+ - branch: report errors in tracking branch setup
+ - config: introduce set_or_die wrappers
- Clean/smudge filters defined in a configuration file of lower
- precedence can now be overridden to be a pass-through no-op by
- setting the variable to an empty string.
+ Many codepaths forget to check return value from git_config_set();
+ the function is made to die() to make sure we do not proceed when
+ setting a configuration variable failed.
+ Need to squash the tip two commits into one before moving forward.
-* nd/do-not-move-worktree-manually (2016-01-22) 2 commits
- (merged to 'next' on 2016-01-26 at c539221)
- + worktree: stop supporting moving worktrees manually
- + worktree.c: fix indentation
- "git worktree" had a broken code that attempted to auto-fix
- possible inconsistency that results from end-users moving a
- worktree to different places without telling Git (the original
- repository needs to maintain backpointers to its worktrees, but
- "mv" run by end-users who are not familiar with that fact will
- obviously not adjust them), which actually made things worse
- when triggered.
+* ss/commit-dry-run-resolve-merge-to-no-op (2016-02-17) 1 commit
+ - wt-status.c: set commitable bit if there is a meaningful merge.
+ "git commit --dry-run" reported "No, no, you cannot commit." in one
+ case where "git commit" would have allowed you to commit, and this
+ improves it a little bit ("git commit --dry-run --short" still does
+ not give you the correct answer, for example).
-* sb/submodule-init (2016-01-28) 2 commits
- - submodule: port init from shell to C
- - submodule: port resolve_relative_url from shell to C
- (this branch uses sb/submodule-parallel-update; is tangled with dt/refs-backend-lmdb.)
- Major part of "git submodule init" has been ported to C.
+* tg/git-remote (2016-02-16) 4 commits
+ - remote: use remote_is_configured() for add and rename
+ - remote: actually check if remote exits
+ - remote: simplify remote_is_configured()
+ - remote: use parse_config_key
- Will have to wait for 'sb/submodule-parallel-update'.
+ The internal API to interact with "remote.*" configuration
+ variables has been streamlined.
+ Will merge to 'next'.
-* wp/sha1-name-negative-match (2016-02-01) 2 commits
- (merged to 'next' on 2016-02-03 at 89fa5ef)
- + object name: introduce '^{/!-<negative pattern>}' notation
- + test for '!' handling in rev-parse's named commits
- A new "<branch>^{/!-<pattern>}" notation can be used to name a
- commit that is reachable from <branch> that does not match the
- given <pattern>.
+* ls/config-origin (2016-02-17) 3 commits
+ - config: add '--show-origin' option to print the origin of a config value
+ - config: add 'type' to config_source struct that identifies config type
+ - t: do not hide Git's exit code in tests using 'nul_to_q'
--------------------------------------------------
[Stalled]
--------------------------------------------------
[Cooking]
-* jk/rerere-xsnprintf (2016-02-08) 1 commit
- (merged to 'next' on 2016-02-09 at ff9ade3)
- + rerere: replace strcpy with xsnprintf
- (this branch is used by jc/rerere-multi.)
-
- Some calls to strcpy(3) triggers a false warning from static
- analysers that are less intelligent than humans, and reducing the
- number of these false hits helps us notice real issues. A few
- calls to strcpy(3) in "git rerere" that are already safe has been
- rewritten to avoid false wanings.
+* ep/format-printf (2016-02-11) 22 commits
+ - wt-status.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - utf8.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - transport-helper.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - trace.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - strbuf.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - remote.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - pkt-line.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - merge-recursive.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - imap-send.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - http-backend.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - fsck.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - daemon.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - config.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - color.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - cache.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - builtin/upload-archive.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - builtin/update-index.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - builtin/receive-pack.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - builtin/index-pack.c: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - argv-array.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - advice.h: use the FORMAT_PRINTF macro to declare the gcc function attribute 'format printf'
+ - git-compat-util.h: add the FORMAT_PRINTF macro
- Will merge to 'master'.
+ Undecided.
-* jk/test-path-utils-xsnprintf (2016-02-08) 1 commit
- (merged to 'next' on 2016-02-09 at 931f70b)
- + test-path-utils: use xsnprintf in favor of strcpy
+* ew/force-ipv4 (2016-02-12) 1 commit
+ - connect & http: support -4 and -6 switches for remote operations
- Some calls to strcpy(3) triggers a false warning from static
- analysers that are less intelligent than humans, and reducing the
- number of these false hits helps us notice real issues. A few
- calls to strcpy(3) in test-path-utils that are already safe has
- been rewritten to avoid false wanings.
+ "git fetch" and friends that make network connections can now be
+ told to only use ipv4 (or ipv6).
- Will merge to 'master'.
+ Will merge to 'next'.
-* mm/clean-doc-fix (2016-02-09) 1 commit
- (merged to 'next' on 2016-02-09 at ced8555)
- + Documentation/git-clean.txt: don't mention deletion of .git/modules/*
+* jk/lose-name-path (2016-02-12) 5 commits
+ - list-objects: pass full pathname to callbacks
+ - list-objects: drop name_path entirely
+ - list-objects: convert name_path to a strbuf
+ - show_object_with_name: simplify by using path_name()
+ - http-push: stop using name_path
- The documentation for "git clean" has been corrected; it mentioned
- that .git/modules/* are removed by giving two "-f", which has never
- been the case.
+ The "name_path" API was an attempt to reduce the need to construct
+ the full path out of a series of path components while walking a
+ tree hierarchy, but over time made less efficient because the path
+ needs to be flattened, e.g. to be compared with another path that
+ is already flat. Remove the API and rewrite its users to simplify
+ overall code complexity.
- Will merge to 'master'.
+ Will merge to 'next'.
-* nd/icase (2016-02-09) 11 commits
+* nd/icase (2016-02-15) 12 commits
+ - grep.c: reuse "icase" variable
- diffcore-pickaxe: support case insensitive match on non-ascii
- diffcore-pickaxe: "share" regex error handling code
- grep/pcre: support utf-8
"git grep -i" has been taught to fold case in non-ascii locales.
- ($gmane/285666)
+ ($gmane/286137)
* tb/conversion (2016-02-10) 6 commits
+ convert.c: remove unused parameter 'path'
+ t0027: add tests for get_stream_filter()
- Simplication of eol conversion codepath.
-
-
-* da/user-useconfigonly (2016-02-08) 2 commits
- (merged to 'next' on 2016-02-09 at 8b303ce)
- + ident: add user.useConfigOnly boolean for when ident shouldn't be guessed
- + fmt_ident: refactor strictness checks
-
- The "user.useConfigOnly" configuration variable can be used to
- force the user to always set user.email & user.name configuration
- variables, serving as a reminder for those who work on multiple
- projects and do not want to put these in their $HOME/.gitconfig.
-
- Will merge to 'master'.
-
-
-* ah/stripspace-optstring (2016-01-29) 1 commit
- (merged to 'next' on 2016-02-12 at cd021aa)
- + stripspace: call U+0020 a "space" instead of a "blank"
-
- Will merge to 'master'.
-
-
-* dw/mergetool-vim-window-shuffle (2016-02-12) 1 commit
- (merged to 'next' on 2016-02-12 at 2a2e8bd)
- + mergetool: reorder vim/gvim buffers in three-way diffs
-
- The vimdiff backend for "git mergetool" has been tweaked to arrange
- and number buffers in the order that would match the expectation of
- majority of people who read left to right, then top down and assign
- buffers 1 2 3 4 "mentally" to local base remote merge windows based
- on that order.
-
- Will merge to 'master'.
-
-
-* jk/drop-rsync-transport (2016-02-01) 1 commit
- (merged to 'next' on 2016-02-03 at 08be402)
- + transport: drop support for git-over-rsync
-
- It turns out "git clone" over rsync transport has been broken when
- the source repository has packed references for a long time, and
- nobody noticed nor complained about it.
-
- Will merge to 'master'.
-
-
-* dv/http-try-negotiate-at-least-once (2016-02-02) 1 commit
- - remote-curl: don't fall back to Basic auth if we haven't tried Negotiate
-
Will be rerolled.
- A solution with a different approach may be a better one.
- ($gmane/285633)
+ ($gmane/286219)
-* sb/submodule-parallel-update (2016-02-12) 7 commits
+* sb/submodule-parallel-update (2016-02-13) 7 commits
- clone: allow an explicit argument for parallel submodule clones
- submodule update: expose parallelism to the user
- git submodule update: have a dedicated helper for cloning
- fetching submodules: respect `submodule.fetchJobs` config option
- submodule-config: drop check against NULL
- submodule-config: keep update strategy around
- (this branch is used by dt/refs-backend-lmdb.)
+ (this branch is used by dt/refs-backend-lmdb and sb/submodule-init.)
A major part of "git submodule update" has been ported to C to take
advantage of the recently added framework to run download tasks in
parallel.
+ Comments?
-* dt/refs-backend-lmdb (2016-02-12) 22 commits
+
+* dt/refs-backend-lmdb (2016-02-13) 22 commits
- refs: tests for lmdb backend
- refs: add LMDB refs storage backend
- refs: add register_ref_storage_backends()
- refs: add methods for the ref iterators
- refs: add methods for misc ref operations
- refs: add a backend method structure with transaction functions
- - Merge branch 'sb/submodule-parallel-update' into dt/refs/backend-lmdb
- (this branch uses sb/submodule-parallel-update.)
+ - Merge branch 'sb/submodule-parallel-update' into dt/refs-backend-lmdb
+ (this branch uses sb/submodule-parallel-update; is tangled with sb/submodule-init.)
Building on top of a few refs-backend preparatory series, LMDB
based refs backend has been plugged into the system.
($gmane/285604)
-* js/mingw-tests (2016-02-08) 21 commits
- (merged to 'next' on 2016-02-08 at 417e555)
- + gitignore: ignore generated test-fake-ssh executable
- (merged to 'next' on 2016-02-03 at ace7624)
- + mingw: do not bother to test funny file names
- + mingw: skip a test in t9130 that cannot pass on Windows
- + mingw: handle the missing POSIXPERM prereq in t9124
- + mingw: avoid illegal filename in t9118
- + mingw: mark t9100's test cases with appropriate prereqs
- + t0008: avoid absolute path
- + mingw: work around pwd issues in the tests
- + mingw: fix t9700's assumption about directory separators
- + mingw: skip test in t1508 that fails due to path conversion
- + tests: turn off git-daemon tests if FIFOs are not available
- + mingw: disable mkfifo-based tests
- + mingw: accomodate t0060-path-utils for MSYS2
- + mingw: fix t5601-clone.sh
- + mingw: let lstat() fail with errno == ENOTDIR when appropriate
- + mingw: try to delete target directory before renaming
- + mingw: prepare the TMPDIR environment variable for shell scripts
- + mingw: factor out Windows specific environment setup
- + Git.pm: stop assuming that absolute paths start with a slash
- + mingw: do not trust MSYS2's MinGW gettext.sh
- + mingw: let's use gettext with MSYS2
- (this branch is used by mg/mingw-test-fix.)
-
- Test scripts have been updated to remove assumptions that are not
- portable between Git for POSIX and Git for Windows, or to skip ones
- with expectations that are not satisfiable on Git for Windows.
-
- Will merge to 'master'.
-
-
-* mg/mingw-test-fix (2016-02-08) 1 commit
- (merged to 'next' on 2016-02-12 at df77956)
- + t9100: fix breakage when SHELL_PATH is not /bin/sh
- (this branch uses js/mingw-tests.)
-
- An earlier adjustment of test mistakenly used write_script
- to prepare a file whose exact content matters for the test;
- reverting that part fixes the breakage for those who use
- SHELL_PATH that is different from /bin/sh.
-
- Will merge to 'master'.
-
-
-* nd/clear-gitenv-upon-use-of-alias (2016-02-02) 4 commits
- (merged to 'next' on 2016-02-09 at 2c441b4)
- + restore_env(): free the saved environment variable once we are done
- + git: simplify environment save/restore logic
- + git: protect against unbalanced calls to {save,restore}_env()
- + git: remove an early return from save_env_before_alias()
-
- The automatic typo correction applied to an alias was broken
- with a recent change already in 'master'.
-
- Will merge to 'master'.
-
-
-* kn/ref-filter-atom-parsing (2016-02-02) 12 commits
+* kn/ref-filter-atom-parsing (2016-02-17) 11 commits
- ref-filter: introduce objectname_atom_parser()
- ref-filter: introduce contents_atom_parser()
- ref-filter: introduce remote_ref_atom_parser()
- ref-filter: introduce parsing functions for each valid atom
- ref-filter: introduce struct used_atom
- ref-filter: bump 'used_atom' and related code to the top
- - ref-filter: use strbuf_split_str_omit_term()
- - strbuf: introduce strbuf_split_str_omit_term()
+ - ref-filter: use string_list_split over strbuf_split
Refactoring of ref-filter's format-parsing code, in preparation
for "branch --format" and friends.
- ($gmane/285158)
+ Will merge to 'next'.
* ad/cygwin-wants-rename (2015-08-07) 1 commit
- rerere: handle leftover rr-cache/$ID directory and postimage files
- rerere: scan $GIT_DIR/rr-cache/$ID when instantiating a rerere_id
- rerere: split conflict ID further
- (this branch uses jk/rerere-xsnprintf.)
"git rerere" can encounter two or more files with the same conflict
signature that have to be resolved in different ways, but there was
git-gui still uses the deprecated syntax, which needs to be fixed
before this final step can proceed.
($gmane/282594)
+
+--------------------------------------------------
+[Discarded]
+
+* dv/http-try-negotiate-at-least-once (2016-02-02) 1 commit
+ . remote-curl: don't fall back to Basic auth if we haven't tried Negotiate
+
+ bc/http-empty-auth satisfies the original need that triggered this
+ topic better.