To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Apr 2015, #04; Mon, 27)
-X-master-at: fb3e7d5515308c73c54c797356651d6ca41b58a6
-X-next-at: 800e5753bd3e417587c1acede4a07b3a0f1c5198
+Subject: What's cooking in git.git (Apr 2015, #05; Thu, 30)
+X-master-at: 3d4a3ffe64162b45ae7c991fc60623ecb4678cfd
+X-next-at: 7a0482398323b9bd8dbb64ab9010e63a95b81bce
-What's cooking in git.git (Apr 2015, #04; Mon, 27)
+What's cooking in git.git (Apr 2015, #05; Thu, 30)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
'-' are only in 'pu' (proposed updates) while commits prefixed with
'+' are in 'next'.
-I'll merge two small documentation follow-up to the new features
-in 2.4.0 (mg/status-v-v and nd/versioncmp-prereleases topics) to
-'master' and tag the final Git 2.4 later this week.
+Git 2.4 final has been tagged. We'll wait for a few days to see
+if there are brown-paper-bag bugs, fix them if there are any, and
+then rewind 'next' and rebuild it to kick off the next cycle.
You can find the changes described here in the integration branches
of the repositories listed at
--------------------------------------------------
[Graduated to "master"]
-* jc/push-cert (2015-04-02) 1 commit
- (merged to 'next' on 2015-04-08 at aecdd43)
- + push --signed: tighten what the receiving end can ask to sign
+* mg/show-notes-doc (2015-04-17) 1 commit
+ (merged to 'next' on 2015-04-20 at 2e93969)
+ + rev-list-options.txt: complete sentence about notes matching
+
+ Documentation fix.
+
+
+* mg/status-v-v (2015-04-23) 1 commit
+ (merged to 'next' on 2015-04-25 at cbcaca4)
+ + status: document the -v/--verbose option
+
+ Documentation fix.
+
+
+* nd/versioncmp-prereleases (2015-04-23) 1 commit
+ (merged to 'next' on 2015-04-25 at f824d7f)
+ + git tag: mention versionsort.prereleaseSuffix in manpage
+
+ Documentation fix.
+
+--------------------------------------------------
+[New Topics]
+
+* jk/rebase-quiet-noop (2015-04-28) 1 commit
+ - rebase: silence "git checkout" for noop rebase
+
+ "git rebase --quiet" was not quite quiet when there is nothing to
+ do.
+
+ Will merge to 'next'.
+
+
+* ld/p4-case-fold (2015-04-28) 1 commit
+ - git-p4: add failing tests for case-folding p4d
+
+ Will merge to 'next'.
+
+
+* va/fix-git-p4-tests (2015-04-28) 1 commit
+ - git-p4: t9814: prevent --chain-lint failure
+
+ Will merge to 'next'.
- The "git push --signed" protocol extension did not limit what the
- "nonce" that is a server-chosen string can contain or how long it
- can be, which was unnecessarily lax. Limit both the length and the
- alphabet to a reasonably small space that can still have enough
- entropy.
+* jk/filter-branch-use-of-sed-on-incomplete-line (2015-04-29) 1 commit
+ - filter-branch: avoid passing commit message through sed
-* ma/bash-completion-leaking-x (2015-04-12) 1 commit
- (merged to 'next' on 2015-04-14 at 3a52a6d)
- + completion: fix global bash variable leak on __gitcompappend
+ "filter-branch" was broken by some "sed" implementations that
+ corrupt commit log message that ends with an incomplete line.
+ Work it around by avoiding to use "sed".
- The completion script (in contrib/) contaminated global namespace
- and clobbered on a shell variable $x.
+ Will merge to 'next'.
-* ps/grep-help-all-callback-arg (2015-04-12) 1 commit
- (merged to 'next' on 2015-04-14 at e0a8092)
- + grep: correctly initialize help-all option
+* ph/rebase-i-redo (2015-04-29) 1 commit
+ - rebase -i: redo tasks that die during cherry-pick
- Code clean-up.
+ "git rebase -i" moved the "current" command from "todo" to "done" a
+ bit too prematurely, losing a step when a "pick" did not even start.
+ Will merge to 'next'.
-* tb/connect-ipv6-parse-fix (2015-04-08) 1 commit
- (merged to 'next' on 2015-04-14 at e720918)
- + connect.c: ignore extra colon after hostname
- An earlier update to the parser that disects a URL broke an
- address, followed by a colon, followed by an empty string (instead
- of the port number), e.g. ssh://example.com:/path/to/repo.
+* ep/do-not-feed-a-pointer-to-array-size (2015-04-30) 2 commits
+ - SQUASH???
+ - git-compat-util.h: implement a different ARRAY_SIZE macro for for safely deriving the size of array
- This should go to the maintenance track, too.
+ Catch programmer mistake to feed a pointer not an array to
+ ARRAY_SIZE() macro, by using a couple of GCC extensions.
-* va/fix-git-p4-tests (2015-04-12) 3 commits
- (merged to 'next' on 2015-04-14 at 261bf90)
- + t9814: guarantee only one source exists in git-p4 copy tests
- + git-p4: fix copy detection test
- + t9814: fix broken shell syntax in git-p4 rename test
+* tb/blame-resurrect-convert-to-git (2015-04-30) 1 commit
+ - blame: CRLF in the working tree and LF in the repo
- Test fixes for git-p4.
+ Some time ago, "git blame" (incorrectly) lost the convert_to_git()
+ call when synthesizing a fake "tip" commit that represents the
+ state in the working tree, which broke folks who record the history
+ with LF line ending to make their project portabile across
+ platforms while terminating lines in their working tree files with
+ CRLF for their platform.
+
+ Will merge to 'next'.
--------------------------------------------------
-[New Topics]
+[Stalled]
+
+* kk/log-merges-config (2015-04-21) 5 commits
+ - bash-completion: add support for git-log --merges= and log.merges
+ - t4202-log: add tests for --merges=
+ - Documentation: add git-log --merges= option and log.merges config. var
+ - log: honor log.merges= option
+ - revision: add --merges={show|only|hide} option
+
+ "git log" (but not other commands in the "log" family) learned to
+ pay attention to the log.merges configuration variable that can be
+ set to "show" (the normal behaviour), "only" (hide non-merge
+ commits), or "hide" (hide merge commits). --merges=(show|only|hide)
+ can be used to override the setting from the command line.
+
+ The documentation may need to be updated once more ($gmane/267250).
+ Waiting for a reroll.
+
+
+* mh/fdopen-with-retry (2015-03-06) 6 commits
+ - buffer_fdinit(): use fdopen_with_retry()
+ - update_info_file(): use fdopen_with_retry()
+ - copy_to_log(): use fdopen_with_retry()
+ - fdopen_lock_file(): use fdopen_with_retry()
+ - SQUASH??? $gmane/264889
+ - xfdopen(): if first attempt fails, free memory and try again
+
+ Various parts of the code where they call fdopen() can fail when
+ they run out of memory; attempt to proceed by retrying the
+ operation after freeing some resource.
+
+ Will discard.
+
+
+* mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
+ - t/lib-git-svn: check same httpd module dirs as lib-httpd
+ - t/lib-httpd: load mod_unixd
+
+ This is the first two commits in a three-patch series $gmane/266962
+ Will be rerolled.
+ with updated log message ($gmane/268061).
+
+
+* jk/at-push-sha1 (2015-03-31) 6 commits
+ - sha1_name: implement @{push} shorthand
+ - sha1_name: refactor upstream_mark
+ - remote.c: provide per-branch pushremote name
+ - remote.c: hoist branch.*.remote lookup out of remote_get_1
+ - remote.c: drop "remote" pointer from "struct branch"
+ - remote.c: drop default_remote_name variable
+
+ Introduce <branch>@{push} short-hand to denote the remote-tracking
+ branch that tracks the branch at the remote the <branch> would be
+ pushed to.
+
+ Will be rerolled ($gmane/268040).
+
+
+* pt/xdg-config-path (2015-04-12) 7 commits
+ - path.c: remove home_config_paths()
+ - git-config: replace use of home_config_paths()
+ - git-commit: replace use of home_config_paths()
+ - credential-store.c: replace home_config_paths() with xdg_config_home()
+ - dir.c: replace home_config_paths() with xdg_config_home()
+ - attr.c: replace home_config_paths() with xdg_config_home()
+ - path.c: implement xdg_config_home()
+ (this branch uses pt/credential-xdg.)
+
+ Seen some discussions.
+ Waiting for a reroll ($gmane/267518).
+
+
+* mh/numparse (2015-03-19) 14 commits
+ - diff_opt_parse(): use convert_i() when handling --abbrev=<num>
+ - diff_opt_parse(): use convert_i() when handling "-l<num>"
+ - opt_arg(): simplify pointer handling
+ - opt_arg(): report errors parsing option values
+ - opt_arg(): use convert_i() in implementation
+ - opt_arg(): val is always non-NULL
+ - builtin_diff(): detect errors when parsing --unified argument
+ - handle_revision_opt(): use convert_ui() when handling "--abbrev="
+ - strtoul_ui(), strtol_i(): remove functions
+ - handle_revision_opt(): use convert_i() when handling "-<digit>"
+ - handle_revision_opt(): use skip_prefix() in many places
+ - write_subdirectory(): use convert_ui() for parsing mode
+ - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
+ - numparse: new module for parsing integral numbers
+
+ Many codepaths use unchecked use of strtol() and friends (or even
+ worse, atoi()). Introduce a set of wrappers that try to be more
+ careful.
+
+ Will be rerolled.
+ ($gmane/268058).
+
+
+* tf/gitweb-project-listing (2015-03-19) 5 commits
+ - gitweb: make category headings into links when they are directories
+ - gitweb: optionally set project category from its pathname
+ - gitweb: add a link under the search box to clear a project filter
+ - gitweb: if the PATH_INFO is incomplete, use it as a project_filter
+ - gitweb: fix typo in man page
+
+ Update gitweb to make it more pleasant to deal with a hierarchical
+ forest of repositories.
+
+ Any comments from those who use or have their own code in Gitweb?
+
+
+* jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit
+ - "-" and "@{-1}" on various programs
+
+ Lose special case code to make a lone dash "-" mean the previous
+ branch aka "@{-1}" from a handful subcommands, and instead support
+ the notation throughout the system by reimplementing it at the
+ revisions layer.
+
+ Needs tests, documentation updates, etc. Also does only a half-way
+ job dealing with range notation, which needs to be fixed before the
+ series goes anywhere.
+
+
+* nd/list-files (2015-02-09) 21 commits
+ - t3080: tests for git-list-files
+ - list-files: -M aka diff-cached
+ - list-files -F: show submodules with the new indicator '&'
+ - list-files: add -F/--classify
+ - list-files: show directories as well as files
+ - list-files: do not show duplicate cached entries
+ - list-files: sort output and remove duplicates
+ - list-files: add -t back
+ - list-files: add -1 short for --no-column
+ - list-files: add -R/--recursive short for --max-depth=-1
+ - list-files: -u does not imply showing stages
+ - list-files: make alias 'ls' default to 'list-files'
+ - list-files: a user friendly version of ls-files and more
+ - ls-files: support --max-depth
+ - ls-files: add --column
+ - ls-files: add --color to highlight file names
+ - ls-files: buffer full item in strbuf before printing
+ - ls_colors.c: highlight submodules like directories
+ - ls_colors.c: add a function to color a file name
+ - ls_colors.c: parse color.ls.* from config file
+ - ls_colors.c: add $LS_COLORS parsing code
+
+ A new "git list-files" Porcelain command, "ls-files" with bells and
+ whistles.
+
+ Reroll to base on wt-status work ($gmane/265142) has seen some
+ positive discussions.
+
+ Waiting for a further polished reroll ($gmane/265534).
+
+
+* js/fsck-opt (2015-01-21) 19 commits
+ - fsck: support ignoring objects in `git fsck` via fsck.skiplist
+ - fsck: git receive-pack: support excluding objects from fsck'ing
+ - fsck: introduce `git fsck --quick`
+ - fsck: support demoting errors to warnings
+ - fsck: document the new receive.fsck.* options
+ - fsck: allow upgrading fsck warnings to errors
+ - fsck: optionally ignore specific fsck issues completely
+ - fsck: disallow demoting grave fsck errors to warnings
+ - fsck: add a simple test for receive.fsck.*
+ - fsck: make fsck_tag() warn-friendly
+ - fsck: handle multiple authors in commits specially
+ - fsck: make fsck_commit() warn-friendly
+ - fsck: make fsck_ident() warn-friendly
+ - fsck: report the ID of the error/warning
+ - fsck: allow demoting errors to warnings via receive.fsck.warn = <key>
+ - fsck: offer a function to demote fsck errors to warnings
+ - fsck: provide a function to parse fsck message IDs
+ - fsck: introduce identifiers for fsck messages
+ - fsck: introduce fsck options
+
+ "fsck.warnings = <list of error tokens>" I suggested turned out to
+ be an unpopular choice (sorry Dscho).
+
+ Expecting a reroll.
+
+
+* nd/untracked-cache (2015-03-12) 24 commits
+ - git-status.txt: advertisement for untracked cache
+ - untracked cache: guard and disable on system changes
+ - mingw32: add uname()
+ - t7063: tests for untracked cache
+ - update-index: test the system before enabling untracked cache
+ - update-index: manually enable or disable untracked cache
+ - status: enable untracked cache
+ - untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
+ - untracked cache: mark index dirty if untracked cache is updated
+ - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
+ - untracked cache: avoid racy timestamps
+ - read-cache.c: split racy stat test to a separate function
+ - untracked cache: invalidate at index addition or removal
+ - untracked cache: load from UNTR index extension
+ - untracked cache: save to an index extension
+ - ewah: add convenient wrapper ewah_serialize_strbuf()
+ - untracked cache: don't open non-existent .gitignore
+ - untracked cache: mark what dirs should be recursed/saved
+ - untracked cache: record/validate dir mtime and reuse cached output
+ - untracked cache: make a wrapper around {open,read,close}dir()
+ - untracked cache: invalidate dirs recursively if .gitignore changes
+ - untracked cache: initial untracked cache validation
+ - untracked cache: record .gitignore information and dir hierarchy
+ - dir.c: optionally compute sha-1 of a .gitignore file
+
+ Need extra sets of eyes to review this.
+
+
+* nd/pathspec-strip-fix (2015-04-18) 1 commit
+ - pathspec: adjust prefixlen after striping trailing slash
+
+ Does not quite fix ($gmane/267614).
+
+
+* jc/diff-b-m (2015-02-23) 5 commits
+ . WIPWIP
+ . WIP: diff-b-m
+ - diffcore-rename: allow easier debugging
+ - diffcore-rename.c: add locate_rename_src()
+ - diffcore-break: allow debugging
+
+ "git diff -B -M" produced incorrect patch when the postimage of a
+ completely rewritten file is similar to the preimage of a removed
+ file; such a resulting file must not be expressed as a rename from
+ other place.
+
+ The fix in this patch is broken, unfortunately.
+
+
+* pw/remote-set-url-fetch (2014-11-26) 1 commit
+ - remote: add --fetch and --both options to set-url
+
+ Expecting a reroll.
+
+
+* tr/remerge-diff (2014-11-10) 9 commits
+ - t4213: avoid "|" in sed regexp
+ - log --remerge-diff: show what the conflict resolution changed
+ - name-hash: allow dir hashing even when !ignore_case
+ - merge-recursive: allow storing conflict hunks in index
+ - merge_diff_mode: fold all merge diff variants into an enum
+ - combine-diff: do not pass revs->dense_combined_merges redundantly
+ - merge-recursive: -Xindex-only to leave worktree unchanged
+ - merge-recursive: internal flag to avoid touching the worktree
+ - merge-recursive: remove dead conditional in update_stages()
+
+ "log -p" output learns a new way to let users inspect a merge
+ commit by showing the differences between the automerged result
+ with conflicts the person who recorded the merge would have seen
+ and the final conflict resolution that was recorded in the merge.
+
+ Waiting for a reroll ($gmane/256591).
+
+
+* hv/submodule-config (2014-11-11) 4 commits
+ - do not die on error of parsing fetchrecursesubmodules option
+ - use new config API for worktree configurations of submodules
+ - extract functions for submodule config set and lookup
+ - implement submodule config cache for lookup of submodule names
+
+ Kicked back to 'pu' per request ($gmane/255610).
+
+
+* tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
+ - perf-lib: add test_perf_cleanup target
+ - perf-lib: split starting the test from the execution
+
+ Add test_perf_cleanup shell function to the perf suite, that allows
+ the script writers to define a test with a clean-up action.
+
+ Will hold.
+
+
+* jc/show-branch (2014-03-24) 5 commits
+ - show-branch: use commit slab to represent bitflags of arbitrary width
+ - show-branch.c: remove "all_mask"
+ - show-branch.c: abstract out "flags" operation
+ - show-branch.c: lift all_mask/all_revs to a global static
+ - show-branch.c: update comment style
+
+ Waiting for the final step to lift the hard-limit.
+
+--------------------------------------------------
+[Cooking]
* jc/epochtime-wo-tz (2015-04-15) 2 commits
(merged to 'next' on 2015-04-21 at b926f72)
be touched?" check "git clean" does by checking if it has .git/HEAD
using the submodule-related code with a more optimized check.
- Will merge to 'next'.
+ Waiting for a reroll.
* ep/fix-test-lib-functions-report (2015-04-16) 1 commit
Will merge to 'master' in the second batch of post v2.4 cycle.
-* mg/show-notes-doc (2015-04-17) 1 commit
- (merged to 'next' on 2015-04-20 at 2e93969)
- + rev-list-options.txt: complete sentence about notes matching
-
- Documentation fix.
-
- Will merge to 'master' in the first batch of post v2.4 cycle.
-
-
* mm/add-p-split-error (2015-04-16) 5 commits
(merged to 'next' on 2015-04-23 at b1bd21a)
+ stash -p: demonstrate failure of split with mixed y/n
and biting us (I seem to have said "let's run with this and see
what happens" back then).
- Will merge to 'master'.
+ Will merge to 'master' in the third batch of post v2.4 cycle.
* mm/usage-log-l-can-take-regex (2015-04-20) 2 commits
Will merge to 'master' in the second batch of post v2.4 cycle.
-* nd/pathspec-strip-fix (2015-04-18) 1 commit
- - pathspec: adjust prefixlen after striping trailing slash
-
- Does not quite fix ($gmane/267614).
-
-
* nd/t1509-chroot-test (2015-04-18) 1 commit
(merged to 'next' on 2015-04-21 at 60d35d3)
+ t1509: update prepare script to be able to run t1509 in chroot again
+ t0027: support NATIVE_CRLF platforms
+ t0027: cleanup: rename functions; avoid non-leading TABs
- Will merge to 'master' in the first batch of post v2.4 cycle.
+ Will merge to 'next'.
* jk/prune-mtime (2015-04-20) 3 commits
Will merge to 'next'.
-* jc/merge (2015-04-25) 14 commits
+* jc/merge (2015-04-29) 15 commits
- merge: deprecate 'git merge <message> HEAD <commit>' syntax
- merge: handle FETCH_HEAD internally
- merge: decide if we auto-generate the message early in collect_parents()
- t5520: test pulling an octopus into an unborn branch
- t5520: style fixes
- merge: simplify code flow
+ - merge: test the top-level merge driver
(this branch is used by jc/merge-drop-old-syntax.)
"git merge FETCH_HEAD" learned that the previous "git fetch" could
be to create an Octopus merge, i.e. recording multiple branches
that are not marked as "not-for-merge"; this allows us to lose an
old style invocation "git merge <msg> HEAD $commits..." in the
- implementation of "git pull" script; the old style syntax can now
- be deprecated.
-
-
-* jk/test-chain-lint (2015-04-22) 1 commit
- - test-lib: turn on GIT_TEST_CHAIN_LINT by default
-
- Will merge to 'next'.
-
-
-* mg/status-v-v (2015-04-23) 1 commit
- (merged to 'next' on 2015-04-25 at cbcaca4)
- + status: document the -v/--verbose option
-
- Will merge to 'master'.
-
-
-* mh/ref-lock-avoid-running-out-of-fds (2015-04-25) 8 commits
- - ref_transaction_commit(): only keep one lockfile open at a time
- - ref_transaction_commit(): remove the local flags variables
- - write_ref_sha1(): inline function at callers
- - commit_ref_update(): new function, extracted from write_ref_sha1()
- - write_ref_to_lockfile(): new function, extracted from write_ref_sha1()
- - refs.c: remove lock_fd from struct ref_lock
- - t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE
- - update-ref: test handling large transactions properly
- (this branch is tangled with sb/ref-lock-avoid-running-out-of-fds.)
-
- "git update-ref --stdin" was converted to be "transactional" some
- time ago, but the ref transaction machinery was not prepared to
- handle many refs, primarily because it tried to keep the loose ref
- files open at the same time, which would cause us to hit the ENFILE
- limit. Fix the ref_transaction_commit() code not to keep the file
- descriptors open unnecessarily.
-
- We would probably want to apply the fix to older codebase, but this
- fix is unfortunately done to apply only on v2.4.x track.
-
-
-* nd/versioncmp-prereleases (2015-04-23) 1 commit
- (merged to 'next' on 2015-04-25 at f824d7f)
- + git tag: mention versionsort.prereleaseSuffix in manpage
-
- Will merge to 'master'.
-
-
-* bc/connect-plink (2015-04-27) 3 commits
- - connect: improve check for plink to reduce false positives
- - t5601: fix quotation error leading to skipped tests
- - connect: simplify SSH connection code path
- (this branch uses jc/test-prereq-validate.)
-
- The connection initiation code for "ssh" transport tried to absorb
- differences between the stock "ssh" and Putty-supplied "plink" and
- its derivatives, but the logic to tell that we are using "plink"
- variants were too loose and falsely triggered when "plink" appeared
- anywhere in the path (e.g. "/home/me/bin/uplink/ssh").
-
- Will merge to 'next'.
-
-
-* jc/test-prereq-validate (2015-04-26) 1 commit
- - test: validate prerequistes syntax
- (this branch is used by bc/connect-plink.)
-
- Help us to find broken test script that splits the body part of the
- test by mistaken use of wrong kind of quotes.
-
- Will merge to 'next'.
-
-
-* fg/document-commit-message-stripping (2015-04-27) 1 commit
- - Documentation: clarify how "git commit" cleans up the edited log message
-
- Will merge to 'next'.
-
---------------------------------------------------
-[Stalled]
-
-* mh/fdopen-with-retry (2015-03-06) 6 commits
- - buffer_fdinit(): use fdopen_with_retry()
- - update_info_file(): use fdopen_with_retry()
- - copy_to_log(): use fdopen_with_retry()
- - fdopen_lock_file(): use fdopen_with_retry()
- - SQUASH??? $gmane/264889
- - xfdopen(): if first attempt fails, free memory and try again
-
- Various parts of the code where they call fdopen() can fail when
- they run out of memory; attempt to proceed by retrying the
- operation after freeing some resource.
-
- Waiting for further comments.
-
-
-* nd/untracked-cache (2015-03-12) 24 commits
- - git-status.txt: advertisement for untracked cache
- - untracked cache: guard and disable on system changes
- - mingw32: add uname()
- - t7063: tests for untracked cache
- - update-index: test the system before enabling untracked cache
- - update-index: manually enable or disable untracked cache
- - status: enable untracked cache
- - untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
- - untracked cache: mark index dirty if untracked cache is updated
- - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
- - untracked cache: avoid racy timestamps
- - read-cache.c: split racy stat test to a separate function
- - untracked cache: invalidate at index addition or removal
- - untracked cache: load from UNTR index extension
- - untracked cache: save to an index extension
- - ewah: add convenient wrapper ewah_serialize_strbuf()
- - untracked cache: don't open non-existent .gitignore
- - untracked cache: mark what dirs should be recursed/saved
- - untracked cache: record/validate dir mtime and reuse cached output
- - untracked cache: make a wrapper around {open,read,close}dir()
- - untracked cache: invalidate dirs recursively if .gitignore changes
- - untracked cache: initial untracked cache validation
- - untracked cache: record .gitignore information and dir hierarchy
- - dir.c: optionally compute sha-1 of a .gitignore file
-
- Need extra sets of eyes to review this.
-
-
-* jc/diff-b-m (2015-02-23) 5 commits
- . WIPWIP
- . WIP: diff-b-m
- - diffcore-rename: allow easier debugging
- - diffcore-rename.c: add locate_rename_src()
- - diffcore-break: allow debugging
+ implementation of "git pull" script; the old style syntax can now
+ be deprecated.
- "git diff -B -M" produced incorrect patch when the postimage of a
- completely rewritten file is similar to the preimage of a removed
- file; such a resulting file must not be expressed as a rename from
- other place.
- The fix in this patch is broken, unfortunately.
+* jc/merge-drop-old-syntax (2015-04-29) 1 commit
+ - merge: drop 'git merge <message> HEAD <commit>' syntax
+ (this branch uses jc/merge.)
+ Stop supporting "git merge <messsage> HEAD <commit>" syntax that
+ has been deprecated since October 2007.
-* pw/remote-set-url-fetch (2014-11-26) 1 commit
- - remote: add --fetch and --both options to set-url
- Expecting a reroll.
+* jk/test-chain-lint (2015-04-28) 2 commits
+ - test-lib: turn on GIT_TEST_CHAIN_LINT by default
+ - t7502-commit.sh: fix a broken and-chain
+ Will merge to 'next'.
-* tr/remerge-diff (2014-11-10) 9 commits
- - t4213: avoid "|" in sed regexp
- - log --remerge-diff: show what the conflict resolution changed
- - name-hash: allow dir hashing even when !ignore_case
- - merge-recursive: allow storing conflict hunks in index
- - merge_diff_mode: fold all merge diff variants into an enum
- - combine-diff: do not pass revs->dense_combined_merges redundantly
- - merge-recursive: -Xindex-only to leave worktree unchanged
- - merge-recursive: internal flag to avoid touching the worktree
- - merge-recursive: remove dead conditional in update_stages()
- "log -p" output learns a new way to let users inspect a merge
- commit by showing the differences between the automerged result
- with conflicts the person who recorded the merge would have seen
- and the final conflict resolution that was recorded in the merge.
+* mh/ref-lock-avoid-running-out-of-fds (2015-04-25) 8 commits
+ - ref_transaction_commit(): only keep one lockfile open at a time
+ - ref_transaction_commit(): remove the local flags variables
+ - write_ref_sha1(): inline function at callers
+ - commit_ref_update(): new function, extracted from write_ref_sha1()
+ - write_ref_to_lockfile(): new function, extracted from write_ref_sha1()
+ - refs.c: remove lock_fd from struct ref_lock
+ - t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE
+ - update-ref: test handling large transactions properly
+ (this branch is tangled with sb/ref-lock-avoid-running-out-of-fds.)
- Waiting for a reroll ($gmane/256591).
+ "git update-ref --stdin" was converted to be "transactional" some
+ time ago, but the ref transaction machinery was not prepared to
+ handle many refs, primarily because it tried to keep the loose ref
+ files open at the same time, which would cause us to hit the ENFILE
+ limit. Fix the ref_transaction_commit() code not to keep the file
+ descriptors open unnecessarily.
+ We would probably want to apply the fix to older codebase, but this
+ fix is unfortunately done to apply only on v2.4.x track.
-* hv/submodule-config (2014-11-11) 4 commits
- - do not die on error of parsing fetchrecursesubmodules option
- - use new config API for worktree configurations of submodules
- - extract functions for submodule config set and lookup
- - implement submodule config cache for lookup of submodule names
- Kicked back to 'pu' per request ($gmane/255610).
+* bc/connect-plink (2015-04-28) 3 commits
+ - connect: improve check for plink to reduce false positives
+ - t5601: fix quotation error leading to skipped tests
+ - connect: simplify SSH connection code path
+ The connection initiation code for "ssh" transport tried to absorb
+ differences between the stock "ssh" and Putty-supplied "plink" and
+ its derivatives, but the logic to tell that we are using "plink"
+ variants were too loose and falsely triggered when "plink" appeared
+ anywhere in the path (e.g. "/home/me/bin/uplink/ssh").
-* tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
- - perf-lib: add test_perf_cleanup target
- - perf-lib: split starting the test from the execution
+ Will merge to 'next'.
- Add test_perf_cleanup shell function to the perf suite, that allows
- the script writers to define a test with a clean-up action.
- Will hold.
+* jc/test-prereq-validate (2015-04-28) 1 commit
+ - test: validate prerequistes syntax
+ Help us to find broken test script that splits the body part of the
+ test by mistaken use of wrong kind of quotes.
-* jc/show-branch (2014-03-24) 5 commits
- - show-branch: use commit slab to represent bitflags of arbitrary width
- - show-branch.c: remove "all_mask"
- - show-branch.c: abstract out "flags" operation
- - show-branch.c: lift all_mask/all_revs to a global static
- - show-branch.c: update comment style
+ Will merge to 'next'.
- Waiting for the final step to lift the hard-limit.
---------------------------------------------------
-[Cooking]
+* fg/document-commit-message-stripping (2015-04-27) 1 commit
+ - Documentation: clarify how "git commit" cleans up the edited log message
+
+ Will merge to 'next'.
+
* ah/usage-strings (2015-04-02) 2 commits
- branch: fix funny-sounding error message
Will merge to 'master' in the second batch of post v2.4 cycle.
-* kk/log-merges-config (2015-04-21) 5 commits
- - bash-completion: add support for git-log --merges= and log.merges
- - t4202-log: add tests for --merges=
- - Documentation: add git-log --merges= option and log.merges config. var
- - log: honor log.merges= option
- - revision: add --merges={show|only|hide} option
-
- "git log" (but not other commands in the "log" family) learned to
- pay attention to the log.merges configuration variable that can be
- set to "show" (the normal behaviour), "only" (hide non-merge
- commits), or "hide" (hide merge commits). --merges=(show|only|hide)
- can be used to override the setting from the command line.
-
- The documentation may need to be updated once more.
-
-
* kn/cat-file-literally (2015-04-15) 5 commits
- SQUASH???
- t1006: add tests for git cat-file --literally
Add the "--literally" option to "cat-file" to allow inspecting
loose objects of an experimental or a broken type.
- This is v8 $gmane/267213; getting closer to the final, I would say.
+ This is v8 $gmane/267213; v9 was posted but it will still needs reroll.
+ Waiting for reroll.
* ld/p4-filetype-detection (2015-04-04) 3 commits
Will merge to 'master' in the first batch of post v2.4 cycle.
-* mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
- - t/lib-git-svn: check same httpd module dirs as lib-httpd
- - t/lib-httpd: load mod_unixd
-
- This is the first two commits in a three-patch series $gmane/266962
-
-
* lm/squelch-bg-progress (2015-04-15) 2 commits
(merged to 'next' on 2015-04-21 at 9a8b1e9)
+ compat/mingw: stubs for getpgid() and tcgetpgrp()
git p4 attempts to better handle branches in Perforce.
- Will merge to 'master'.
-
-
-* jk/at-push-sha1 (2015-03-31) 6 commits
- - sha1_name: implement @{push} shorthand
- - sha1_name: refactor upstream_mark
- - remote.c: provide per-branch pushremote name
- - remote.c: hoist branch.*.remote lookup out of remote_get_1
- - remote.c: drop "remote" pointer from "struct branch"
- - remote.c: drop default_remote_name variable
-
- Introduce <branch>@{push} short-hand to denote the remote-tracking
- branch that tracks the branch at the remote the <branch> would be
- pushed to.
-
- Waiting for a reroll ($gmane/266573).
+ Will merge to 'master' in the third batch of post v2.4 cycle.
* jk/sha1-file-reduce-useless-warnings (2015-03-30) 1 commit
Will cook in 'next'.
-* pt/xdg-config-path (2015-04-12) 7 commits
- - path.c: remove home_config_paths()
- - git-config: replace use of home_config_paths()
- - git-commit: replace use of home_config_paths()
- - credential-store.c: replace home_config_paths() with xdg_config_home()
- - dir.c: replace home_config_paths() with xdg_config_home()
- - attr.c: replace home_config_paths() with xdg_config_home()
- - path.c: implement xdg_config_home()
- (this branch uses pt/credential-xdg.)
-
- Seen some discussions.
- Waiting for a reroll ($gmane/267518).
-
-
* jc/diff-no-index-d-f (2015-03-26) 2 commits
(merged to 'next' on 2015-03-27 at 1f270f9)
+ diff-no-index: align D/F handling with that of normal Git
Will cook in 'next', as this brings in a new world order.
-* mh/numparse (2015-03-19) 14 commits
- - diff_opt_parse(): use convert_i() when handling --abbrev=<num>
- - diff_opt_parse(): use convert_i() when handling "-l<num>"
- - opt_arg(): simplify pointer handling
- - opt_arg(): report errors parsing option values
- - opt_arg(): use convert_i() in implementation
- - opt_arg(): val is always non-NULL
- - builtin_diff(): detect errors when parsing --unified argument
- - handle_revision_opt(): use convert_ui() when handling "--abbrev="
- - strtoul_ui(), strtol_i(): remove functions
- - handle_revision_opt(): use convert_i() when handling "-<digit>"
- - handle_revision_opt(): use skip_prefix() in many places
- - write_subdirectory(): use convert_ui() for parsing mode
- - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
- - numparse: new module for parsing integral numbers
-
- Many codepaths use unchecked use of strtol() and friends (or even
- worse, atoi()). Introduce a set of wrappers that try to be more
- careful.
-
- Waiting for a reroll ($gmane/266209).
-
-
-* tf/gitweb-project-listing (2015-03-19) 5 commits
- - gitweb: make category headings into links when they are directories
- - gitweb: optionally set project category from its pathname
- - gitweb: add a link under the search box to clear a project filter
- - gitweb: if the PATH_INFO is incomplete, use it as a project_filter
- - gitweb: fix typo in man page
-
- Update gitweb to make it more pleasant to deal with a hierarchical
- forest of repositories.
-
- Any comments from those who use or have their own code in Gitweb?
-
-
-* jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit
- - "-" and "@{-1}" on various programs
-
- Lose special case code to make a lone dash "-" mean the previous
- branch aka "@{-1}" from a handful subcommands, and instead support
- the notation throughout the system by reimplementing it at the
- revisions layer.
-
- Needs tests, documentation updates, etc. Also does only a half-way
- job dealing with range notation, which needs to be fixed before the
- series goes anywhere.
-
-
* bc/object-id (2015-03-13) 10 commits
(merged to 'next' on 2015-03-24 at 3ec4f83)
+ apply: convert threeway_stage to object_id
of hardcoded 20 as byte count and/or (2) use struct object_id
instead of unsigned char [20] for object names.
- Will cook in 'next'.
- Also waiting for reviews on the follow-up series ($gmane/265939)
- that seems to have seen no interest X-<.
+ Will merge to 'master' in the first batch of post v2.4 cycle.
* nd/slim-index-pack-memory-usage (2015-04-18) 2 commits
Will merge to 'master' in the second batch of post v2.4 cycle.
-* nd/list-files (2015-02-09) 21 commits
- - t3080: tests for git-list-files
- - list-files: -M aka diff-cached
- - list-files -F: show submodules with the new indicator '&'
- - list-files: add -F/--classify
- - list-files: show directories as well as files
- - list-files: do not show duplicate cached entries
- - list-files: sort output and remove duplicates
- - list-files: add -t back
- - list-files: add -1 short for --no-column
- - list-files: add -R/--recursive short for --max-depth=-1
- - list-files: -u does not imply showing stages
- - list-files: make alias 'ls' default to 'list-files'
- - list-files: a user friendly version of ls-files and more
- - ls-files: support --max-depth
- - ls-files: add --column
- - ls-files: add --color to highlight file names
- - ls-files: buffer full item in strbuf before printing
- - ls_colors.c: highlight submodules like directories
- - ls_colors.c: add a function to color a file name
- - ls_colors.c: parse color.ls.* from config file
- - ls_colors.c: add $LS_COLORS parsing code
-
- A new "git list-files" Porcelain command, "ls-files" with bells and
- whistles.
-
- Reroll to base on wt-status work ($gmane/265142) has seen some
- positive discussions.
-
- Waiting for a further polished reroll ($gmane/265534).
-
-
-* js/fsck-opt (2015-01-21) 19 commits
- - fsck: support ignoring objects in `git fsck` via fsck.skiplist
- - fsck: git receive-pack: support excluding objects from fsck'ing
- - fsck: introduce `git fsck --quick`
- - fsck: support demoting errors to warnings
- - fsck: document the new receive.fsck.* options
- - fsck: allow upgrading fsck warnings to errors
- - fsck: optionally ignore specific fsck issues completely
- - fsck: disallow demoting grave fsck errors to warnings
- - fsck: add a simple test for receive.fsck.*
- - fsck: make fsck_tag() warn-friendly
- - fsck: handle multiple authors in commits specially
- - fsck: make fsck_commit() warn-friendly
- - fsck: make fsck_ident() warn-friendly
- - fsck: report the ID of the error/warning
- - fsck: allow demoting errors to warnings via receive.fsck.warn = <key>
- - fsck: offer a function to demote fsck errors to warnings
- - fsck: provide a function to parse fsck message IDs
- - fsck: introduce identifiers for fsck messages
- - fsck: introduce fsck options
-
- "fsck.warnings = <list of error tokens>" I suggested turned out to
- be an unpopular choice (sorry Dscho).
-
- Expecting a reroll.
-
-
* nd/multiple-work-trees (2015-03-31) 41 commits
(merged to 'next' on 2015-04-02 at 7ea51b4)
+ prune --worktrees: fix expire vs worktree existence condition
October 2007.
This regresses "git pull" in various ways; do not merge ($gmane/267432).
-
-
-* jc/merge-drop-old-syntax (2015-04-25) 1 commit
- - merge: drop 'git merge <message> HEAD <commit>' syntax
- (this branch uses jc/merge.)
-
- Stop supporting "git merge <messsage> HEAD <commit>" syntax that
- has been deprecated since October 2007.
-
- This regresses "git pull" in various ways; do not merge ($gmane/267432).