What's cooking (2014/09 #03)

This commit is contained in:
Junio C Hamano
2014-09-11 15:51:46 -07:00
parent 0e288a6e6f
commit 2761533a9b

View File

@@ -1,19 +1,19 @@
To: git@vger.kernel.org
Bcc: lwn@lwn.net
Subject: What's cooking in git.git (Sep 2014, #02; Tue, 9)
X-master-at: 0c72b98f31bf6eabd75be565a08ffcf0d8e74b1f
X-next-at: 90a3d47e489b9d2109b72bab5f08275f9af8a3ad
Subject: What's cooking in git.git (Sep 2014, #03; Thu, 11)
X-master-at: ce1d3a93a6405b8a0313491df3099919ed3d150f
X-next-at: 9363127135f6ed0af0d141c3fc3ac63acc2d9010
What's cooking in git.git (Sep 2014, #02; Tue, 9)
What's cooking in git.git (Sep 2014, #03; Thu, 11)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
'-' are only in 'pu' (proposed updates) while commits prefixed with
'+' are in 'next'.
The second batch of topics have graduated to 'master'. There are
too many topics waiting to be in 'next' but without comments and
reviews on the list, which is somewhat disturbing.
The third batch of topics have graduated to 'master'. There are too
many topics waiting to be in 'next' but without comments and reviews
on the list, which is somewhat disturbing.
You can find the changes described here in the integration branches
of the repositories listed at
@@ -23,223 +23,350 @@ of the repositories listed at
--------------------------------------------------
[Graduated to "master"]
* bc/imap-send-doc (2014-08-05) 1 commit
(merged to 'next' on 2014-08-29 at 2ea514b)
+ imap-send doc: omit confusing "to use imap-send" modifier
* br/http-init-fix (2014-08-21) 2 commits
(merged to 'next' on 2014-09-03 at 6d42f5e)
+ http: style fixes for curl_multi_init error check
+ http.c: die if curl_*_init fails
Code clean-up.
* jc/apply-ws-prefix (2014-08-07) 3 commits
(merged to 'next' on 2014-08-29 at 67967d3)
+ apply: omit ws check for excluded paths
+ apply: hoist use_patch() helper for path exclusion up
+ apply: use the right attribute for paths in non-Git patches
* br/imap-send-simplify-tunnel-child-process (2014-09-02) 3 commits
(merged to 'next' on 2014-09-04 at a182987)
+ imap-send: simplify v_issue_imap_cmd() and get_cmd_result() using starts_with()
+ imap-send.c: imap_folder -> imap_server_conf.folder
+ git-imap-send: simplify tunnel construction
Applying a patch not generated by Git in a subdirectory used to
check the whitespace breakage using the attributes for incorrect
paths. Also whitespace checks were performed even for paths
excluded via "git apply --exclude=<path>" mechanism.
Code clean-up.
* jc/config-mak-document-darwin-vs-macosx (2014-08-15) 1 commit
(merged to 'next' on 2014-08-29 at 55e28af)
+ config.mak.uname: add hint on uname_R for MacOS X
(this branch uses km/no-apple-common-crypto-on-darwin-8-and-below.)
* dt/cache-tree-repair (2014-09-03) 5 commits
(merged to 'next' on 2014-09-03 at 1c8ff65)
+ cache-tree: do not try to use an invalidated subtree info to build a tree
(merged to 'next' on 2014-08-26 at 6faccdb)
+ cache-tree: Write updated cache-tree after commit
+ cache-tree: subdirectory tests
+ test-dump-cache-tree: invalid trees are not errors
+ cache-tree: create/update cache-tree on checkout
Add a few more places in "commit" and "checkout" that make sure
that the cache-tree is fully populated in the index.
* jc/not-mingw-cygwin (2014-07-21) 2 commits
(merged to 'next' on 2014-08-29 at 0d00bb7)
+ test prerequisites: enumerate with commas
+ test prerequisites: eradicate NOT_FOO
* et/spell-poll-infinite-with-minus-one-only (2014-08-22) 1 commit
(merged to 'next' on 2014-09-03 at 5be5957)
+ upload-pack: keep poll(2)'s timeout to -1
We have been using NOT_{MINGW,CYGWIN} test prerequisites long
before Peff invented support for negated prerequisites e.g. !MINGW
and we still add more uses of the former. Convert them to the
latter to avoid confusion.
We used to pass -1000 to poll(2), expecting it to also mean "no
timeout", which should be spelled as -1.
* jk/command-line-config-empty-string (2014-08-05) 1 commit
(merged to 'next' on 2014-08-29 at 74f04af)
+ config: teach "git -c" to recognize an empty string
"git -c section.var command" and "git -c section.var= command"
should pass the configuration differently (the former should be
a boolean true, the latter should be an empty string).
* jk/contrib-subtree-make-all (2014-08-18) 1 commit
(merged to 'next' on 2014-09-03 at 919d889)
+ subtree: make "all" default target of Makefile
* jk/prompt-stash-could-be-packed (2014-08-25) 1 commit
(merged to 'next' on 2014-08-29 at 526e3bd)
+ git-prompt: do not look for refs/stash in $GIT_DIR
* jk/fast-import-fixes (2014-08-25) 2 commits
(merged to 'next' on 2014-09-04 at 74838e5)
+ fast-import: fix buffer overflow in dump_tags
+ fast-import: clean up pack_data pointer in end_packfile
The prompt script checked $GIT_DIR/ref/stash file to see if there
is a stash, which was a no-no.
With sufficiently long refnames, fast-import could have overflown
an on-stack buffer.
* jk/stash-list-p (2014-08-07) 1 commit
(merged to 'next' on 2014-08-29 at db94527)
+ stash: default listing to working-tree diff
* jk/make-simplify-dependencies (2014-08-26) 3 commits
(merged to 'next' on 2014-09-03 at 820a600)
+ Makefile: drop CHECK_HEADER_DEPENDENCIES code
+ Makefile: use `find` to determine static header dependencies
+ i18n: treat "make pot" as an explicitly-invoked target
Teach "git stash list -p" to show the difference between the base
commit version and the working tree version, which is in line with
what "git show" gives.
Admit that keeping LIB_H up-to-date, only for those that do not use
the automatically generated dependencies, is a losing battle, and
make it conservative by making everything depend on anything.
* km/no-apple-common-crypto-on-darwin-8-and-below (2014-08-15) 1 commit
(merged to 'next' on 2014-08-29 at 8abb416)
+ config.mak.uname: set NO_APPLE_COMMON_CRYPTO on older systems
(this branch is used by jc/config-mak-document-darwin-vs-macosx.)
* jk/name-decoration-alloc (2014-08-27) 3 commits
(merged to 'next' on 2014-09-04 at 05f0d29)
+ log-tree: use FLEX_ARRAY in name_decoration
+ log-tree: make name_decoration hash static
+ log-tree: make add_name_decoration a public function
Build automation for older versions of MacOS X.
The API to allocate the structure to keep track of commit
decoration was cumbersome to use, inviting lazy code to
overallocate memory.
* la/init-doc (2014-08-08) 7 commits
(merged to 'next' on 2014-08-29 at 2cf846b)
+ Documentation: git-init: flesh out example
+ Documentation: git-init: template directory: reword and cross-reference
+ Documentation: git-init: reword parenthetical statements
+ Documentation: git-init: --separate-git-dir: clarify
+ Documentation: git-init: template directory: reword
+ Documentation: git-init: list items facelift
+ Documentation: git-init: typographical fixes
* jk/prune-top-level-refs-after-packing (2014-08-25) 1 commit
(merged to 'next' on 2014-09-04 at bfe3873)
+ pack-refs: prune top-level refs like "refs/foo"
After "pack-refs --prune" packed refs at the top-level, it failed
to prune them.
* lf/bundle-exclusion (2014-08-07) 1 commit
(merged to 'next' on 2014-08-29 at d84b102)
+ bundle: fix exclusion of annotated tags
* jn/unpack-trees-checkout-m-carry-deletion (2014-08-25) 3 commits
(merged to 'next' on 2014-09-04 at e15803a)
+ checkout -m: attempt merge when deletion of path was staged
+ unpack-trees: use 'cuddled' style for if-else cascade
+ unpack-trees: simplify 'all other failures' case
"git bundle create" with date-range specification were meant to
exclude tags outside the range, but it didn't.
"git checkout -m" did not switch to another branch while carrying
the local changes forward when a path was deleted from the index.
* mm/log-branch-desc-plug-leak (2014-08-07) 1 commit
(merged to 'next' on 2014-08-29 at 3580add)
+ builtin/log.c: fix minor memory leak
* mm/discourage-commit-a-to-finish-conflict-resolution (2014-08-28) 1 commit
(merged to 'next' on 2014-09-03 at e3f872f)
+ merge, pull: stop advising 'commit -a' in case of conflict
* nd/strbuf-utf8-replace (2014-08-11) 1 commit
(merged to 'next' on 2014-08-29 at 5d1ddf4)
+ utf8.c: fix strbuf_utf8_replace() consuming data beyond input string
* nd/fetch-pass-quiet-to-gc-child-process (2014-08-18) 2 commits
(merged to 'next' on 2014-09-04 at 028cd42)
+ fetch: silence git-gc if --quiet is given
+ fetch: convert argv_gc_auto to struct argv_array
Progress output from "git gc --auto" was visible in "git fetch -q".
* rs/clean-menu-item-defn (2014-08-18) 1 commit
(merged to 'next' on 2014-08-29 at 88c1a9d)
+ clean: use f(void) instead of f() to declare a pointer to a function without arguments
* nd/large-blobs (2014-08-18) 5 commits
(merged to 'next' on 2014-09-04 at 16d7c62)
+ diff: shortcut for diff'ing two binary SHA-1 objects
+ diff --stat: mark any file larger than core.bigfilethreshold binary
+ diff.c: allow to pass more flags to diff_populate_filespec
+ sha1_file.c: do not die failing to malloc in unpack_compressed_entry
+ wrapper.c: introduce gentle xmallocz that does not die()
Teach a few codepaths to punt (instead of dying) when large blobs
that would not fit in core are involved in the operation.
* rs/inline-compat-path-macros (2014-08-18) 1 commit
(merged to 'next' on 2014-08-29 at 5705ad5)
+ turn path macros into inline function
* nd/mv-code-cleaning (2014-09-03) 8 commits
(merged to 'next' on 2014-09-03 at 4315447)
+ mv: no SP between function name and the first opening parenthese
+ mv: combine two if(s)
+ mv: unindent one level for directory move code
+ mv: move index search code out
+ mv: remove an "if" that's always true
+ mv: split submodule move preparation code out
+ mv: flatten error handling code block
+ mv: mark strings for translations
Code clean-up.
* rs/refresh-beyond-symlink (2014-08-10) 1 commit
(merged to 'next' on 2014-08-29 at 90a4a8b)
+ read-cache: check for leading symlinks when refreshing index
* rs/child-process-init (2014-08-20) 4 commits
(merged to 'next' on 2014-09-03 at c17c06c)
+ run-command: inline prepare_run_command_v_opt()
+ run-command: call run_command_v_opt_cd_env() instead of duplicating it
+ run-command: introduce child_process_init()
+ run-command: introduce CHILD_PROCESS_INIT
"git add x" where x that used to be a directory has become a
symbolic link to a directory misbehaved.
Code clean-up.
* sb/blame-msg-i18n (2014-08-12) 1 commit
(merged to 'next' on 2014-08-29 at 5b33466)
+ builtin/blame.c: add translation to warning about failed revision walk
* rs/list-optim (2014-08-25) 2 commits
(merged to 'next' on 2014-09-04 at eecaf99)
+ walker: avoid quadratic list insertion in mark_complete
+ sha1_name: avoid quadratic list insertion in handle_one_ref
Fix a couple of "accumulate into a sorted list" to "accumulate and
then sort the list".
* sb/mailsplit-dead-code-removal (2014-08-13) 1 commit
(merged to 'next' on 2014-08-29 at 4f9ca4f)
+ mailsplit.c: remove dead code
* rs/ref-transaction-1 (2014-09-03) 22 commits
(merged to 'next' on 2014-09-03 at 68e20b8)
+ update-ref --stdin: pass transaction around explicitly
+ update-ref --stdin: narrow scope of err strbuf
+ refs.c: make delete_ref use a transaction
+ refs.c: make prune_ref use a transaction to delete the ref
+ refs.c: remove lock_ref_sha1
+ refs.c: remove the update_ref_write function
+ refs.c: remove the update_ref_lock function
+ refs.c: make lock_ref_sha1 static
+ walker.c: use ref transaction for ref updates
+ fast-import.c: use a ref transaction when dumping tags
+ receive-pack.c: use a reference transaction for updating the refs
+ refs.c: change update_ref to use a transaction
+ branch.c: use ref transaction for all ref updates
+ fast-import.c: change update_branch to use ref transactions
+ sequencer.c: use ref transactions for all ref updates
+ commit.c: use ref transactions for updates
+ replace.c: use the ref transaction functions for updates
+ tag.c: use ref transactions when doing updates
+ refs.c: add transaction.status and track OPEN/CLOSED
+ refs.c: make ref_transaction_begin take an err argument
+ refs.c: update ref_transaction_delete to check for error and return status
+ refs.c: change ref_transaction_create to do error checking and return status
(this branch is used by rs/ref-transaction, rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
The second batch of the transactional ref update series.
* sb/plug-leaks (2014-08-10) 2 commits
(merged to 'next' on 2014-08-29 at e42f0b8)
+ clone.c: don't leak memory in cmd_clone
+ remote.c: don't leak the base branch name in format_tracking_info
* ta/config-set-1 (2014-08-07) 8 commits
(merged to 'next' on 2014-09-03 at 184b2ef)
+ add tests for `git_config_get_string_const()`
+ add a test for semantic errors in config files
+ rewrite git_config() to use the config-set API
+ config: add `git_die_config()` to the config-set API
+ change `git_config()` return value to void
+ add line number and file name info to `config_set`
+ config.c: fix accuracy of line number in errors
+ config.c: mark error and warnings strings for translation
(this branch is used by ta/config-set-2.)
Use the new caching config-set API in git_config() calls.
* sb/prepare-revision-walk-error-check (2014-08-12) 1 commit
(merged to 'next' on 2014-08-29 at fb82508)
+ prepare_revision_walk(): check for return value in all places
* so/rebase-doc (2014-08-12) 1 commit
(merged to 'next' on 2014-08-29 at 77cfce1)
+ Documentation/git-rebase.txt: -f forces a rebase that would otherwise be a no-op
May need further updates to the description to explain what makes
various modes of operation to decide that the request can become a
"no-op".
* sp/pack-protocol-doc-on-shallow (2014-08-28) 1 commit
(merged to 'next' on 2014-08-29 at b1ae451)
+ Document LF appearing in shallow command during send-pack/receive-pack
* tb/pretty-format-cd-date-format (2014-08-21) 1 commit
(merged to 'next' on 2014-08-29 at ab8ccd4)
+ pretty: note that %cd respects the --date= option
Documentation update.
* tf/imap-send-create (2014-08-25) 2 commits
(merged to 'next' on 2014-08-29 at 8390945)
+ imap-send: create target mailbox if it is missing
+ imap-send: clarify CRAM-MD5 vs LOGIN documentation
* ta/config-set-2 (2014-08-13) 15 commits
(merged to 'next' on 2014-09-03 at f2eff02)
+ builtin/apply.c: replace `git_config()` with `git_config_get_string_const()`
+ merge-recursive.c: replace `git_config()` with `git_config_get_int()`
+ ll-merge.c: refactor `read_merge_config()` to use `git_config_string()`
+ fast-import.c: replace `git_config()` with `git_config_get_*()` family
+ branch.c: replace `git_config()` with `git_config_get_string()
+ alias.c: replace `git_config()` with `git_config_get_string()`
+ imap-send.c: replace `git_config()` with `git_config_get_*()` family
+ pager.c: replace `git_config()` with `git_config_get_value()`
+ builtin/gc.c: replace `git_config()` with `git_config_get_*()` family
+ rerere.c: replace `git_config()` with `git_config_get_*()` family
+ fetchpack.c: replace `git_config()` with `git_config_get_*()` family
+ archive.c: replace `git_config()` with `git_config_get_bool()` family
+ read-cache.c: replace `git_config()` with `git_config_get_*()` family
+ http-backend.c: replace `git_config()` with `git_config_get_bool()` family
+ daemon.c: replace `git_config()` with `git_config_get_bool()` family
(this branch uses ta/config-set-1.)
Update git_config() users with callback functions for a very narrow
scope with calls to config-set API that lets us query a single
variable.
--------------------------------------------------
[New Topics]
* as/calloc-takes-nmemb-then-size (2014-09-03) 1 commit
- calloc() and xcalloc() takes nmemb and then size
* jc/hash-object (2014-09-11) 3 commits
- hash-object: add --literally option
- hash-object: pass 'write_object' as a flag
- hash-object: reduce file-scope statics
(this branch is used by jc/hash-object-fsck-tag.)
Code clean-up.
"hash-object" learned a new "--literally" option to hash any random
garbage into a loose object, to allow us to create a test data for
mechanisms to catch corrupt objects.
* jc/hash-object-fsck-tag (2014-09-11) 2 commits
- t1450: make sure fsck detects a malformed tagger line
- Merge branch 'js/fsck-tag-validation' into HEAD
(this branch uses jc/hash-object and js/fsck-tag-validation.)
Using "hash-object --literally", test one of the new breakages
js/fsck-tag-validation topic teaches "fsck" to catch is caught.
* jk/fsck-exit-code-fix (2014-09-10) 1 commit
- fsck: exit with non-zero status upon error from fsck_obj()
"git fsck" failed to report that it found corrupt objects via its
exit status in some cases.
Will merge to 'next'.
* tb/complete-diff-ignore-blank-lines (2014-09-03) 1 commit
- completion: Add --ignore-blank-lines for diff
* js/fsck-tag-validation (2014-09-11) 6 commits
- Make sure that index-pack --strict checks tag objects
- Add regression tests for stricter tag fsck'ing
- fsck: check tag objects' headers
- Make sure fsck_commit_buffer() does not run out of the buffer
- fsck_object(): allow passing object data separately from the object itself
- Refactor type_from_string() to allow continuing after detecting an error
(this branch is used by jc/hash-object-fsck-tag.)
Will merge to 'next'.
* jc/parseopt-verify-short-name (2014-09-04) 1 commit
- parse-options: detect attempt to add a duplicate short option name
Add checks for a common programming mistake to assign the same
short option name to two separate options to help developers.
Will merge to 'next'.
* rs/more-uses-of-skip-prefix (2014-09-02) 2 commits
- pack-write: simplify index_pack_lockfile using skip_prefix() and xstrfmt()
- connect: simplify check_ref() using skip_prefix() and starts_with()
Code clean-up.
Will merge to 'next'.
* kb/perf-trace (2014-09-08) 1 commit
- trace: correct trace_strbuf() parameter type for !HAVE_VARIADIC_MACROS
Compilation fix for some compilers.
Will merge to 'next'.
* rs/export-strbuf-addchars (2014-09-08) 2 commits
- strbuf: use strbuf_addchars() for adding a char multiple times
- strbuf: export strbuf_addchars()
Code clean-up.
Teach "git fsck" to inspect the contents of annotated tag objects.
Will merge to 'next'.
--------------------------------------------------
[Stalled]
* rs/ref-transaction-multi (2014-09-03) 7 commits
- ### rs/ref-transaction-multi
- refs.c: make the *_packed_refs functions static
- refs.c: make repack_without_refs static
- remote.c: use a transaction for deleting refs
- refs.c: write updates to packed refs when a transaction has more than one ref
- refs.c: move reflog updates into its own function
- ### rs/ref-transaction-rename
(this branch uses rs/ref-transaction, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
Follow-up on rs/ref-transaction series to use the packed-ref to
achieve atomicity when multiple refs are involved.
It appears that rs/ref-transaction series is being rerolled, so
these will be rerolled as well.
* rs/ref-transaction-rename (2014-09-03) 6 commits
- refs.c: rollback the lockfile before we die() in repack_without_refs
- refs.c: update rename_ref to use a transaction
- refs.c: use packed refs when deleting refs during a transaction
- refs.c: return error instead of dying when locking fails during transaction
- refs.c: allow passing raw git_committer_info as email to _update_reflog
- ### rs/ref-transaction-reflog
(this branch is used by rs/ref-transaction-multi; uses rs/ref-transaction and rs/ref-transaction-reflog.)
Follow-up on rs/ref-transaction series to make renaming a ref
transactional (i.e. "delete old and create new" should not leave
an in-between state behind when it fails).
It appears that rs/ref-transaction series is being rerolled, so
these will be rerolled as well.
* rs/ref-transaction-reflog (2014-09-03) 16 commits
- refs.c: allow deleting refs with a broken sha1
- refs.c: remove lock_any_ref_for_update
- refs.c: make unlock_ref/close_ref/commit_ref static
- refs.c: rename log_ref_setup to create_reflog
- reflog.c: use a reflog transaction when writing during expire
- refs.c: allow multiple reflog updates during a single transaction
- refs.c: only write reflog update if msg is non-NULL
- refs.c: add a flag to allow reflog updates to truncate the log
- refs.c: add a transaction function to append a reflog entry
- lockfile.c: make hold_lock_file_for_append preserve meaningful errno
- refs.c: add a function to append a reflog entry to a fd
- refs.c: add a new update_type field to ref_update
- refs.c: rename the transaction functions
- refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
- refs.c: make ref_transaction_create a wrapper to ref_transaction_update
- ### rs/ref-transaction
(this branch is used by rs/ref-transaction-multi and rs/ref-transaction-rename; uses rs/ref-transaction.)
Cover updates to reflog with the same transaction mechanism as used
for reflog manipulations.
It appears that rs/ref-transaction series is being rerolled, so
these will be rerolled as well.
* rs/ref-transaction (2014-09-03) 13 commits
- refs.c: fix handling of badly named refs
- refs.c: make write_ref_sha1 static
- fetch.c: change s_update_ref to use a ref transaction
- refs.c: propagate any errno==ENOTDIR from _commit back to the callers
- refs.c: pass a skip list to name_conflict_fn
- refs.c: call lock_ref_sha1_basic directly from commit
- refs.c: move the check for valid refname to lock_ref_sha1_basic
- refs.c: pass NULL as *flags to read_ref_full
- refs.c: pass the ref log message to _create/delete/update instead of _commit
- refs.c: add an err argument to delete_ref_loose
- wrapper.c: add a new function unlink_or_msg
- wrapper.c: simplify warn_if_unremovable
- ### rs/ref-transaction-1
(this branch is used by rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
Rerolled and was asked to wait. Seems to break "git remote rm".
* hv/submodule-config (2014-06-30) 4 commits
- do not die on error of parsing fetchrecursesubmodules option
- use new config API for worktree configurations of submodules
@@ -426,6 +553,55 @@ of the repositories listed at
--------------------------------------------------
[Cooking]
* as/calloc-takes-nmemb-then-size (2014-09-03) 1 commit
- calloc() and xcalloc() takes nmemb and then size
Code clean-up.
Will merge to 'next'.
* tb/complete-diff-ignore-blank-lines (2014-09-03) 1 commit
- completion: Add --ignore-blank-lines for diff
Will merge to 'next'.
* jc/parseopt-verify-short-name (2014-09-04) 1 commit
- parse-options: detect attempt to add a duplicate short option name
Add checks for a common programming mistake to assign the same
short option name to two separate options to help developers.
Will merge to 'next'.
* rs/more-uses-of-skip-prefix (2014-09-02) 2 commits
- pack-write: simplify index_pack_lockfile using skip_prefix() and xstrfmt()
- connect: simplify check_ref() using skip_prefix() and starts_with()
Code clean-up.
Will merge to 'next'.
* kb/perf-trace (2014-09-08) 1 commit
- trace: correct trace_strbuf() parameter type for !HAVE_VARIADIC_MACROS
Compilation fix for some compilers.
Will merge to 'next'.
* rs/export-strbuf-addchars (2014-09-08) 2 commits
- strbuf: use strbuf_addchars() for adding a char multiple times
- strbuf: export strbuf_addchars()
Code clean-up.
Will merge to 'next'.
* tr/remerge-diff (2014-09-08) 8 commits
- log --remerge-diff: show what the conflict resolution changed
- name-hash: allow dir hashing even when !ignore_case
@@ -444,8 +620,7 @@ of the repositories listed at
Review comments sent.
* mh/lockfile (2014-09-08) 33 commits
* mh/lockfile (2014-09-11) 33 commits
- lockfile.c: store absolute path
- Extract a function commit_lock_file_to()
- trim_last_path_elm(): replace last_path_elm()
@@ -480,7 +655,7 @@ of the repositories listed at
- api-lockfile: expand the documentation
- unable_to_lock_die(): rename function from unable_to_lock_index_die()
Rerolled but not reviewed yet.
Rerolled and reviews starting.
* nd/multiple-work-trees (2014-09-03) 32 commits
@@ -521,6 +696,9 @@ of the repositories listed at
rely on symbolic links and make sharing of objects and refs safer
by making the borrowee and borrowers aware of each other.
Re-reroll posted but haven't had a chance to pick it up yet.
The series already received a few comments.
* cc/interpret-trailers (2014-05-28) 11 commits
- Documentation: add documentation for 'git interpret-trailers'
@@ -564,13 +742,6 @@ of the repositories listed at
Will merge to 'next'.
* jk/contrib-subtree-make-all (2014-08-18) 1 commit
(merged to 'next' on 2014-09-03 at 919d889)
+ subtree: make "all" default target of Makefile
Will merge to 'master'.
* jk/fast-export-anonymize (2014-08-28) 2 commits
- docs/fast-export: explain --anonymize more completely
- teach fast-export an --anonymize option
@@ -635,13 +806,6 @@ of the repositories listed at
Will merge to 'next'.
* mm/discourage-commit-a-to-finish-conflict-resolution (2014-08-28) 1 commit
(merged to 'next' on 2014-09-03 at e3f872f)
+ merge, pull: stop advising 'commit -a' in case of conflict
Will merge to 'master'.
* ah/grammofix (2014-09-02) 1 commit
- grammofix in user-facing messages
@@ -705,147 +869,6 @@ of the repositories listed at
We may want to undo the "a^" bit along the lines of $gmane/255445
* et/spell-poll-infinite-with-minus-one-only (2014-08-22) 1 commit
(merged to 'next' on 2014-09-03 at 5be5957)
+ upload-pack: keep poll(2)'s timeout to -1
We used to pass -1000 to poll(2), expecting it to also mean "no
timeout", which should be spelled as -1.
Will merge to 'master'.
* jk/make-simplify-dependencies (2014-08-26) 3 commits
(merged to 'next' on 2014-09-03 at 820a600)
+ Makefile: drop CHECK_HEADER_DEPENDENCIES code
+ Makefile: use `find` to determine static header dependencies
+ i18n: treat "make pot" as an explicitly-invoked target
Admit that keeping LIB_H up-to-date, only for those that do not use
the automatically generated dependencies, is a losing battle, and
make it conservative by making everything depend on anything.
Will merge to 'master'.
* jk/prune-top-level-refs-after-packing (2014-08-25) 1 commit
(merged to 'next' on 2014-09-04 at bfe3873)
+ pack-refs: prune top-level refs like "refs/foo"
After "pack-refs --prune" packed refs at the top-level, it failed
to prune them.
Will merge to 'master'.
* jk/fast-import-fixes (2014-08-25) 2 commits
(merged to 'next' on 2014-09-04 at 74838e5)
+ fast-import: fix buffer overflow in dump_tags
+ fast-import: clean up pack_data pointer in end_packfile
With sufficiently long refnames, fast-import could have overflown
an on-stack buffer.
Will merge to 'master'.
* nd/fetch-pass-quiet-to-gc-child-process (2014-08-18) 2 commits
(merged to 'next' on 2014-09-04 at 028cd42)
+ fetch: silence git-gc if --quiet is given
+ fetch: convert argv_gc_auto to struct argv_array
Progress output from "git gc --auto" was visible in "git fetch -q".
Will merge to 'master'.
* rs/list-optim (2014-08-25) 2 commits
(merged to 'next' on 2014-09-04 at eecaf99)
+ walker: avoid quadratic list insertion in mark_complete
+ sha1_name: avoid quadratic list insertion in handle_one_ref
Fix a couple of "accumulate into a sorted list" to "accumulate and
then sort the list".
Will merge to 'master'.
* jk/name-decoration-alloc (2014-08-27) 3 commits
(merged to 'next' on 2014-09-04 at 05f0d29)
+ log-tree: use FLEX_ARRAY in name_decoration
+ log-tree: make name_decoration hash static
+ log-tree: make add_name_decoration a public function
The API to allocate the structure to keep track of commit
decoration was cumbersome to use, inviting lazy code to
overallocate memory.
Will merge to 'master'.
* br/http-init-fix (2014-08-21) 2 commits
(merged to 'next' on 2014-09-03 at 6d42f5e)
+ http: style fixes for curl_multi_init error check
+ http.c: die if curl_*_init fails
Code clean-up.
Will merge to 'master'.
* br/imap-send-simplify-tunnel-child-process (2014-09-02) 3 commits
(merged to 'next' on 2014-09-04 at a182987)
+ imap-send: simplify v_issue_imap_cmd() and get_cmd_result() using starts_with()
+ imap-send.c: imap_folder -> imap_server_conf.folder
+ git-imap-send: simplify tunnel construction
Code clean-up.
Will merge to 'master'.
* jn/unpack-trees-checkout-m-carry-deletion (2014-08-25) 3 commits
(merged to 'next' on 2014-09-04 at e15803a)
+ checkout -m: attempt merge when deletion of path was staged
+ unpack-trees: use 'cuddled' style for if-else cascade
+ unpack-trees: simplify 'all other failures' case
"git checkout -m" did not switch to another branch while carrying
the local changes forward when a path was deleted from the index.
Will merge to 'master'.
* nd/large-blobs (2014-08-18) 5 commits
(merged to 'next' on 2014-09-04 at 16d7c62)
+ diff: shortcut for diff'ing two binary SHA-1 objects
+ diff --stat: mark any file larger than core.bigfilethreshold binary
+ diff.c: allow to pass more flags to diff_populate_filespec
+ sha1_file.c: do not die failing to malloc in unpack_compressed_entry
+ wrapper.c: introduce gentle xmallocz that does not die()
Teach a few codepaths to punt (instead of dying) when large blobs
that would not fit in core are involved in the operation.
Will merge to 'master'.
* nd/mv-code-cleaning (2014-09-03) 8 commits
(merged to 'next' on 2014-09-03 at 4315447)
+ mv: no SP between function name and the first opening parenthese
+ mv: combine two if(s)
+ mv: unindent one level for directory move code
+ mv: move index search code out
+ mv: remove an "if" that's always true
+ mv: split submodule move preparation code out
+ mv: flatten error handling code block
+ mv: mark strings for translations
Code clean-up.
Will merge to 'master'.
* sp/stream-clean-filter (2014-08-28) 6 commits
- convert: stream from fd to required clean filter to reduce used address space
- copy_fd(): do not close the input file descriptor
@@ -886,189 +909,9 @@ of the repositories listed at
tips of branches at a public repository really point the commits
the pusher wanted to, without having to "trust" the server.
Hopefully a final reroll. Comments & reviews?
* rs/child-process-init (2014-08-20) 4 commits
(merged to 'next' on 2014-09-03 at c17c06c)
+ run-command: inline prepare_run_command_v_opt()
+ run-command: call run_command_v_opt_cd_env() instead of duplicating it
+ run-command: introduce child_process_init()
+ run-command: introduce CHILD_PROCESS_INIT
Code clean-up.
Will merge to 'master'.
* ta/config-set-1 (2014-08-07) 8 commits
(merged to 'next' on 2014-09-03 at 184b2ef)
+ add tests for `git_config_get_string_const()`
+ add a test for semantic errors in config files
+ rewrite git_config() to use the config-set API
+ config: add `git_die_config()` to the config-set API
+ change `git_config()` return value to void
+ add line number and file name info to `config_set`
+ config.c: fix accuracy of line number in errors
+ config.c: mark error and warnings strings for translation
(this branch is used by ta/config-set-2.)
Use the new caching config-set API in git_config() calls.
Will merge to 'master'.
* ta/config-set-2 (2014-08-13) 15 commits
(merged to 'next' on 2014-09-03 at f2eff02)
+ builtin/apply.c: replace `git_config()` with `git_config_get_string_const()`
+ merge-recursive.c: replace `git_config()` with `git_config_get_int()`
+ ll-merge.c: refactor `read_merge_config()` to use `git_config_string()`
+ fast-import.c: replace `git_config()` with `git_config_get_*()` family
+ branch.c: replace `git_config()` with `git_config_get_string()
+ alias.c: replace `git_config()` with `git_config_get_string()`
+ imap-send.c: replace `git_config()` with `git_config_get_*()` family
+ pager.c: replace `git_config()` with `git_config_get_value()`
+ builtin/gc.c: replace `git_config()` with `git_config_get_*()` family
+ rerere.c: replace `git_config()` with `git_config_get_*()` family
+ fetchpack.c: replace `git_config()` with `git_config_get_*()` family
+ archive.c: replace `git_config()` with `git_config_get_bool()` family
+ read-cache.c: replace `git_config()` with `git_config_get_*()` family
+ http-backend.c: replace `git_config()` with `git_config_get_bool()` family
+ daemon.c: replace `git_config()` with `git_config_get_bool()` family
(this branch uses ta/config-set-1.)
Update git_config() users with callback functions for a very narrow
scope with calls to config-set API that lets us query a single
variable.
Will merge to 'master'.
* rs/ref-transaction-multi (2014-09-03) 7 commits
- ### rs/ref-transaction-multi
- refs.c: make the *_packed_refs functions static
- refs.c: make repack_without_refs static
- remote.c: use a transaction for deleting refs
- refs.c: write updates to packed refs when a transaction has more than one ref
- refs.c: move reflog updates into its own function
- ### rs/ref-transaction-rename
(this branch uses rs/ref-transaction, rs/ref-transaction-1, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
Follow-up on rs/ref-transaction series to use the packed-ref to
achieve atomicity when multiple refs are involved.
Comments & reviews?
* rs/ref-transaction-rename (2014-09-03) 6 commits
- refs.c: rollback the lockfile before we die() in repack_without_refs
- refs.c: update rename_ref to use a transaction
- refs.c: use packed refs when deleting refs during a transaction
- refs.c: return error instead of dying when locking fails during transaction
- refs.c: allow passing raw git_committer_info as email to _update_reflog
- ### rs/ref-transaction-reflog
(this branch is used by rs/ref-transaction-multi; uses rs/ref-transaction, rs/ref-transaction-1 and rs/ref-transaction-reflog.)
Follow-up on rs/ref-transaction series to make renaming a ref
transactional (i.e. "delete old and create new" should not leave
an in-between state behind when it fails).
Comments & reviews?
* rs/ref-transaction-reflog (2014-09-03) 16 commits
- refs.c: allow deleting refs with a broken sha1
- refs.c: remove lock_any_ref_for_update
- refs.c: make unlock_ref/close_ref/commit_ref static
- refs.c: rename log_ref_setup to create_reflog
- reflog.c: use a reflog transaction when writing during expire
- refs.c: allow multiple reflog updates during a single transaction
- refs.c: only write reflog update if msg is non-NULL
- refs.c: add a flag to allow reflog updates to truncate the log
- refs.c: add a transaction function to append a reflog entry
- lockfile.c: make hold_lock_file_for_append preserve meaningful errno
- refs.c: add a function to append a reflog entry to a fd
- refs.c: add a new update_type field to ref_update
- refs.c: rename the transaction functions
- refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
- refs.c: make ref_transaction_create a wrapper to ref_transaction_update
- ### rs/ref-transaction
(this branch is used by rs/ref-transaction-multi and rs/ref-transaction-rename; uses rs/ref-transaction and rs/ref-transaction-1.)
Cover updates to reflog with the same transaction mechanism as used
for reflog manipulations.
Comments & reviews?
Otherwise will merge to 'next'.
* rs/ref-transaction (2014-09-03) 13 commits
- refs.c: fix handling of badly named refs
- refs.c: make write_ref_sha1 static
- fetch.c: change s_update_ref to use a ref transaction
- refs.c: propagate any errno==ENOTDIR from _commit back to the callers
- refs.c: pass a skip list to name_conflict_fn
- refs.c: call lock_ref_sha1_basic directly from commit
- refs.c: move the check for valid refname to lock_ref_sha1_basic
- refs.c: pass NULL as *flags to read_ref_full
- refs.c: pass the ref log message to _create/delete/update instead of _commit
- refs.c: add an err argument to delete_ref_loose
- wrapper.c: add a new function unlink_or_msg
- wrapper.c: simplify warn_if_unremovable
- ### rs/ref-transaction-1
(this branch is used by rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename; uses rs/ref-transaction-1.)
Comments & reviews?
Otherwise will merge to 'next'.
* rs/ref-transaction-1 (2014-09-03) 22 commits
(merged to 'next' on 2014-09-03 at 68e20b8)
+ update-ref --stdin: pass transaction around explicitly
+ update-ref --stdin: narrow scope of err strbuf
+ refs.c: make delete_ref use a transaction
+ refs.c: make prune_ref use a transaction to delete the ref
+ refs.c: remove lock_ref_sha1
+ refs.c: remove the update_ref_write function
+ refs.c: remove the update_ref_lock function
+ refs.c: make lock_ref_sha1 static
+ walker.c: use ref transaction for ref updates
+ fast-import.c: use a ref transaction when dumping tags
+ receive-pack.c: use a reference transaction for updating the refs
+ refs.c: change update_ref to use a transaction
+ branch.c: use ref transaction for all ref updates
+ fast-import.c: change update_branch to use ref transactions
+ sequencer.c: use ref transactions for all ref updates
+ commit.c: use ref transactions for updates
+ replace.c: use the ref transaction functions for updates
+ tag.c: use ref transactions when doing updates
+ refs.c: add transaction.status and track OPEN/CLOSED
+ refs.c: make ref_transaction_begin take an err argument
+ refs.c: update ref_transaction_delete to check for error and return status
+ refs.c: change ref_transaction_create to do error checking and return status
(this branch is used by rs/ref-transaction, rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
The second batch of the transactional ref update series.
Will merge to 'master'.
* dt/cache-tree-repair (2014-09-03) 5 commits
(merged to 'next' on 2014-09-03 at 1c8ff65)
+ cache-tree: do not try to use an invalidated subtree info to build a tree
(merged to 'next' on 2014-08-26 at 6faccdb)
+ cache-tree: Write updated cache-tree after commit
+ cache-tree: subdirectory tests
+ test-dump-cache-tree: invalid trees are not errors
+ cache-tree: create/update cache-tree on checkout
Add a few more places in "commit" and "checkout" that make sure
that the cache-tree is fully populated in the index.
Will merge to 'master'.
* jc/test-lazy-prereq (2014-06-13) 1 commit
- tests: drop GIT_*_TIMING_TESTS environment variable support
@@ -1088,14 +931,3 @@ of the repositories listed at
Nobody seems to be jumping up & down requesting this last step.
Perhaps will drop.
--------------------------------------------------
[Discarded]
* tr/merge-recursive-index-only (2014-02-05) 3 commits
- 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()
Now part of tr/remerge-diff.