To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Oct 2015, #03; Wed, 14)
-X-master-at: b27dacc1a80d1eca1994e6552d913e42d517f998
-X-next-at: 4b8c365398e63642c531f6a096df9da66a27f9fe
+Subject: What's cooking in git.git (Oct 2015, #04; Tue, 20)
+X-master-at: 614a2aced1ba739dfe5bf17a85f9d376efb235b1
+X-next-at: 4688abffc19bfe433e802ce56f31d4a362291a2d
-What's cooking in git.git (Oct 2015, #03; Wed, 14)
+What's cooking in git.git (Oct 2015, #04; Tue, 20)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
--------------------------------------------------
[Graduated to "master"]
-* jk/asciidoctor-section-heading-markup-fix (2015-09-25) 1 commit
- (merged to 'next' on 2015-10-07 at 8bbff49)
- + Documentation: fix section header mark-up
+* cc/quote-comments (2015-10-07) 2 commits
+ (merged to 'next' on 2015-10-09 at fc8a359)
+ + quote: move comment before sq_quote_buf()
+ + quote: fix broken sq_quote_buf() related comment
+ A no-op code-health maintenance.
-* jk/notes-dwim-doc (2015-09-22) 1 commit
- (merged to 'next' on 2015-10-07 at c4341d1)
- + notes: correct documentation of DWIMery for notes references
- (this branch is used by mh/notes-allow-reading-treeish.)
- The way how --ref/--notes to specify the notes tree reference are
- DWIMmed was not clearly documented.
+* dt/log-follow-config (2015-10-07) 1 commit
+ (merged to 'next' on 2015-10-09 at 64a30d2)
+ + log: Update log.follow doc and add to config.txt
+ Description of the "log.follow" configuration variable in "git log"
+ documentation is now also copied to "git config" documentation.
-* nd/ls-remote-does-not-have-u-option (2015-09-28) 1 commit
- (merged to 'next' on 2015-10-07 at 0790a76)
- + ls-remote.txt: delete unsupported option
+* es/worktree-add-cleanup (2015-10-07) 1 commit
+ (merged to 'next' on 2015-10-09 at 6ffd721)
+ + t2026: rename worktree prune test
-* pt/pull-builtin (2015-10-02) 1 commit
- (merged to 'next' on 2015-10-07 at 19af20e)
- + merge: grammofix in please-commit-before-merge message
+ A no-op code-health maintenance.
-* tk/typofix-connect-unknown-proto-error (2015-09-25) 1 commit
- (merged to 'next' on 2015-10-07 at cc3430e)
- + connect: fix typo in result string of prot_name()
+* gr/rebase-i-drop-warn (2015-10-05) 2 commits
+ (merged to 'next' on 2015-10-09 at 0626b96)
+ + rebase-i: loosen over-eager check_bad_cmd check
+ + rebase-i: explicitly accept tab as separator in commands
---------------------------------------------------
-[New Topics]
+ "git rebase -i" had a minor regression recently, which stopped
+ considering a line that begins with an indented '#' in its insn
+ sheet not a comment, which is now fixed.
-* jc/mailinfo (2015-10-08) 1 commit
- . mailinfo: ignore in-body header that we do not care about
- Some people write arbitrary garbage at the beginning of a piece of
- e-mail (or after -- >8 -- scissors -- >8 -- line) in the commit log
- message and expect them to be discarded, even though "From:" and
- "Subject:" are the only documented in-body headers that you are
- supposed to have there. Allow some garbage (specifically, what may
- look like RFC2822 headers like "MIME-Version: ...") to be there and
- ignore them.
+* jc/doc-gc-prune-now (2015-10-14) 1 commit
+ (merged to 'next' on 2015-10-15 at 5c07566)
+ + Documentation/gc: warn against --prune=<now>
- I have a feeling that that this is a step in a wrong direction.
- Excluded from 'pu' for now.
+ "git gc" is safe to run anytime only because it has the built-in
+ grace period to protect young objects. In order to run with no
+ grace period, the user must make sure that the repository is
+ quiescent.
+
+
+* jc/fsck-dropped-errors (2015-09-23) 1 commit
+ (merged to 'next' on 2015-10-09 at 887fcac)
+ + fsck: exit with non-zero when problems are found
+
+ There were some classes of errors that "git fsck" diagnosed to its
+ standard error that did not cause it to exit with non-zero status.
* jk/filter-branch-use-of-sed-on-incomplete-line (2015-10-12) 1 commit
- - filter-branch: remove multi-line headers in msg filter
+ (merged to 'next' on 2015-10-15 at 9e7c032)
+ + filter-branch: remove multi-line headers in msg filter
A recent "filter-branch --msg-filter" broke skipping of the commit
object header, which is fixed.
- Will merge to 'next'.
+
+* js/clone-dissociate (2015-10-07) 4 commits
+ (merged to 'next' on 2015-10-09 at ba30393)
+ + clone --dissociate: avoid locking pack files
+ + sha1_file.c: add a function to release all packs
+ + sha1_file: consolidate code to close a pack's file descriptor
+ + t5700: demonstrate a Windows file locking issue with `git clone --dissociate`
+
+ "git clone --dissociate" runs a big "git repack" process at the
+ end, and it helps to close file descriptors that are open on the
+ packs and their idx files before doing so on filesystems that
+ cannot remove a file that is still open.
+
+
+* js/gc-with-stale-symref (2015-10-08) 2 commits
+ (merged to 'next' on 2015-10-09 at 8b89576)
+ + pack-objects: do not get distracted by broken symrefs
+ + gc: demonstrate failure with stale remote HEAD
+
+ "git gc" used to barf when a symbolic ref has gone dangling
+ (e.g. the branch that used to be your upstream's default when you
+ cloned from it is now gone, and you did "fetch --prune").
+
+
+* js/icase-wt-detection (2015-09-28) 1 commit
+ (merged to 'next' on 2015-10-09 at 78ff500)
+ + setup: fix "inside work tree" detection on case-insensitive filesystems
+
+ On a case insensitive filesystems, setting GIT_WORK_TREE variable
+ using a random cases that does not agree with what the filesystem
+ thinks confused Git that it wasn't inside the working tree.
+
+
+* kn/for-each-branch (2015-09-25) 8 commits
+ (merged to 'next' on 2015-10-09 at 45723ce)
+ + branch: add '--points-at' option
+ + branch.c: use 'ref-filter' APIs
+ + branch.c: use 'ref-filter' data structures
+ + branch: drop non-commit error reporting
+ + branch: move 'current' check down to the presentation layer
+ + branch: roll show_detached HEAD into regular ref_list
+ + branch: bump get_head_description() to the top
+ + branch: refactor width computation
+ (this branch is used by kn/for-each-branch-remainder.)
+
+ Update "git branch" that list existing branches, using the
+ ref-filter API that is shared with "git tag" and "git
+ for-each-ref".
+
+
+* ls/p4-lfs (2015-10-03) 7 commits
+ (merged to 'next' on 2015-10-14 at 4b8c365)
+ + git-p4: add Git LFS backend for large file system
+ + git-p4: add support for large file systems
+ + git-p4: check free space during streaming
+ + git-p4: add file streaming progress in verbose mode
+ + git-p4: return an empty list if a list config has no values
+ + git-p4: add gitConfigInt reader
+ + git-p4: add optional type specifier to gitConfig reader
+
+ Teach "git p4" to send large blobs outside the repository by
+ talking to Git LFS.
+
+
+* ls/p4-translation-failure (2015-09-22) 2 commits
+ (merged to 'next' on 2015-10-09 at b462387)
+ + git-p4: handle "Translation of file content failed"
+ + git-p4: add test case for "Translation of file content failed" error
+
+ Work around "git p4" failing when the P4 depot records the contents
+ in UTF-16 without UTF-16 BOM.
+
+
+* mk/submodule-gitdir-path (2015-09-14) 2 commits
+ (merged to 'next' on 2015-10-09 at cf8768e)
+ + path: implement common_dir handling in git_pathdup_submodule()
+ + submodule refactor: use strbuf_git_path_submodule() in add_submodule_odb()
+
+ The submodule code has been taught to work better with separate
+ work trees created via "git worktree add".
+
+
+* mm/detach-at-HEAD-reflog (2015-10-02) 2 commits
+ (merged to 'next' on 2015-10-09 at 624bc87)
+ + status: don't say 'HEAD detached at HEAD'
+ + t3203: test 'detached at' after checkout --detach
+
+ After "git checkout --detach", "git status" reported a fairly
+ useless "HEAD detached at HEAD", instead of saying at which exact
+ commit.
+
+
+* nd/clone-linked-checkout (2015-09-28) 6 commits
+ (merged to 'next' on 2015-10-09 at a93973f)
+ + clone: better error when --reference is a linked checkout
+ + clone: allow --local from a linked checkout
+ + enter_repo: allow .git files in strict mode
+ + enter_repo: avoid duplicating logic, use is_git_directory() instead
+ + t0002: add test for enter_repo(), non-strict mode
+ + path.c: delete an extra space
+
+ It was not possible to use a repository-lookalike created by "git
+ worktree add" as a local source of "git clone".
+
+
+* nd/gc-auto-background-fix (2015-09-21) 1 commit
+ (merged to 'next' on 2015-10-09 at 1f0fc60)
+ + gc: save log from daemonized gc --auto and print it next time
+
+ When "git gc --auto" is backgrounded, its diagnosis message is
+ lost. Save it to a file in $GIT_DIR and show it next time the "gc
+ --auto" is run.
+
+
+* pt/am-builtin (2015-09-30) 1 commit
+ (merged to 'next' on 2015-10-09 at 396def8)
+ + am: configure gpg at startup
+
+ When "git am" was rewritten as a built-in, it stopped paying
+ attention to user.signingkey, which was fixed.
* rd/test-path-utils (2015-10-08) 1 commit
- - test-path-utils.c: remove incorrect assumption
+ (merged to 'next' on 2015-10-15 at 827a271)
+ + test-path-utils.c: remove incorrect assumption
The normalize_ceiling_entry() function does not muck with the end
of the path it accepts, and the real world callers do rely on that,
but a test insisted that the function drops a trailing slash.
- Will merge to 'next'.
+* sa/send-email-smtp-batch-data-limit (2015-09-30) 1 commit
+ (merged to 'next' on 2015-10-09 at c021fdf)
+ + git-send-email.perl: Fixed sending of many/huge changes/patches
-* jc/doc-gc-prune-now (2015-10-14) 1 commit
- - Documentation/gc: warn against --prune=<now>
+ When "git send-email" wanted to talk over Net::SMTP::SSL,
+ Net::Cmd::datasend() did not like to be fed too many bytes at the
+ same time and failed to send messages. Send the payload one line
+ at a time to work around the problem.
- "git gc" is safe to run anytime only because it has the built-in
- grace period to protect young objects. In order to run with no
- grace period, the user must make sure that the repository is
- quiescent.
- Will merge to 'next'.
+* sb/http-flaky-test-fix (2015-09-25) 1 commit
+ (merged to 'next' on 2015-10-09 at 9dc37f3)
+ + t5561: get rid of racy appending to logfile
+ A test script for the HTTP service had a timing dependent bug,
+ which was fixed.
-* jc/am-mailinfo-direct (2015-10-14) 1 commit
- - am: make direct call to mailinfo
- (this branch uses jc/mailinfo-lib.)
- "git am" used to spawn "git mailinfo" via run_command() API once
- per each patch, but learned to make a direct call to mailinfo()
- instead.
+* sb/perf-without-installed-git (2015-09-25) 1 commit
+ (merged to 'next' on 2015-10-09 at 7a1ed05)
+ + t/perf: make runner work even if Git is not installed
- Needs benchmark on platforms with slow run_command().
+ Performance-measurement tests did not work without an installed Git.
-* jc/mailinfo-lib (2015-10-14) 30 commits
- - mailinfo: remove calls to exit() and die() deep in the callchain
- - mailinfo: handle charset conversion errors in the caller
- - mailinfo: libify
- - mailinfo: move definition of MAX_HDR_PARSED to closer to its use
- - mailinfo: move cleanup_space() before its users
- - mailinfo: move check_header() after the helpers it uses
- - mailinfo: move read_one_header_line() closer to its callers
- - mailinfo: move content/content_top to struct mailinfo
- - mailinfo: keep the parsed log message in a strbuf
- - mailinfo: move [ps]_hdr_data to struct mailinfo
- - mailinfo: move cmitmsg and patchfile to struct mailinfo
- - mailinfo: handle_commit_msg() shouldn't be called after finding patchbreak
- - mailinfo: move charset to struct mailinfo
- - mailinfo: move transfer_encoding to struct mailinfo
- - mailinfo: move metainfo_charset to struct mailinfo
- - mailinfo: move use_scissors and use_inbody_headers to struct mailinfo
- - mailinfo: move add_message_id and message_id to struct mailinfo
- - mailinfo: move patch_lines to struct mailinfo
- - mailinfo: move filter/header stage to struct mailinfo
- - mailinfo: move global "FILE *fin, *fout" to struct mailinfo
- - mailinfo: move keep_subject & keep_non_patch_bracket to struct mailinfo
- - mailinfo: introduce "struct mailinfo" to hold globals
- - mailinfo: move global "line" into mailinfo() function
- - mailinfo: always pass "line" as an argument
- - mailinfo: get rid of function-local static states
- - mailinfo: move handle_boundary() lower
- - mailinfo: fold decode_header_bq() into decode_header()
- - mailinfo: explicitly close file handle to the patch output
- - mailinfo: fix for off-by-one error in boundary stack
- - mailinfo: remove a no-op call convert_to_utf8(it, "")
- (this branch is used by jc/am-mailinfo-direct.)
+* sb/submodule-config-parse (2015-10-12) 1 commit
+ (merged to 'next' on 2015-10-15 at 6fea79d)
+ + submodule-config: "goto" removal in parse_config()
- The implementation of "git mailinfo" was refactored so that a
- mailinfo() function can be directly called from inside a process.
+ Code simplification.
-* jc/am-3-fallback-regression-fix (2015-10-09) 1 commit
- - am -3: do not let failed merge from completing the error codepath
- (this branch is used by js/am-3-merge-recursive-direct.)
+* tk/doc-interpret-trailers-grammo (2015-10-07) 1 commit
+ (merged to 'next' on 2015-10-09 at 37888a2)
+ + Documentation/interpret-trailers: Grammar fix
- "git am -3" had a small regression where it is aborted in its error
- handling codepath when underlying merge-recursive failed in certain
- ways, as it assumed that the internal call to merge-recursive will
- never die, which is not the case (yet).
+--------------------------------------------------
+[New Topics]
+* dt/refs-backend-pre-vtable (2015-10-15) 27 commits
+ - introduce "extensions" form of core.repositoryformatversion
+ - refs: break out ref conflict checks
+ - refs: make files_log_ref_write functions public
+ - initdb: move safe_create_dir into common code
+ - refs.c: move should_autocreate_reflog to common code
+ - refs.c: move peel_object to the common code
+ - refs.c: move copy_msg to the common code
+ - refs.c: move refname_is_safe to the common code
+ - refs: move transaction functions into common code
+ - refs.c: move head_ref_namespaced to the common code
+ - refs.c: move ref iterators to the common code
+ - refs.c: move prettify_refname to the common code
+ - refs.c: move is_branch to the common code
+ - refs.c: move check_refname_format to the common code
+ - refs.c: move resolve_refdup to common
+ - refs.c: move read_ref, read_ref_full and ref_exists to the common code
+ - refs.c: move warn_if_dangling_symref* to the common code
+ - refs.c: move dwim and friend functions to the common refs code
+ - refs.c: move the hidden refs functions to the common code
+ - refs.c: move read_ref_at to the common refs file
+ - refs.c: move delete_pseudoref and delete_ref to the common code
+ - refs.c: move update_ref to refs.c
+ - refs.c: add a new refs.c file to hold all common refs code
+ - refs-be-files.c: rename refs to refs-be-files
+ - refs: make repack_without_refs and is_branch public
+ - refs.c: create a public version of verify_refname_available
+ - Merge branch 'jk/war-on-sprintf' into HEAD
+ (this branch uses jk/war-on-sprintf; is tangled with dt/refs-backend-lmdb.)
-* js/am-3-merge-recursive-direct (2015-10-12) 2 commits
- - am: make a direct call to merge_recursive
- - merge_recursive_options: introduce the "gently" flag
- (this branch uses jc/am-3-fallback-regression-fix.)
+ The early part of the pluggable ref backend series, which sifts the
+ ref API functions into two bins: the filesystem backend specific
+ ones and the generic API functions. The next step will start
+ introducing the framework to dispatch generic calls to specific
+ backend implementation(s) and then finally plug a new backend that
+ is different from the file backend.
- The merge_recursive_generic() function has been made a bit safer to
- call from inside a process. "git am -3" was taught to make a direct
- call to the function when falling back to three-way merge.
+ Expecting a reroll after an review of the remainder.
+ ($gmane/279897).
-* km/cache-entry-refcnt (2015-10-12) 1 commit
- - merge: fix cache_entry use-after-free
+* jc/usage-stdin (2015-10-16) 1 commit
+ - usage: do not insist that standard input must come from a file
- Sometimes we discarded a cache-entry that is still referenced from
- name-hash (used only to hold the pathname there), leading to use
- after free errors. Reference-count cache entries to work it
- around.
+ The synopsys text and the usage string of subcommands that read
+ list of things from the standard input are often shown as if they
+ only take input from a file on a filesystem, which was misleading.
+ Will merge to 'next'.
-* ls/p4-test-updates (2015-10-12) 2 commits
- - git-p4: skip t9819 test case on case insensitive file systems
- - git-p4: avoid "stat" command in t9815 git-p4-submit-fail
- A few test scripts around "git p4" have been improved for
- portability.
+* rt/placeholder-in-usage (2015-10-16) 1 commit
+ - am, credential-cache: add angle brackets to usage string
+
+ A couple of commands still showed "[options]" in their usage string
+ to note where options should come on their command line, but we
+ spell that "[<options>]" in most places these days.
Will merge to 'next'.
-* sb/submodule-config-parse (2015-10-12) 1 commit
- - submodule-config: "goto" removal in parse_config()
+* tk/stripspace (2015-10-16) 2 commits
+ - stripspace: use parse-options for command-line parsing
+ - strbuf: make stripspace() part of strbuf
+
+ The internal stripspace() function has been moved to where it
+ logically belongs to, i.e. strbuf API, and the command line parser
+ of "git stripspace" has been updated to use the parse_options API.
Will merge to 'next'.
-* tb/t0027-crlf (2015-10-12) 1 commit
- - t0027: improve test for not-normalized files
+* dk/p4-import-ctypes (2015-10-20) 1 commit
+ - git-p4: import the ctypes module
+
+ "git-p4" tried to use from ctypes module without first importing
+ it.
+
+ Will merge to 'next'.
+
+
+* dt/t7063-fix-flaky-test (2015-10-19) 1 commit
+ - t7063: fix flaky untracked-cache test
+
+ Will merge to 'next'.
- The test for various line-ending conversions has been enhanced.
+
+* es/worktree-add (2015-10-18) 1 commit
+ - worktree: usage: denote <branch> as optional with 'add'
+
+ Will merge to 'next'.
+
+
+* kn/for-each-tag (2015-10-18) 1 commit
+ - tag.c: use the correct algorithm for the '--contains' option
+
+ Recent update to "git tag --contains" caused a performance
+ regression.
Will merge to 'next'.
($gmane/277574)
-* mr/worktree-list (2015-10-08) 5 commits
- - worktree: add 'list' command
- - worktree: add details to the worktree struct
- - worktree: add a function to get worktree details
- - worktree: refactor find_linked_symref function
- - worktree: add top-level worktree.c
-
- Add the "list" subcommand to "git worktree".
-
-
* 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
--------------------------------------------------
[Cooking]
-* cc/quote-comments (2015-10-07) 2 commits
- (merged to 'next' on 2015-10-09 at fc8a359)
- + quote: move comment before sq_quote_buf()
- + quote: fix broken sq_quote_buf() related comment
-
- A no-op code-health maintenance.
-
- Will merge to 'master'.
-
-
-* dt/log-follow-config (2015-10-07) 1 commit
- (merged to 'next' on 2015-10-09 at 64a30d2)
- + log: Update log.follow doc and add to config.txt
-
- Description of the "log.follow" configuration variable in "git log"
- documentation is now also copied to "git config" documentation.
-
- Will merge to 'master'.
-
-
-* es/worktree-add-cleanup (2015-10-07) 1 commit
- (merged to 'next' on 2015-10-09 at 6ffd721)
- + t2026: rename worktree prune test
-
- A no-op code-health maintenance.
-
- Will merge to 'master'.
-
-
-* sg/pretty-more-date-mode-format (2015-10-07) 1 commit
- - pretty: add format specifiers for short and raw date formats
-
- Introduce "%as" and "%aR" placeholders for "log --format" to show
- the author date in the short and raw formats.
-
- I have a feeling that that this is a step in a wrong direction.
-
-
-* tk/doc-interpret-trailers-grammo (2015-10-07) 1 commit
- (merged to 'next' on 2015-10-09 at 37888a2)
- + Documentation/interpret-trailers: Grammar fix
-
- Will merge to 'master'.
-
-
-* dt/refs-backend-lmdb (2015-10-12) 45 commits
- - refs: tests for db backend
- - refs: add LMDB refs backend
- - introduce "extensions" form of core.repositoryformatversion
- - refs: add register_refs_backend
- - refs: allow ref backend to be set for clone
- - refs: always handle non-normal refs in files backend
- - refs: move duplicate check to common code
- - refs: break out a ref conflict check
- - refs: make files_log_ref_write functions public
- - refs: make lock generic
- - refs-be-files.c: add method to rename refs
- - refs.c: add method for initializing refs db
- - initdb: move safe_create_dir into common code
- - refs.c: add method for initial ref transaction commit
- - refs.c: add methods for reflog
- - refs.c: add ref backend init function
- - refs.c: move should_autocreate_reflog to common code
- - refs.c: move peel_object to the common code
- - refs.c: move copy_msg to the common code
- - refs.h: document make refname_is_safe and add it to header
- - refs.c: move refname_is_safe to the common code
- - refs-be-files.c: add do_for_each_per_worktree_ref
- - refs-be-files.c: add method for for_each_reftype_...
- - refs-be-files.c: add methods for the ref iterators
- - refs-be-files.c: add methods for misc ref operations
- - refs: add a backend method structure with transaction functions
- - refs: move transaction functions into common code
- - refs.c: move head_ref_namespaced to the common code
- - refs.c: move ref iterators to the common code
- - refs.c: move prettify_refname to the common code
- - refs.c: move is_branch to the common code
- - refs.c: move check_refname_format to the common code
- - refs.c: move resolve_refdup to common
- - refs.c: move read_ref, read_ref_full and ref_exists to the common code
- - refs.c: move warn_if_dangling_symref* to the common code
- - refs.c: move dwim and friend functions to the common refs code
- - refs.c: move the hidden refs functions to the common code
- - refs.c: move read_ref_at to the common refs file
- - refs.c: move delete_ref and delete_refs to the common code
- - refs.c: move update_ref to refs.c
- - refs.c: add a new refs.c file to hold all common refs code
- - refs-be-files.c: rename refs to refs-be-files
- - refs: make repack_without_refs and is_branch public
- - refs.c: create a public version of verify_refname_available
- - Merge branch 'jk/war-on-sprintf' into HEAD
- (this branch uses jk/war-on-sprintf.)
-
- Pluggable ref backend.
-
- Expecting a reroll (as two parts series).
-
-
-* gr/rebase-i-drop-warn (2015-10-05) 2 commits
- (merged to 'next' on 2015-10-09 at 0626b96)
- + rebase-i: loosen over-eager check_bad_cmd check
- + rebase-i: explicitly accept tab as separator in commands
-
- "git rebase -i" had a minor regression recently, which stopped
- considering a line that begins with an indented '#' in its insn
- sheet not a comment, which is now fixed.
-
- Will merge to 'master'.
-
-
-* kn/for-each-branch-remainder (2015-10-02) 9 commits
- - branch: implement '--format' option
- - branch: use ref-filter printing APIs
- - ref-filter: make %(upstream:track) prints "[gone]" for invalid upstreams
- - ref-filter: introduce format_ref_array_item()
- - ref-filter: adopt get_head_description() from branch.c
- - ref-filter: modify "%(objectname:short)" to take length
- - ref-filter: add support for %(path) atom
- - ref-filter: implement %(if:equals=<string>) and %(if:notequals=<string>)
- - ref-filter: implement %(if), %(then), and %(else) atoms
- (this branch uses kn/for-each-branch.)
-
- More unification among "branch -l", "tag -l" and "for-each-ref --format".
-
- Expecting a reroll.
- ($gmane/278926)
-
-
-* jk/war-on-sprintf (2015-10-05) 70 commits
- - name-rev: use strip_suffix to avoid magic numbers
- - use strbuf_complete to conditionally append slash
- - fsck: use for_each_loose_file_in_objdir
- - Makefile: drop D_INO_IN_DIRENT build knob
- - fsck: drop inode-sorting code
- - convert strncpy to memcpy
- - notes: document length of fanout path with a constant
- - color: add color_set helper for copying raw colors
- - prefer memcpy to strcpy
- - help: clean up kfmclient munging
- - receive-pack: simplify keep_arg computation
- - avoid sprintf and strcpy with flex arrays
- - use alloc_ref rather than hand-allocating "struct ref"
- - color: add overflow checks for parsing colors
- - drop strcpy in favor of raw sha1_to_hex
- - use sha1_to_hex_r() instead of strcpy
- - daemon: use cld->env_array when re-spawning
- - stat_tracking_info: convert to argv_array
- - http-push: use an argv_array for setup_revisions
- - fetch-pack: use argv_array for index-pack / unpack-objects
- - diagnose_invalid_index_path: use strbuf to avoid strcpy/strcat
- - write_loose_object: convert to strbuf
- - remove_leading_path: use a strbuf for internal storage
- - enter_repo: convert fixed-size buffers to strbufs
- - merge-recursive: convert malloc / strcpy to strbuf
- - transport: use strbufs for status table "quickref" strings
- - apply: convert root string to strbuf
- - init: use strbufs to store paths
- - probe_utf8_pathname_composition: use internal strbuf
- - precompose_utf8: drop unused variable
- - sha1_get_pack_name: use a strbuf
- - http-walker: store url in a strbuf
- - http-push: use strbuf instead of fwrite_buffer
- - remote-ext: simplify git pkt-line generation
- - upload-archive: convert sprintf to strbuf
- - resolve_ref: use strbufs for internal buffers
- - read_remotes_file: simplify string handling
- - read_branches_file: simplify string handling
- - mailmap: replace strcpy with xstrdup
- - help: drop prepend function in favor of xstrfmt
- - ref-filter: drop sprintf and strcpy calls
- - use strip_suffix and xstrfmt to replace suffix
- - fetch: replace static buffer with xstrfmt
- - config: use xstrfmt in normalize_value
- - replace trivial malloc + sprintf / strcpy calls with xstrfmt
- - receive-pack: convert strncpy to xsnprintf
- - http-push: replace strcat with xsnprintf
- - add_packed_git: convert strcpy into xsnprintf
- - entry.c: convert strcpy to xsnprintf
- - grep: use xsnprintf to format failure message
- - compat/hstrerror: convert sprintf to snprintf
- - stop_progress_msg: convert sprintf to xsnprintf
- - find_short_object_filename: convert sprintf to xsnprintf
- - use xsnprintf for generating git object headers
- - archive-tar: use xsnprintf for trivial formatting
- - convert trivial sprintf / strcpy calls to xsnprintf
- - compat/inet_ntop: fix off-by-one in inet_ntop4
- - test-dump-cache-tree: avoid overflow of cache-tree name
- - progress: store throughput display in a strbuf
- - trace: use strbuf for quote_crnl output
- - mailsplit: make PATH_MAX buffers dynamic
- - fsck: use strbuf to generate alternate directories
- - add reentrant variants of sha1_to_hex and find_unique_abbrev
- - strbuf: make strbuf_complete_line more generic
- - add git_path_buf helper function
- - add xsnprintf helper function
- - fsck: don't fsck alternates for connectivity-only check
- - archive-tar: fix minor indentation violation
- - mailsplit: fix FILE* leak in split_maildir
- - show-branch: avoid segfault with --reflog of unborn branch
- (this branch is used by dt/refs-backend-lmdb.)
-
- Many allocations that is manually counted (correctly) that are
- followed by strcpy/sprintf have been replaced with a less error
- prone constructs such as xstrfmt.
-
- Macintosh-specific breakage was noticed and corrected in this
- reroll.
-
- Will wait for a week or so before merging to 'next'.
-
-
-* rp/link-curl-before-ssl (2015-09-25) 3 commits
- - configure: make curl-config path configurable
- - configure.ac: detect ssl need with libcurl
- - Makefile: link libcurl before openssl and crypto
-
- Rerolls exist, but are still being discussed.
+* mr/worktree-list (2015-10-08) 5 commits
+ - worktree: add 'list' command
+ - worktree: add details to the worktree struct
+ - worktree: add a function to get worktree details
+ - worktree: refactor find_linked_symref function
+ - worktree: add top-level worktree.c
+ Add the "list" subcommand to "git worktree".
-* sb/http-flaky-test-fix (2015-09-25) 1 commit
- (merged to 'next' on 2015-10-09 at 9dc37f3)
- + t5561: get rid of racy appending to logfile
+ Will merge to 'next'.
- Will merge to 'master'.
+* jc/mailinfo (2015-10-20) 1 commit
+ - mailinfo: ignore in-body header that we do not care about
+ (this branch uses jc/am-mailinfo-direct and jc/mailinfo-lib.)
-* sb/perf-without-installed-git (2015-09-25) 1 commit
- (merged to 'next' on 2015-10-09 at 7a1ed05)
- + t/perf: make runner work even if Git is not installed
+ Some people write arbitrary garbage at the beginning of a piece of
+ e-mail (or after -- >8 -- scissors -- >8 -- line) in the commit log
+ message and expect them to be discarded, even though "From:" and
+ "Subject:" are the only documented in-body headers that you are
+ supposed to have there. Allow some garbage (specifically, what may
+ look like RFC2822 headers like "MIME-Version: ...") to be there and
+ ignore them.
- Performance-measurement tests did not work without an installed Git.
+ I have a feeling that that this is a step in a wrong direction.
+ Comments?
- Will merge to 'master'.
+* jc/am-mailinfo-direct (2015-10-20) 2 commits
+ - mailinfo: plug strbuf leak during continuation line handling
+ - am: make direct call to mailinfo
+ (this branch is used by jc/mailinfo; uses jc/mailinfo-lib.)
-* js/clone-dissociate (2015-10-07) 4 commits
- (merged to 'next' on 2015-10-09 at ba30393)
- + clone --dissociate: avoid locking pack files
- + sha1_file.c: add a function to release all packs
- + sha1_file: consolidate code to close a pack's file descriptor
- + t5700: demonstrate a Windows file locking issue with `git clone --dissociate`
+ "git am" used to spawn "git mailinfo" via run_command() API once
+ per each patch, but learned to make a direct call to mailinfo()
+ instead.
- "git clone --dissociate" runs a big "git repack" process at the
- end, and it helps to close file descriptors that are open on the
- packs and their idx files before doing so on filesystems that
- cannot remove a file that is still open.
+ Needs benchmark on platforms with slow run_command().
- Will merge to 'master'.
+* jc/mailinfo-lib (2015-10-19) 33 commits
+ - mailinfo: remove calls to exit() and die() deep in the callchain
+ - mailinfo: handle charset conversion errors in the caller
+ - mailinfo: libify
+ - mailinfo: move definition of MAX_HDR_PARSED closer to its use
+ - mailinfo: move cleanup_space() before its users
+ - mailinfo: move check_header() after the helpers it uses
+ - mailinfo: move read_one_header_line() closer to its callers
+ - mailinfo: keep the parsed log message in a strbuf
+ - mailinfo: handle_commit_msg() shouldn't be called after finding patchbreak
+ - mailinfo: move content/content_top to struct mailinfo
+ - mailinfo: move [ps]_hdr_data to struct mailinfo
+ - mailinfo: move cmitmsg and patchfile to struct mailinfo
+ - mailinfo: move charset to struct mailinfo
+ - mailinfo: move transfer_encoding to struct mailinfo
+ - mailinfo: move check for metainfo_charset to convert_to_utf8()
+ - mailinfo: move metainfo_charset to struct mailinfo
+ - mailinfo: move use_scissors and use_inbody_headers to struct mailinfo
+ - mailinfo: move add_message_id and message_id to struct mailinfo
+ - mailinfo: move patch_lines to struct mailinfo
+ - mailinfo: move filter/header stage to struct mailinfo
+ - mailinfo: move global "FILE *fin, *fout" to struct mailinfo
+ - mailinfo: move keep_subject & keep_non_patch_bracket to struct mailinfo
+ - mailinfo: introduce "struct mailinfo" to hold globals
+ - mailinfo: move global "line" into mailinfo() function
+ - mailinfo: do not let find_boundary() touch global "line" directly
+ - mailinfo: do not let handle_boundary() touch global "line" directly
+ - mailinfo: do not let handle_body() touch global "line" directly
+ - mailinfo: get rid of function-local static states
+ - mailinfo: move handle_boundary() lower
+ - mailinfo: explicitly close file handle to the patch output
+ - mailinfo: fix an off-by-one error in the boundary stack
+ - mailinfo: fold decode_header_bq() into decode_header()
+ - mailinfo: remove a no-op call convert_to_utf8(it, "")
+ (this branch is used by jc/am-mailinfo-direct and jc/mailinfo.)
-* js/gc-with-stale-symref (2015-10-08) 2 commits
- (merged to 'next' on 2015-10-09 at 8b89576)
- + pack-objects: do not get distracted by broken symrefs
- + gc: demonstrate failure with stale remote HEAD
+ The implementation of "git mailinfo" was refactored so that a
+ mailinfo() function can be directly called from inside a process.
- "git gc" used to barf when a symbolic ref has gone dangling
- (e.g. the branch that used to be your upstream's default when you
- cloned from it is now gone, and you did "fetch --prune").
- Will merge to 'master'.
+* jc/am-3-fallback-regression-fix (2015-10-09) 1 commit
+ (merged to 'next' on 2015-10-15 at 7dde994)
+ + am -3: do not let failed merge from completing the error codepath
+ (this branch is used by js/am-3-merge-recursive-direct.)
+ "git am -3" had a small regression where it is aborted in its error
+ handling codepath when underlying merge-recursive failed in certain
+ ways, as it assumed that the internal call to merge-recursive will
+ never die, which is not the case (yet).
-* js/icase-wt-detection (2015-09-28) 1 commit
- (merged to 'next' on 2015-10-09 at 78ff500)
- + setup: fix "inside work tree" detection on case-insensitive filesystems
- Will merge to 'master'.
+* js/am-3-merge-recursive-direct (2015-10-12) 2 commits
+ - am: make a direct call to merge_recursive
+ - merge_recursive_options: introduce the "gently" flag
+ (this branch uses jc/am-3-fallback-regression-fix.)
+ The merge_recursive_generic() function has been made a bit safer to
+ call from inside a process. "git am -3" was taught to make a direct
+ call to the function when falling back to three-way merge.
-* mm/detach-at-HEAD-reflog (2015-10-02) 2 commits
- (merged to 'next' on 2015-10-09 at 624bc87)
- + status: don't say 'HEAD detached at HEAD'
- + t3203: test 'detached at' after checkout --detach
- After "git checkout --detach", "git status" reported a fairly
- useless "HEAD detached at HEAD", instead of saying at which exact
- commit.
+* km/cache-entry-refcnt (2015-10-14) 1 commit
+ - merge: fix cache_entry use-after-free
- Will merge to 'master'.
+ Sometimes we discarded a cache-entry that is still referenced from
+ name-hash (used only to hold the pathname there), leading to use
+ after free errors. Reference-count cache entries to work it
+ around.
-* pt/am-builtin (2015-09-30) 1 commit
- (merged to 'next' on 2015-10-09 at 396def8)
- + am: configure gpg at startup
+* ls/p4-test-updates (2015-10-12) 2 commits
+ (merged to 'next' on 2015-10-15 at 3c94932)
+ + git-p4: skip t9819 test case on case insensitive file systems
+ + git-p4: avoid "stat" command in t9815 git-p4-submit-fail
- When "git am" was rewritten as a built-in, it stopped paying
- attention to user.signingkey.
+ A few test scripts around "git p4" have been improved for
+ portability.
Will merge to 'master'.
-* sa/send-email-smtp-batch-data-limit (2015-09-30) 1 commit
- (merged to 'next' on 2015-10-09 at c021fdf)
- + git-send-email.perl: Fixed sending of many/huge changes/patches
+* tb/t0027-crlf (2015-10-12) 1 commit
+ (merged to 'next' on 2015-10-15 at 7ab4f31)
+ + t0027: improve test for not-normalized files
- When "git send-email" wanted to talk over Net::SMTP::SSL,
- Net::Cmd::datasend() did not like to be fed too many bytes at the
- same time and failed to send messages. Send the payload one line
- at a time to work around the problem.
+ The test for various line-ending conversions has been enhanced.
Will merge to 'master'.
-* ls/p4-translation-failure (2015-09-22) 2 commits
- (merged to 'next' on 2015-10-09 at b462387)
- + git-p4: handle "Translation of file content failed"
- + git-p4: add test case for "Translation of file content failed" error
+* sg/pretty-more-date-mode-format (2015-10-07) 1 commit
+ - pretty: add format specifiers for short and raw date formats
- Work around "git p4" failing when the P4 depot records the contents
- in UTF-16 without UTF-16 BOM.
+ Introduce "%as" and "%aR" placeholders for "log --format" to show
+ the author date in the short and raw formats.
- Will merge to 'master'.
+ I have a feeling that that this is a step in a wrong direction.
+ Comments?
-* kn/for-each-branch (2015-09-25) 8 commits
- (merged to 'next' on 2015-10-09 at 45723ce)
- + branch: add '--points-at' option
- + branch.c: use 'ref-filter' APIs
- + branch.c: use 'ref-filter' data structures
- + branch: drop non-commit error reporting
- + branch: move 'current' check down to the presentation layer
- + branch: roll show_detached HEAD into regular ref_list
- + branch: bump get_head_description() to the top
- + branch: refactor width computation
- (this branch is used by kn/for-each-branch-remainder.)
+* kn/for-each-branch-remainder (2015-10-02) 9 commits
+ - branch: implement '--format' option
+ - branch: use ref-filter printing APIs
+ - ref-filter: make %(upstream:track) prints "[gone]" for invalid upstreams
+ - ref-filter: introduce format_ref_array_item()
+ - ref-filter: adopt get_head_description() from branch.c
+ - ref-filter: modify "%(objectname:short)" to take length
+ - ref-filter: add support for %(path) atom
+ - ref-filter: implement %(if:equals=<string>) and %(if:notequals=<string>)
+ - ref-filter: implement %(if), %(then), and %(else) atoms
- Update "git branch" that list existing branches, using the
- ref-filter API that is shared with "git tag" and "git
- for-each-ref".
+ More unification among "branch -l", "tag -l" and "for-each-ref --format".
- Will merge to 'master'.
+ Expecting a reroll.
+ ($gmane/278926)
-* jc/fsck-dropped-errors (2015-09-23) 1 commit
- (merged to 'next' on 2015-10-09 at 887fcac)
- + fsck: exit with non-zero when problems are found
+* jk/war-on-sprintf (2015-10-05) 70 commits
+ (merged to 'next' on 2015-10-15 at 27a1ae5)
+ + name-rev: use strip_suffix to avoid magic numbers
+ + use strbuf_complete to conditionally append slash
+ + fsck: use for_each_loose_file_in_objdir
+ + Makefile: drop D_INO_IN_DIRENT build knob
+ + fsck: drop inode-sorting code
+ + convert strncpy to memcpy
+ + notes: document length of fanout path with a constant
+ + color: add color_set helper for copying raw colors
+ + prefer memcpy to strcpy
+ + help: clean up kfmclient munging
+ + receive-pack: simplify keep_arg computation
+ + avoid sprintf and strcpy with flex arrays
+ + use alloc_ref rather than hand-allocating "struct ref"
+ + color: add overflow checks for parsing colors
+ + drop strcpy in favor of raw sha1_to_hex
+ + use sha1_to_hex_r() instead of strcpy
+ + daemon: use cld->env_array when re-spawning
+ + stat_tracking_info: convert to argv_array
+ + http-push: use an argv_array for setup_revisions
+ + fetch-pack: use argv_array for index-pack / unpack-objects
+ + diagnose_invalid_index_path: use strbuf to avoid strcpy/strcat
+ + write_loose_object: convert to strbuf
+ + remove_leading_path: use a strbuf for internal storage
+ + enter_repo: convert fixed-size buffers to strbufs
+ + merge-recursive: convert malloc / strcpy to strbuf
+ + transport: use strbufs for status table "quickref" strings
+ + apply: convert root string to strbuf
+ + init: use strbufs to store paths
+ + probe_utf8_pathname_composition: use internal strbuf
+ + precompose_utf8: drop unused variable
+ + sha1_get_pack_name: use a strbuf
+ + http-walker: store url in a strbuf
+ + http-push: use strbuf instead of fwrite_buffer
+ + remote-ext: simplify git pkt-line generation
+ + upload-archive: convert sprintf to strbuf
+ + resolve_ref: use strbufs for internal buffers
+ + read_remotes_file: simplify string handling
+ + read_branches_file: simplify string handling
+ + mailmap: replace strcpy with xstrdup
+ + help: drop prepend function in favor of xstrfmt
+ + ref-filter: drop sprintf and strcpy calls
+ + use strip_suffix and xstrfmt to replace suffix
+ + fetch: replace static buffer with xstrfmt
+ + config: use xstrfmt in normalize_value
+ + replace trivial malloc + sprintf / strcpy calls with xstrfmt
+ + receive-pack: convert strncpy to xsnprintf
+ + http-push: replace strcat with xsnprintf
+ + add_packed_git: convert strcpy into xsnprintf
+ + entry.c: convert strcpy to xsnprintf
+ + grep: use xsnprintf to format failure message
+ + compat/hstrerror: convert sprintf to snprintf
+ + stop_progress_msg: convert sprintf to xsnprintf
+ + find_short_object_filename: convert sprintf to xsnprintf
+ + use xsnprintf for generating git object headers
+ + archive-tar: use xsnprintf for trivial formatting
+ + convert trivial sprintf / strcpy calls to xsnprintf
+ + compat/inet_ntop: fix off-by-one in inet_ntop4
+ + test-dump-cache-tree: avoid overflow of cache-tree name
+ + progress: store throughput display in a strbuf
+ + trace: use strbuf for quote_crnl output
+ + mailsplit: make PATH_MAX buffers dynamic
+ + fsck: use strbuf to generate alternate directories
+ + add reentrant variants of sha1_to_hex and find_unique_abbrev
+ + strbuf: make strbuf_complete_line more generic
+ + add git_path_buf helper function
+ + add xsnprintf helper function
+ + fsck: don't fsck alternates for connectivity-only check
+ + archive-tar: fix minor indentation violation
+ + mailsplit: fix FILE* leak in split_maildir
+ + show-branch: avoid segfault with --reflog of unborn branch
+ (this branch is used by dt/refs-backend-lmdb and dt/refs-backend-pre-vtable.)
- There were some classes of errors that "git fsck" diagnosed to its
- standard error that did not cause it to exit with non-zero status.
+ Many allocations that is manually counted (correctly) that are
+ followed by strcpy/sprintf have been replaced with a less error
+ prone constructs such as xstrfmt.
- Will merge to 'master'.
+ Macintosh-specific breakage was noticed and corrected in this
+ reroll.
+ Will merge to 'master'.
-* nd/gc-auto-background-fix (2015-09-21) 1 commit
- (merged to 'next' on 2015-10-09 at 1f0fc60)
- + gc: save log from daemonized gc --auto and print it next time
- When "git gc --auto" is backgrounded, its diagnosis message is
- lost. Save it to a file in $GIT_DIR and show it next time the "gc
- --auto" is run.
+* rp/link-curl-before-ssl (2015-09-25) 3 commits
+ - configure: make curl-config path configurable
+ - configure.ac: detect ssl need with libcurl
+ - Makefile: link libcurl before openssl and crypto
- Will merge to 'master'.
+ Waiting for the (hopefully) final submission.
* jk/graph-format-padding (2015-09-14) 1 commit
($gmane/278326)
-* sb/submodule-parallel-fetch (2015-10-12) 8 commits
- - submodules: allow parallel fetching, add tests and documentation
- - fetch_populated_submodules: use new parallel job processing
- - run-command: add an asynchronous parallel child processor
- - sigchain: add command to pop all common signals
- - strbuf: add strbuf_read_once to read without blocking
- - xread_nonblock: add functionality to read from fds without blocking
- - xread: poll on non blocking fds
- - submodule.c: write "Fetching submodule <foo>" to stderr
+* sb/submodule-parallel-fetch (2015-10-20) 14 commits
+ - run-command: fix missing output from late callbacks
+ - test-run-command: increase test coverage
+ - test-run-command: test for gracefully aborting
+ - run-command: initialize the shutdown flag
+ - run-command: call get_next_task with a clean child process.
+ - run-command: fix early shutdown
+ (merged to 'next' on 2015-10-15 at df63590)
+ + submodules: allow parallel fetching, add tests and documentation
+ + fetch_populated_submodules: use new parallel job processing
+ + run-command: add an asynchronous parallel child processor
+ + sigchain: add command to pop all common signals
+ + strbuf: add strbuf_read_once to read without blocking
+ + xread_nonblock: add functionality to read from fds without blocking
+ + xread: poll on non blocking fds
+ + submodule.c: write "Fetching submodule <foo>" to stderr
Add a framework to spawn a group of processes in parallel, and use
it to run "git fetch --recurse-submodules" in parallel.
- Will merge to 'next'.
-
-
-* mk/submodule-gitdir-path (2015-09-14) 2 commits
- (merged to 'next' on 2015-10-09 at cf8768e)
- + path: implement common_dir handling in git_pathdup_submodule()
- + submodule refactor: use strbuf_git_path_submodule() in add_submodule_odb()
-
- The submodule code has been taught to work better with separate
- work trees created via "git worktree add".
-
- Will merge to 'master'.
-
-
-* ls/p4-lfs (2015-10-03) 7 commits
- (merged to 'next' on 2015-10-14 at 4b8c365)
- + git-p4: add Git LFS backend for large file system
- + git-p4: add support for large file systems
- + git-p4: check free space during streaming
- + git-p4: add file streaming progress in verbose mode
- + git-p4: return an empty list if a list config has no values
- + git-p4: add gitConfigInt reader
- + git-p4: add optional type specifier to gitConfig reader
-
- Teach "git p4" to send large blobs outside the repository by
- talking to Git LFS.
-
- Will merge to 'master'.
-
-
-* nd/clone-linked-checkout (2015-09-28) 6 commits
- (merged to 'next' on 2015-10-09 at a93973f)
- + clone: better error when --reference is a linked checkout
- + clone: allow --local from a linked checkout
- + enter_repo: allow .git files in strict mode
- + enter_repo: avoid duplicating logic, use is_git_directory() instead
- + t0002: add test for enter_repo(), non-strict mode
- + path.c: delete an extra space
-
- It was not possible to use a repository-lookalike created by "git
- worktree add" as a local source of "git clone".
-
- Will merge to 'master'.
+ Will cook in 'next'.
* ad/cygwin-wants-rename (2015-08-07) 1 commit
--------------------------------------------------
[Discarded]
-* sb/remove-get-pathspec (2015-08-03) 1 commit
- . builtin/mv: remove get_pathspec()
-
- ($gmane/276104)
-
-
-* 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.
-
- ($gmane/265534).
-
-
-* 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.
-
- ($gmane/268058).
-
-
-* 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).
-
-
-* bw/portability-solaris (2015-07-20) 3 commits
- . tests: fix sed usage in tests to work around broken xpg4/sed on Solaris
- . tests: fix sed usage in tests to work around broken xpg4/sed on Solaris
- . tests: modify tr expressions so that xpg4/tr handles it on Solaris
-
- ($gmane/274296)
-
-
-* jc/clone-bundle (2015-04-30) 1 commit
- . repack: optionally create a clone.bundle
-
- Still an early WIP.
-
-
-* mg/index-read-error-messages (2015-06-01) 2 commits
- . messages: uniform error messages for index write
- . show-index: uniform error messages for index read
-
- The tip was RFC.
- Waiting for a reroll.
-
-
-* mk/utf8-no-iconv-warn (2015-06-08) 1 commit
- . utf8.c: print warning about disabled iconv
-
- Warn when a reencoding is requested in a build without iconv
- support, as the end user is likely to get an unexpected result. I
- think the same level of safety should be added to a build with
- iconv support when the specified encoding is not available, but the
- patch does not go there.
-
- ($gmane/277424).
-
-
-* pw/remote-set-url-fetch (2014-11-26) 1 commit
- . remote: add --fetch and --both options to set-url
-
- Ejected.
-
-
-* 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).
-
-
-* 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.
-
-
-* 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
+* dt/refs-backend-lmdb (2015-10-12) 45 commits
+ . refs: tests for db backend
+ . refs: add LMDB refs backend
+ . introduce "extensions" form of core.repositoryformatversion
+ . refs: add register_refs_backend
+ . refs: allow ref backend to be set for clone
+ . refs: always handle non-normal refs in files backend
+ . refs: move duplicate check to common code
+ . refs: break out a ref conflict check
+ . refs: make files_log_ref_write functions public
+ . refs: make lock generic
+ . refs-be-files.c: add method to rename refs
+ . refs.c: add method for initializing refs db
+ . initdb: move safe_create_dir into common code
+ . refs.c: add method for initial ref transaction commit
+ . refs.c: add methods for reflog
+ . refs.c: add ref backend init function
+ . refs.c: move should_autocreate_reflog to common code
+ . refs.c: move peel_object to the common code
+ . refs.c: move copy_msg to the common code
+ . refs.h: document make refname_is_safe and add it to header
+ . refs.c: move refname_is_safe to the common code
+ . refs-be-files.c: add do_for_each_per_worktree_ref
+ . refs-be-files.c: add method for for_each_reftype_...
+ . refs-be-files.c: add methods for the ref iterators
+ . refs-be-files.c: add methods for misc ref operations
+ . refs: add a backend method structure with transaction functions
+ . refs: move transaction functions into common code
+ . refs.c: move head_ref_namespaced to the common code
+ . refs.c: move ref iterators to the common code
+ . refs.c: move prettify_refname to the common code
+ . refs.c: move is_branch to the common code
+ . refs.c: move check_refname_format to the common code
+ . refs.c: move resolve_refdup to common
+ . refs.c: move read_ref, read_ref_full and ref_exists to the common code
+ . refs.c: move warn_if_dangling_symref* to the common code
+ . refs.c: move dwim and friend functions to the common refs code
+ . refs.c: move the hidden refs functions to the common code
+ . refs.c: move read_ref_at to the common refs file
+ . refs.c: move delete_ref and delete_refs to the common code
+ . refs.c: move update_ref to refs.c
+ . refs.c: add a new refs.c file to hold all common refs code
+ . refs-be-files.c: rename refs to refs-be-files
+ . refs: make repack_without_refs and is_branch public
+ . refs.c: create a public version of verify_refname_available
+ - Merge branch 'jk/war-on-sprintf' into HEAD
+ (this branch uses jk/war-on-sprintf; is tangled with dt/refs-backend-pre-vtable.)
- Waiting for the final step to lift the hard-limit.
+ Being rerolled separately.