From 8fcae4508721ffa83d2514b45ceb351ec8fb6fdd Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 14 Jul 2014 13:58:33 -0700 Subject: [PATCH] What's cooking (2014/07 #02) --- whats-cooking.txt | 832 +++++++++++++++++++++++++++--------------------------- 1 file changed, 409 insertions(+), 423 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index a511356757..6c1598e4f8 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,225 +1,261 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Jul 2014, #01; Tue, 8) -X-master-at: 72c779457cd72928e36f2bc43c3ff7f3ae7b77c3 -X-next-at: 35b839c24c6ee47bec1710eabfa8653925462638 +Subject: What's cooking in git.git (Jul 2014, #02; Mon, 14) +X-master-at: 66f467c3e6aa9c1e28eaf7b71cea5e452fc104e8 +X-next-at: a2efa2fd3a2243dea76a6988cbda3d2f4acf3381 -What's cooking in git.git (Jul 2014, #01; Tue, 8) +What's cooking in git.git (Jul 2014, #02; Mon, 14) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with '-' are only in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'. +We would need to start slowing down to prepare for -rc0 preview at +the end of next week and then feature freeze. Some topics that +joined 'next' late may want to stay there for the remainder of this +cycle. + You can find the changes described here in the integration branches of the repositories listed at http://git-blame.blogspot.com/p/git-public-repositories.html -------------------------------------------------- -[Graduated to "master"] - -* bc/fix-rebase-merge-skip (2014-06-16) 1 commit - (merged to 'next' on 2014-06-20 at 01f81f5) - + rebase--merge: fix --skip with two conflicts in a row - - "git rebase --skip" did not work well when it stopped due to a - conflict twice in a row. - - -* dt/refs-check-refname-component-sse (2014-06-18) 1 commit - (merged to 'next' on 2014-06-20 at d286027) - + refs.c: SSE2 optimizations for check_refname_component - - Further micro-optimization of a leaf-function. - - -* jk/commit-buffer-length (2014-06-13) 18 commits - (merged to 'next' on 2014-06-16 at b2d2d7b) - + reuse cached commit buffer when parsing signatures - + commit: record buffer length in cache - + commit: convert commit->buffer to a slab - + commit-slab: provide a static initializer - + use get_commit_buffer everywhere - + convert logmsg_reencode to get_commit_buffer - + use get_commit_buffer to avoid duplicate code - + use get_cached_commit_buffer where appropriate - + provide helpers to access the commit buffer - + provide a helper to set the commit buffer - + provide a helper to free commit buffer - + sequencer: use logmsg_reencode in get_message - + logmsg_reencode: return const buffer - + do not create "struct commit" with xcalloc - + commit: push commit_index update into alloc_commit_node - + alloc: include any-object allocations in alloc_report - + replace dangerous uses of strbuf_attach - + commit_tree: take a pointer/len pair rather than a const strbuf - - Move "commit->buffer" out of the in-core commit object and keep - track of their lengths. Use this to optimize the code paths to - validate GPG signatures in commit objects. - - -* ye/http-extract-charset (2014-06-17) 1 commit - (merged to 'next' on 2014-06-20 at 9492bae) - + http: fix charset detection of extract_content_type() - --------------------------------------------------- [New Topics] -* cc/replace-edit (2014-06-25) 3 commits - - replace: use argv_array in export_object - - avoid double close of descriptors handed to run_command - - replace: replace spaces with tabs in indentation - (this branch is used by jk/replace-edit-raw.) +* jk/skip-prefix (2014-07-10) 1 commit + (merged to 'next' on 2014-07-14 at 0fbd06e) + + tag: use skip_prefix instead of magic numbers + (this branch is used by jk/tag-sort.) - Will merge to 'next'. - - -* ep/submodule-code-cleanup (2014-06-30) 1 commit - - submodule.c: use the ARRAY_SIZE macro - - Will merge to 'next'. + Will merge to 'master'. + One more to an already graduated topic. -* jk/replace-edit-raw (2014-06-25) 1 commit - - replace: add a --raw mode for --edit - (this branch uses cc/replace-edit.) - Will merge to 'next'. +* rs/code-cleaning (2014-07-10) 5 commits + (merged to 'next' on 2014-07-14 at d5a89c8) + + fsck: simplify fsck_commit_buffer() by using commit_list_count() + + commit: use commit_list_append() instead of duplicating its code + + merge: simplify merge_trivial() by using commit_list_append() + + use strbuf_addch for adding single characters + + use strbuf_addbuf for adding strbufs + Will merge to 'master'. -* jk/strip-suffix (2014-06-30) 9 commits - - prepare_packed_git_one: refactor duplicate-pack check - - verify-pack: use strbuf_strip_suffix - - strbuf: implement strbuf_strip_suffix - - index-pack: use strip_suffix to avoid magic numbers - - use strip_suffix instead of ends_with in simple cases - - replace has_extension with ends_with - - implement ends_with via strip_suffix - - add strip_suffix function - - sha1_file: replace PATH_MAX buffer with strbuf in prepare_packed_git_one() - Will merge to 'next'. +* ah/fix-http-push (2014-07-13) 1 commit + (merged to 'next' on 2014-07-14 at 5d06516) + + http-push.c: make CURLOPT_IOCTLDATA a usable pointer + An ancient rewrite passed a wrong pointer to a curl library + function in a rarely used code path. -* jk/tag-contains (2014-06-30) 8 commits - - perf: add tests for tag --contains - - tag: use commit_contains - - commit: provide a fast multi-tip contains function - - string-list: add pos to iterator callback - - add functions for memory-efficient bitmaps - - paint_down_to_common: use prio_queue - - tag: factor out decision to stream tags - - tag: allow --sort with -n + Will merge to 'master'. - Expecting a reroll. +* jc/reopen-lock-file (2014-07-14) 1 commit + - lockfile: allow reopening a closed but still locked file + (this branch uses nd/split-index.) -* mg/fix-log-mergetag-color (2014-06-30) 1 commit - - log: correctly identify mergetag signature verification status + Needed in the "commit -p" code path to update the cache tree in the + index. - Will merge to 'next'. +* jk/alloc-commit-id (2014-07-13) 8 commits + - diff-tree: avoid lookup_unknown_object + - object_as_type: set commit index + - alloc: factor out commit index + - add object_as_type helper for casting objects + - parse_object_buffer: do not set object type + - move setting of object->type to alloc_* functions + - alloc: write out allocator definitions + - alloc.c: remove the alloc_raw_commit_node() function -* mk/merge-incomplete-files (2014-06-30) 2 commits - - git-merge-file: do not add LF at EOF while applying unrelated change - - t6023-merge-file.sh: fix and mark as broken invalid tests + Make sure all in-core commit objects are assigned a unique number + so that they can be annotated using the commit-slab API. Will merge to 'next'. -* rs/status-code-clean-up (2014-06-29) 2 commits - (merged to 'next' on 2014-07-08 at db67965) - + wt-status: simplify building of summary limit argument - + wt-status: use argv_array for environment - - Will merge to 'master'. - - -* tb/crlf-tests (2014-07-08) 2 commits - (merged to 'next' on 2014-07-08 at 40764b7) - + t0027: combinations of core.autocrlf, core.eol and text - + t0025: rename the test files +* jk/remote-curl-squelch-extra-errors (2014-07-10) 3 commits + (merged to 'next' on 2014-07-14 at a2efa2f) + + remote-curl: mark helper-protocol errors more clearly + + remote-curl: use error instead of fprintf(stderr) + + remote-curl: do not complain on EOF from parent git Will merge to 'master'. -* ak/profile-feedback-build (2014-07-08) 4 commits - - Fix profile feedback with -jN and add profile-fast - - Run the perf test suite for profile feedback too - - Don't define away __attribute__ on gcc - - Use BASIC_FLAGS for profile feedback +* rs/ref-transaction-0 (2014-07-14) 19 commits + (merged to 'next' on 2014-07-14 at b21bcee) + + refs.c: change ref_transaction_update() to do error checking and return status + + refs.c: remove the onerr argument to ref_transaction_commit + + update-ref: use err argument to get error from ref_transaction_commit + + refs.c: make update_ref_write update a strbuf on failure + + refs.c: make ref_update_reject_duplicates take a strbuf argument for errors + + refs.c: log_ref_write should try to return meaningful errno + + refs.c: make resolve_ref_unsafe set errno to something meaningful on error + + refs.c: commit_packed_refs to return a meaningful errno on failure + + refs.c: make remove_empty_directories always set errno to something sane + + refs.c: verify_lock should set errno to something meaningful + + refs.c: make sure log_ref_setup returns a meaningful errno + + refs.c: add an err argument to repack_without_refs + + lockfile.c: make lock_file return a meaningful errno on failurei + + lockfile.c: add a new public function unable_to_lock_message + + refs.c: add a strbuf argument to ref_transaction_commit for error logging + + refs.c: allow passing NULL to ref_transaction_free + + refs.c: constify the sha arguments for ref_transaction_create|delete|update + + refs.c: ref_transaction_commit should not free the transaction + + refs.c: remove ref_transaction_rollback + (this branch is used by rs/ref-transaction.) + + Early part of Ronnie's "ref transaction" topic. + Portability workaround may be needed on top ($gmane/252496). - Will merge to 'next'. +-------------------------------------------------- +[Graduated to "master"] +* jk/skip-prefix (2014-06-20) 18 commits + (merged to 'next' on 2014-06-23 at cd387a6) + + http-push: refactor parsing of remote object names + + imap-send: use skip_prefix instead of using magic numbers + + use skip_prefix to avoid repeated calculations + + git: avoid magic number with skip_prefix + + fetch-pack: refactor parsing in get_ack + + fast-import: refactor parsing of spaces + + stat_opt: check extra strlen call + + daemon: use skip_prefix to avoid magic numbers + + fast-import: use skip_prefix for parsing input + + use skip_prefix to avoid repeating strings + + use skip_prefix to avoid magic numbers + + transport-helper: avoid reading past end-of-string + + fast-import: fix read of uninitialized argv memory + + apply: use skip_prefix instead of raw addition + + refactor skip_prefix to return a boolean + + avoid using skip_prefix as a boolean + + daemon: mark some strings as const + + parse_diff_color_slot: drop ofs parameter -* cb/filter-branch-prune-empty-degenerate-merges (2014-07-01) 1 commit - - filter-branch: eliminate duplicate mapped parents - Will merge to 'next'. +* kb/path-max-must-go (2014-07-13) 1 commit + (merged to 'next' on 2014-07-14 at b0b9834) + + cache.h: rename cache_def_free to cache_def_clear -* cc/for-each-mergetag (2014-07-07) 1 commit - - commit: add for_each_mergetag() - (this branch is used by cc/replace-graft.) +* dt/refs-check-refname-component-sse-fix (2014-07-08) 2 commits + (merged to 'next' on 2014-07-08 at 35b839c) + + refs: fix valgrind suppression file + + refs.c: handle REFNAME_REFSPEC_PATTERN at end of page - Will merge to 'next'. + Fixes to a topic that is already in 'master'. -* dt/cache-tree-repair (2014-07-08) 4 commits - - 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 +* jc/fix-clone-single-starting-at-a-tag (2014-06-23) 1 commit + (merged to 'next' on 2014-07-02 at cc0c4b1) + + builtin/clone.c: detect a clone starting at a tag correctly - Reviews seen; waiting for a response. + "git clone -b brefs/tags/bar" would have mistakenly thought we were + following a single tag, even though it was a name of the branch, + because it incorrectly used strstr(). -* jl/test-lint-scripts (2014-07-07) 3 commits - - DONTMERGE: missing sign-off - - t/Makefile: always test all lint targets when running tests - - t/Makefile: check helper scripts for non-portable shell commands too +* jk/pretty-G-format-fixes (2014-06-25) 6 commits + (merged to 'next' on 2014-06-26 at 7138407) + + move "%G" format test from t7510 to t6006 + (merged to 'next' on 2014-06-20 at f504bbc) + + pretty: avoid reading past end-of-string with "%G" + + t7510: check %G* pretty-format output + + t7510: test a commit signed by an unknown key + + t7510: use consistent &&-chains in loop + + t7510: stop referring to master in later tests + "%G" (nothing after G) is an invalid pretty format specifier, but + the parser did not notice it as garbage. -* kb/hashmap-updates (2014-07-07) 4 commits - - hashmap: add string interning API - - hashmap: add simplified hashmap_get_from_hash() API - - hashmap: improve struct hashmap member documentation - - hashmap: factor out getting a hash code from a SHA1 - Reviews sent; waiting for a response. +* jk/xstrfmt (2014-06-25) 11 commits + (merged to 'next' on 2014-06-25 at 5031d4e) + + setup_git_env(): introduce git_path_from_env() helper + (merged to 'next' on 2014-06-23 at 64f2558) + + unique_path: fix unlikely heap overflow + + walker_fetch: fix minor memory leak + + merge: use argv_array when spawning merge strategy + + sequencer: use argv_array_pushf + + setup_git_env: use git_pathdup instead of xmalloc + sprintf + + use xstrfmt to replace xmalloc + strcpy/strcat + + use xstrfmt to replace xmalloc + sprintf + + use xstrdup instead of xmalloc + strcpy + + use xstrfmt in favor of manual size calculations + + strbuf: add xstrfmt helper -* kb/path-max-must-go (2014-07-07) 2 commits - (merged to 'next' on 2014-07-08 at 4d41c18) - + dir: remove PATH_MAX limitation - + symlinks: remove PATH_MAX limitation +* mg/verify-commit (2014-06-23) 5 commits + (merged to 'next' on 2014-07-02 at 6d77bcf) + + t7510: test verify-commit + + t7510: exit for loop with test result + + verify-commit: scriptable commit signature verification + + gpg-interface: provide access to the payload + + gpg-interface: provide clear helper for struct signature_check - Will merge to 'master'. + Add 'verify-commit' to be used in a way similar to 'verify-tag' is + used. Further work on verifying the mergetags might be needed. * rs/fix-alt-odb-path-comparison (2014-07-01) 1 commit (merged to 'next' on 2014-07-08 at f9c69e5) + sha1_file: avoid overrunning alternate object base string - Will merge to 'master'. - * rs/simplify-archive-tests (2014-07-07) 1 commit (merged to 'next' on 2014-07-08 at c46cfac) + t5000, t5003: simplify commit - Will merge to 'master'. +* rs/status-code-clean-up (2014-06-29) 2 commits + (merged to 'next' on 2014-07-08 at db67965) + + wt-status: simplify building of summary limit argument + + wt-status: use argv_array for environment -* zk/log-graph-showsig (2014-07-08) 1 commit - - log: fix indentation for --graph --show-signature - The "--show-signature" option did not pay much attention to - "--graph". +* sk/mingw-dirent (2014-06-09) 5 commits + (merged to 'next' on 2014-06-30 at ae9e2d6) + + Win32 dirent: improve dirent implementation + + Win32 dirent: clarify #include directives + + Win32 dirent: change FILENAME_MAX to MAX_PATH + + Win32 dirent: remove unused dirent.d_reclen member + + Win32 dirent: remove unused dirent.d_ino member - Will merge to 'next'. + +* sk/mingw-main (2014-06-10) 2 commits + (merged to 'next' on 2014-06-30 at 447cb50) + + mingw: avoid const warning + + Win32: move main macro to a function + (this branch is used by sk/mingw-uni-console and sk/mingw-unicode-spawn-args.) + + +* sk/mingw-uni-console (2014-06-16) 7 commits + (merged to 'next' on 2014-06-30 at f4fbc41) + + Win32: reliably detect console pipe handles + + Win32: fix broken pipe detection + + Win32: Thread-safe windows console output + + Win32: add Unicode conversion functions + + Win32: warn if the console font doesn't support Unicode + + Win32: detect console streams more reliably + + Win32: support Unicode console output + (this branch is used by sk/mingw-unicode-spawn-args; uses sk/mingw-main.) + + +* sk/mingw-unicode-spawn-args (2014-06-16) 6 commits + (merged to 'next' on 2014-06-30 at c8f79d0) + + Win32: Unicode arguments (incoming) + + Win32: Unicode arguments (outgoing) + + MinGW: disable CRT command line globbing + + Win32: fix potential multi-threading issue + + Win32: simplify internal mingw_spawn* APIs + + Win32: let mingw_execve() return an int + (this branch uses sk/mingw-main and sk/mingw-uni-console.) -------------------------------------------------- [Stalled] @@ -282,35 +318,33 @@ of the repositories listed at * mh/lockfile (2014-04-15) 25 commits - - trim_last_path_elm(): replace last_path_elm() - - resolve_symlink(): take a strbuf parameter - - resolve_symlink(): use a strbuf for internal scratch space - - change lock_file::filename into a strbuf - - commit_lock_file(): use a strbuf to manage temporary space - - try_merge_strategy(): use a statically-allocated lock_file object - - try_merge_strategy(): remove redundant lock_file allocation - - struct lock_file: declare some fields volatile - - lockfile: avoid transitory invalid states - - commit_lock_file(): die() if called for unlocked lockfile object - - commit_lock_file(): inline temporary variable - - remove_lock_file(): call rollback_lock_file() - - lock_file(): exit early if lockfile cannot be opened - - write_packed_entry_fn(): convert cb_data into a (const int *) - - prepare_index(): declare return value to be (const char *) - - delete_ref_loose(): don't muck around in the lock_file's filename - - cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN - - lockfile.c: document the various states of lock_file objects - - lock_file(): always add lock_file object to lock_file_list - - hold_lock_file_for_append(): release lock on errors - - lockfile: unlock file if lockfile permissions cannot be adjusted - - rollback_lock_file(): set fd to -1 - - rollback_lock_file(): do not clear filename redundantly - - api-lockfile: expand the documentation - - unable_to_lock_die(): rename function from unable_to_lock_index_die() - - Refactor and fix corner-case bugs in the lockfile API, all looked - sensible. + . trim_last_path_elm(): replace last_path_elm() + . resolve_symlink(): take a strbuf parameter + . resolve_symlink(): use a strbuf for internal scratch space + . change lock_file::filename into a strbuf + . commit_lock_file(): use a strbuf to manage temporary space + . try_merge_strategy(): use a statically-allocated lock_file object + . try_merge_strategy(): remove redundant lock_file allocation + . struct lock_file: declare some fields volatile + . lockfile: avoid transitory invalid states + . commit_lock_file(): die() if called for unlocked lockfile object + . commit_lock_file(): inline temporary variable + . remove_lock_file(): call rollback_lock_file() + . lock_file(): exit early if lockfile cannot be opened + . write_packed_entry_fn(): convert cb_data into a (const int *) + . prepare_index(): declare return value to be (const char *) + . delete_ref_loose(): don't muck around in the lock_file's filename + . cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN + . lockfile.c: document the various states of lock_file objects + . lock_file(): always add lock_file object to lock_file_list + . hold_lock_file_for_append(): release lock on errors + . lockfile: unlock file if lockfile permissions cannot be adjusted + . rollback_lock_file(): set fd to -1 + . rollback_lock_file(): do not clear filename redundantly + . api-lockfile: expand the documentation + . unable_to_lock_die(): rename function from unable_to_lock_index_die() + Ejected from 'pu' to unclutter. Expecting a reroll. @@ -384,38 +418,6 @@ of the repositories listed at Will hold. -* jk/branch-at-publish-rebased (2014-01-17) 5 commits - . t1507 (rev-parse-upstream): fix typo in test title - . implement @{publish} shorthand - . branch_get: provide per-branch pushremote pointers - . branch_get: return early on error - . sha1_name: refactor upstream_mark - - Give an easier access to the tracking branches from "other" side in - a triangular workflow by introducing B@{publish} that works in a - similar way to how B@{upstream} does. - - Meant to be used as a basis for whatever Ram wants to build on. - - Ejected from 'pu' to unclutter. - - -* fc/publish-vs-upstream (2014-04-21) 8 commits - . sha1_name: add support for @{publish} marks - . sha1_name: simplify track finding - . sha1_name: cleanup interpret_branch_name() - . branch: display publish branch - . push: add --set-publish option - . branch: add --set-publish-to option - . Add concept of 'publish' branch - . t5516 (fetch-push): fix test restoration - - Add branch@{publish}; it seems that this is somewhat different from - Ram and Peff started working on. At least the tip needs to be - rerolled not to squat on @{p} which @{push} and possibly @{pull} - may want to share. - - * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits - merge: drop unused arg from abort_commit method signature - merge: make prepare_to_commit responsible for write_merge_state @@ -438,20 +440,6 @@ of the repositories listed at This was primarily a RFH ($gmane/239580). -* np/pack-v4 (2013-09-18) 90 commits - . packv4-parse.c: add tree offset caching - . t1050: replace one instance of show-index with verify-pack - . index-pack, pack-objects: allow creating .idx v2 with .pack v4 - . unpack-objects: decode v4 trees - . unpack-objects: allow to save processed bytes to a buffer - - ... - - Nico and Duy advancing the eternal vaporware pack-v4. This is here - primarily for wider distribution of the preview edition. - - Needs to be rebased, now the pack-bitmap series is in. - - * 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 @@ -477,134 +465,212 @@ of the repositories listed at More or less abandoned. Will drop. +-------------------------------------------------- +[Cooking] -* nd/multiple-work-trees (2014-03-25) 28 commits - . count-objects: report unused files in $GIT_DIR/repos/... - . gc: support prune --repos - . gc: style change -- no SP before closing bracket - . prune: strategies for linked checkouts - . checkout: detach if the branch is already checked out elsewhere - . checkout: clean up half-prepared directories in --to mode - . checkout: support checking out into a new working directory - . use new wrapper write_file() for simple file writing - . wrapper.c: wrapper to open a file, fprintf then close - . setup.c: support multi-checkout repo setup - . setup.c: detect $GIT_COMMON_DIR check_repository_format_gently() - . setup.c: convert check_repository_format_gently to use strbuf - . setup.c: detect $GIT_COMMON_DIR in is_git_directory() - . setup.c: convert is_git_directory() to use strbuf - . git-stash: avoid hardcoding $GIT_DIR/logs/.... - . *.sh: avoid hardcoding $GIT_DIR/hooks/... - . git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects - . $GIT_COMMON_DIR: a new environment variable - . commit: use SEQ_DIR instead of hardcoding "sequencer" - . fast-import: use git_path() for accessing .git dir instead of get_git_dir() - . reflog: avoid constructing .lock path with git_path - . *.sh: respect $GIT_INDEX_FILE - . git_path(): be aware of file relocation in $GIT_DIR - . path.c: group git_path(), git_pathdup() and strbuf_git_path() together - . path.c: rename vsnpath() to do_git_path() - . git_snpath(): retire and replace with strbuf_git_path() - . path.c: make get_pathname() call sites return const char * - . path.c: make get_pathname() return strbuf instead of static buffer +* nd/multiple-work-trees (2014-07-14) 31 commits + - checkout: don't require a work tree when checking out into a new one + - git_path(): keep "info/sparse-checkout" per work-tree + - count-objects: report unused files in $GIT_DIR/repos/... + - gc: support prune --repos + - gc: factor out gc.pruneexpire parsing code + - gc: style change -- no SP before closing parenthesis + - prune: strategies for linked checkouts + - checkout: detach if the branch is already checked out elsewhere + - checkout: clean up half-prepared directories in --to mode + - checkout: support checking out into a new working directory + - use new wrapper write_file() for simple file writing + - wrapper.c: wrapper to open a file, fprintf then close + - setup.c: support multi-checkout repo setup + - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently() + - setup.c: convert check_repository_format_gently to use strbuf + - setup.c: detect $GIT_COMMON_DIR in is_git_directory() + - setup.c: convert is_git_directory() to use strbuf + - git-stash: avoid hardcoding $GIT_DIR/logs/.... + - *.sh: avoid hardcoding $GIT_DIR/hooks/... + - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects + - $GIT_COMMON_DIR: a new environment variable + - commit: use SEQ_DIR instead of hardcoding "sequencer" + - fast-import: use git_path() for accessing .git dir instead of get_git_dir() + - reflog: avoid constructing .lock path with git_path + - *.sh: respect $GIT_INDEX_FILE + - git_path(): be aware of file relocation in $GIT_DIR + - path.c: group git_path(), git_pathdup() and strbuf_git_path() together + - path.c: rename vsnpath() to do_git_path() + - git_snpath(): retire and replace with strbuf_git_path() + - path.c: make get_pathname() call sites return const char * + - path.c: make get_pathname() return strbuf instead of static buffer A replacement for contrib/workdir/git-new-workdir that does not rely on symbolic links and make sharing of objects and refs safer by making the borrowee and borrowers aware of each other. --------------------------------------------------- -[Cooking] + Rerolled. -* cc/replace-graft (2014-07-07) 9 commits - - replace: add test for --graft with a mergetag - - replace: check mergetags when using --graft - - replace: add test for --graft with signed commit - - replace: remove signature when using --graft - - contrib: add convert-grafts-to-replace-refs.sh - - Documentation: replace: add --graft option - - replace: add test for --graft - - replace: add --graft option - - replace: cleanup redirection style in tests - (this branch uses cc/for-each-mergetag.) - "git replace" learned a "--graft" option to rewrite parents of a - commit. +* cc/replace-edit (2014-06-25) 3 commits + (merged to 'next' on 2014-07-10 at 097cd5e) + + replace: use argv_array in export_object + + avoid double close of descriptors handed to run_command + + replace: replace spaces with tabs in indentation + (this branch is used by jk/replace-edit-raw.) + Teach "git replace" an "--edit" mode. -* jc/fix-clone-single-starting-at-a-tag (2014-06-23) 1 commit - (merged to 'next' on 2014-07-02 at cc0c4b1) - + builtin/clone.c: detect a clone starting at a tag correctly + Will merge to 'master'. + + +* jk/replace-edit-raw (2014-06-25) 1 commit + (merged to 'next' on 2014-07-10 at b934bb0) + + replace: add a --raw mode for --edit + (this branch uses cc/replace-edit.) + + Teach "git replace --edit" mode a "--raw" option to allow + editing the bare-metal representation data of objects. Will merge to 'master'. -* mg/verify-commit (2014-06-23) 5 commits - (merged to 'next' on 2014-07-02 at 6d77bcf) - + t7510: test verify-commit - + t7510: exit for loop with test result - + verify-commit: scriptable commit signature verification - + gpg-interface: provide access to the payload - + gpg-interface: provide clear helper for struct signature_check +* ep/submodule-code-cleanup (2014-06-30) 1 commit + (merged to 'next' on 2014-07-10 at d4de30a) + + submodule.c: use the ARRAY_SIZE macro + + Will merge to 'master'. - Add 'verify-commit' to be used in a way similar to 'verify-tag' is - used. Further work on verifying the mergetags might be needed. + +* jk/strip-suffix (2014-06-30) 9 commits + (merged to 'next' on 2014-07-10 at e6cfa29) + + prepare_packed_git_one: refactor duplicate-pack check + + verify-pack: use strbuf_strip_suffix + + strbuf: implement strbuf_strip_suffix + + index-pack: use strip_suffix to avoid magic numbers + + use strip_suffix instead of ends_with in simple cases + + replace has_extension with ends_with + + implement ends_with via strip_suffix + + add strip_suffix function + + sha1_file: replace PATH_MAX buffer with strbuf in prepare_packed_git_one() Will merge to 'master'. -* dt/refs-check-refname-component-sse-fix (2014-07-08) 2 commits - (merged to 'next' on 2014-07-08 at 35b839c) - + refs: fix valgrind suppression file - + refs.c: handle REFNAME_REFSPEC_PATTERN at end of page +* jk/tag-contains (2014-06-30) 8 commits + - perf: add tests for tag --contains + - tag: use commit_contains + - commit: provide a fast multi-tip contains function + - string-list: add pos to iterator callback + - add functions for memory-efficient bitmaps + - paint_down_to_common: use prio_queue + - tag: factor out decision to stream tags + - tag: allow --sort with -n - Fixes to a topic that is already in 'master'. + Expecting a reroll. + + +* mg/fix-log-mergetag-color (2014-07-10) 1 commit + (merged to 'next' on 2014-07-14 at e90dba1) + + log: correctly identify mergetag signature verification status Will merge to 'master'. -* jk/skip-prefix (2014-06-20) 18 commits - (merged to 'next' on 2014-06-23 at cd387a6) - + http-push: refactor parsing of remote object names - + imap-send: use skip_prefix instead of using magic numbers - + use skip_prefix to avoid repeated calculations - + git: avoid magic number with skip_prefix - + fetch-pack: refactor parsing in get_ack - + fast-import: refactor parsing of spaces - + stat_opt: check extra strlen call - + daemon: use skip_prefix to avoid magic numbers - + fast-import: use skip_prefix for parsing input - + use skip_prefix to avoid repeating strings - + use skip_prefix to avoid magic numbers - + transport-helper: avoid reading past end-of-string - + fast-import: fix read of uninitialized argv memory - + apply: use skip_prefix instead of raw addition - + refactor skip_prefix to return a boolean - + avoid using skip_prefix as a boolean - + daemon: mark some strings as const - + parse_diff_color_slot: drop ofs parameter +* mk/merge-incomplete-files (2014-06-30) 2 commits + (merged to 'next' on 2014-07-10 at d1115f4) + + git-merge-file: do not add LF at EOF while applying unrelated change + + t6023-merge-file.sh: fix and mark as broken invalid tests Will merge to 'master'. -* jk/xstrfmt (2014-06-25) 11 commits - (merged to 'next' on 2014-06-25 at 5031d4e) - + setup_git_env(): introduce git_path_from_env() helper - (merged to 'next' on 2014-06-23 at 64f2558) - + unique_path: fix unlikely heap overflow - + walker_fetch: fix minor memory leak - + merge: use argv_array when spawning merge strategy - + sequencer: use argv_array_pushf - + setup_git_env: use git_pathdup instead of xmalloc + sprintf - + use xstrfmt to replace xmalloc + strcpy/strcat - + use xstrfmt to replace xmalloc + sprintf - + use xstrdup instead of xmalloc + strcpy - + use xstrfmt in favor of manual size calculations - + strbuf: add xstrfmt helper +* tb/crlf-tests (2014-07-08) 2 commits + (merged to 'next' on 2014-07-08 at 40764b7) + + t0027: combinations of core.autocrlf, core.eol and text + + t0025: rename the test files + + Will merge to 'master'. + + +* ak/profile-feedback-build (2014-07-08) 4 commits + (merged to 'next' on 2014-07-14 at c40e86e) + + Fix profile feedback with -jN and add profile-fast + + Run the perf test suite for profile feedback too + + Don't define away __attribute__ on gcc + + Use BASIC_FLAGS for profile feedback + + Will merge to 'master'. + + +* cb/filter-branch-prune-empty-degenerate-merges (2014-07-01) 1 commit + (merged to 'next' on 2014-07-10 at 860cfea) + + filter-branch: eliminate duplicate mapped parents + + Will merge to 'master'. + + +* cc/for-each-mergetag (2014-07-07) 1 commit + - commit: add for_each_mergetag() + (this branch is used by cc/replace-graft.) + + Will merge to 'next'. + + +* dt/cache-tree-repair (2014-07-14) 4 commits + - 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 'next'. + + +* jl/test-lint-scripts (2014-07-10) 2 commits + (merged to 'next' on 2014-07-14 at c03721c) + + t/Makefile: always test all lint targets when running tests + + t/Makefile: check helper scripts for non-portable shell commands too + + Will merge to 'master'. + + +* kb/hashmap-updates (2014-07-07) 4 commits + - hashmap: add string interning API + - hashmap: add simplified hashmap_get_from_hash() API + - hashmap: improve struct hashmap member documentation + - hashmap: factor out getting a hash code from a SHA1 + + Expecting a reroll ($gmane/252973 and possibly $gmane/252976). + + + +* zk/log-graph-showsig (2014-07-09) 1 commit + (merged to 'next' on 2014-07-14 at 4429c2e) + + log: fix indentation for --graph --show-signature + + The "--show-signature" option did not pay much attention to + "--graph". Will merge to 'master'. -* kb/perf-trace (2014-07-07) 17 commits +* cc/replace-graft (2014-07-07) 9 commits + - replace: add test for --graft with a mergetag + - replace: check mergetags when using --graft + - replace: add test for --graft with signed commit + - replace: remove signature when using --graft + - contrib: add convert-grafts-to-replace-refs.sh + - Documentation: replace: add --graft option + - replace: add test for --graft + - replace: add --graft option + - replace: cleanup redirection style in tests + (this branch uses cc/for-each-mergetag.) + + "git replace" learned a "--graft" option to rewrite parents of a + commit. + + +* kb/perf-trace (2014-07-13) 17 commits + - api-trace.txt: add trace API documentation - progress: simplify performance measurement by using getnanotime() - wt-status: simplify performance measurement by using getnanotime() - git: add performance tracing for git's main() function to debug scripts @@ -617,7 +683,6 @@ of the repositories listed at - trace: add infrastructure to augment trace output with additional info - sha1_file: change GIT_TRACE_PACK_ACCESS logging to use trace API - Documentation/git.txt: improve documentation of 'GIT_TRACE*' variables - - trace.h: suppress some sparse warnings and errors - trace: improve trace performance - trace: remove redundant printf format attribute - trace: consistently name the format parameter @@ -633,32 +698,34 @@ of the repositories listed at - implement submodule config cache for lookup of submodule names -* jl/submodule-tests (2014-07-07) 14 commits - - revert: add t3513 for submodule updates - - stash: add t3906 for submodule updates - - am: add t4255 for submodule updates - - cherry-pick: add t3512 for submodule updates - - pull: add t5572 for submodule updates - - rebase: add t3426 for submodule updates - - merge: add t7613 for submodule updates - - bisect: add t6041 for submodule updates - - reset: add t7112 for submodule updates - - read-tree: add t1013 for submodule updates - - apply: add t4137 for submodule updates - - checkout: call the new submodule update test framework - - submodules: add the lib-submodule-update.sh test library - - test-lib: add test_dir_is_empty() +* jl/submodule-tests (2014-07-14) 14 commits + (merged to 'next' on 2014-07-14 at 0c750bb) + + revert: add t3513 for submodule updates + + stash: add t3906 for submodule updates + + am: add t4255 for submodule updates + + cherry-pick: add t3512 for submodule updates + + pull: add t5572 for submodule updates + + rebase: add t3426 for submodule updates + + merge: add t7613 for submodule updates + + bisect: add t6041 for submodule updates + + reset: add t7112 for submodule updates + + read-tree: add t1013 for submodule updates + + apply: add t4137 for submodule updates + + checkout: call the new submodule update test framework + + submodules: add the lib-submodule-update.sh test library + + test-lib: add test_dir_is_empty() - Will merge to 'next'. + Will merge to 'master'. -* po/error-message-style (2014-06-16) 1 commit - - doc: state coding guideline for error message punctuation +* po/error-message-style (2014-07-10) 1 commit + (merged to 'next' on 2014-07-14 at ed17678) + + doc: give some guidelines for error messages - Expecting a reroll. + Will merge to 'master'. -* rs/ref-transaction (2014-06-20) 48 commits +* rs/ref-transaction (2014-07-14) 29 commits - 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 @@ -688,43 +755,8 @@ of the repositories listed at - 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 - - refs.c: change ref_transaction_update() to do error checking and return status - - refs.c: remove the onerr argument to ref_transaction_commit - - update-ref: use err argument to get error from ref_transaction_commit - - refs.c: make update_ref_write update a strbuf on failure - - refs.c: make ref_update_reject_duplicates take a strbuf argument for errors - - refs.c: log_ref_write should try to return meaningful errno - - refs.c: make resolve_ref_unsafe set errno to something meaningful on error - - refs.c: commit_packed_refs to return a meaningful errno on failure - - refs.c: make remove_empty_directories always set errno to something sane - - refs.c: verify_lock should set errno to something meaningful - - refs.c: make sure log_ref_setup returns a meaningful errno - - refs.c: add an err argument to repack_without_refs - - lockfile.c: make lock_file return a meaningful errno on failurei - - lockfile.c: add a new public function unable_to_lock_message - - refs.c: add a strbuf argument to ref_transaction_commit for error logging - - refs.c: allow passing NULL to ref_transaction_free - - refs.c: constify the sha arguments for ref_transaction_create|delete|update - - refs.c: ref_transaction_commit should not free the transaction - - refs.c: remove ref_transaction_rollback - - Portability workaround may be needed on top ($gmane/252496). - Updates in response to review comments from Michael ($gmane/253033) - may be needed for later parts, but the earlier parts look ready - for 'next'. - - -* jk/pretty-G-format-fixes (2014-06-25) 6 commits - (merged to 'next' on 2014-06-26 at 7138407) - + move "%G" format test from t7510 to t6006 - (merged to 'next' on 2014-06-20 at f504bbc) - + pretty: avoid reading past end-of-string with "%G" - + t7510: check %G* pretty-format output - + t7510: test a commit signed by an unknown key - + t7510: use consistent &&-chains in loop - + t7510: stop referring to master in later tests + (this branch uses rs/ref-transaction-0.) - Will merge to 'master'. * nd/split-index (2014-06-13) 32 commits @@ -761,6 +793,7 @@ of the repositories listed at + sequencer: do not update/refresh index if the lock cannot be held + ewah: delete unused ewah_read_mmap_native declaration + ewah: fix constness of ewah_read_mmap + (this branch is used by jc/reopen-lock-file.) An experiment to use two files (the base file and incremental changes relative to it) to represent the index to reduce I/O cost @@ -778,53 +811,6 @@ of the repositories listed at Will hold. -* sk/mingw-unicode-spawn-args (2014-06-16) 6 commits - (merged to 'next' on 2014-06-30 at c8f79d0) - + Win32: Unicode arguments (incoming) - + Win32: Unicode arguments (outgoing) - + MinGW: disable CRT command line globbing - + Win32: fix potential multi-threading issue - + Win32: simplify internal mingw_spawn* APIs - + Win32: let mingw_execve() return an int - (this branch uses sk/mingw-main and sk/mingw-uni-console.) - - Will merge to 'master'. - - -* sk/mingw-dirent (2014-06-09) 5 commits - (merged to 'next' on 2014-06-30 at ae9e2d6) - + Win32 dirent: improve dirent implementation - + Win32 dirent: clarify #include directives - + Win32 dirent: change FILENAME_MAX to MAX_PATH - + Win32 dirent: remove unused dirent.d_reclen member - + Win32 dirent: remove unused dirent.d_ino member - - Will merge to 'master'. - - -* sk/mingw-main (2014-06-10) 2 commits - (merged to 'next' on 2014-06-30 at 447cb50) - + mingw: avoid const warning - + Win32: move main macro to a function - (this branch is used by sk/mingw-uni-console and sk/mingw-unicode-spawn-args.) - - Will merge to 'master'. - - -* sk/mingw-uni-console (2014-06-16) 7 commits - (merged to 'next' on 2014-06-30 at f4fbc41) - + Win32: reliably detect console pipe handles - + Win32: fix broken pipe detection - + Win32: Thread-safe windows console output - + Win32: add Unicode conversion functions - + Win32: warn if the console font doesn't support Unicode - + Win32: detect console streams more reliably - + Win32: support Unicode console output - (this branch is used by sk/mingw-unicode-spawn-args; uses sk/mingw-main.) - - Will merge to 'master'. - - * mt/patch-id-stable (2014-06-10) 1 commit - patch-id: change default to stable -- 2.11.4.GIT