{"thread":{"id":"28757","subject":"What's cooking in git.git (Oct 2011, #09; Sun, 23)","startedAt":"2011-10-24T15:31:31Z","lastAt":"2011-10-25T00:07:27Z","messageCount":2,"participants":["Junio C Hamano","Jakub Narebski"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"178234","messageId":"7v39ei4d9o.fsf@alter.siamese.dyndns.org","threadId":"28757","inReplyTo":null,"subject":"What's cooking in git.git (Oct 2011, #09; Sun, 23)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-10-24T15:31:31Z","receivedAt":"2011-10-24T15:31:31Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been cooking.  Commits prefixed with '-' are\nonly in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'.\n\nIt probably is a good point to stop taking new topics and start\nswitching our focus to fixing bugs in the topics already in 'master'.\n\nHere are the repositories that have my integration branches:\n\nWith maint, master, next, pu, todo, html and man:\n\n        git://git.kernel.org/pub/scm/git/git.git\n        git://repo.or.cz/alt-git.git\n        https://code.google.com/p/git-core/\n        https://github.com/git/git\n\nWith only maint, master, html and man:\n\n        git://git.sourceforge.jp/gitroot/git-core/git.git\n        git://git-core.git.sourceforge.net/gitroot/git-core/git-core\n\nWith all the topics and integration branches but not todo, html or man:\n\n        https://github.com/gitster/git\n\nBy the way, I am planning to stop pushing the generated documentation\nbranches to the above repositories in the near term, as they are not\nsources. The only reason the source repository at k.org has hosted these\nbranches was because it was the only repository over there that was\nwritable by me; it was an ugly historical and administrative workaround\nand not a demonstration of the best practice.\n\nThey are pushed to their own separate repositories instead:\n\n        git://git.kernel.org/pub/scm/git/git-{htmldocs,manpages}.git/\n        git://repo.or.cz/git-{htmldocs,manpages}.git/\n        https://code.google.com/p/git-{htmldocs,manpages}.git/\n        https://github.com/gitster/git-{htmldocs,manpages}.git/\n\n--------------------------------------------------\n[New Topics]\n\n* nd/pretty-commit-log-message (2011-10-23) 2 commits\n - pretty.c: use original commit message if reencoding fails\n - pretty.c: free get_header() return value\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* cn/doc-config-bare-subsection (2011-10-16) 1 commit\n  (merged to 'next' on 2011-10-17 at a6412d4)\n + Documentation: update [section.subsection] to reflect what git does\n\n* jc/broken-ref-dwim-fix (2011-10-19) 3 commits\n  (merged to 'next' on 2011-10-19 at 40cad95)\n + resolve_ref(): report breakage to the caller without warning\n + resolve_ref(): expose REF_ISBROKEN flag\n + refs.c: move dwim_ref()/dwim_log() from sha1_name.c\n (this branch is tangled with jc/check-ref-format-fixup.)\n\nThis only takes good bits from the failed jc/check-ref-format-fixup topic\nand implements saner workaround for the recent breakage on the 'master'.\n\n* jc/maint-remove-renamed-ref (2011-10-12) 1 commit\n  (merged to 'next' on 2011-10-12 at 819c3e4)\n + branch -m/-M: remove undocumented RENAMED-REF\n\n* jc/make-tags (2011-10-18) 1 commit\n  (merged to 'next' on 2011-10-19 at b0b91bf)\n + Makefile: ask \"ls-files\" to list source files if available\n\n* jc/match-refs-clarify (2011-09-12) 2 commits\n  (merged to 'next' on 2011-10-19 at b295e1e)\n + rename \"match_refs()\" to \"match_push_refs()\"\n + send-pack: typofix error message\n\n* jc/unseekable-bundle (2011-10-13) 2 commits\n  (merged to 'next' on 2011-10-19 at 2978ee0)\n + bundle: add parse_bundle_header() helper function\n + bundle: allowing to read from an unseekable fd\n\n* jk/daemon-msgs (2011-10-15) 1 commit\n  (merged to 'next' on 2011-10-15 at 415cf53)\n + daemon: give friendlier error messages to clients\n (this branch is used by cb/daemon-permission-errors.)\n\n* jk/maint-pack-objects-compete-with-delete (2011-10-14) 2 commits\n  (merged to 'next' on 2011-10-15 at 49479e4)\n + downgrade \"packfile cannot be accessed\" errors to warnings\n + pack-objects: protect against disappearing packs\n\n* mh/ref-api (2011-10-16) 7 commits\n  (merged to 'next' on 2011-10-17 at 219000f)\n + clear_ref_cache(): inline function\n + write_ref_sha1(): only invalidate the loose ref cache\n + clear_ref_cache(): extract two new functions\n + clear_ref_cache(): rename parameter\n + invalidate_ref_cache(): expose this function in the refs API\n + invalidate_ref_cache(): take the submodule as parameter\n + invalidate_ref_cache(): rename function from invalidate_cached_refs()\n (this branch is used by mh/ref-api-2 and mh/ref-api-3.)\n\n* ph/transport-with-gitfile (2011-10-11) 5 commits\n  (merged to 'next' on 2011-10-12 at 6d58417)\n + Fix is_gitfile() for files too small or larger than PATH_MAX to be a gitfile\n  (merged to 'next' on 2011-10-06 at 891b8b6)\n + Add test showing git-fetch groks gitfiles\n + Teach transport about the gitfile mechanism\n + Learn to handle gitfiles in enter_repo\n + enter_repo: do not modify input\n\n* po/insn-editor (2011-10-17) 1 commit\n  (merged to 'next' on 2011-10-19 at cbf5e0b)\n + \"rebase -i\": support special-purpose editor to edit insn sheet\n\n* pw/p4-update (2011-10-17) 6 commits\n  (merged to 'next' on 2011-10-17 at f69f6cc)\n + git-p4: handle files with shell metacharacters\n + git-p4: keyword flattening fixes\n + git-p4: stop ignoring apple filetype\n + git-p4: recognize all p4 filetypes\n + git-p4: handle utf16 filetype properly\n + git-p4 tests: refactor and cleanup\n\n* sc/difftool-skip (2011-10-14) 2 commits\n  (merged to 'next' on 2011-10-14 at b91c581)\n + t7800: avoid arithmetic expansion notation\n  (merged to 'next' on 2011-10-11 at 38d7e84)\n + git-difftool: allow skipping file by typing 'n' at prompt\n\n* ss/inet-ntop (2011-10-18) 1 commit\n  (merged to 'next' on 2011-10-19 at 85469f6)\n + inet_ntop.c: Work around GCC 4.6's detection of uninitialized variables\n\n--------------------------------------------------\n[Stalled]\n\n* hv/submodule-merge-search (2011-10-13) 4 commits\n - submodule.c: make two functions static\n - allow multiple calls to submodule merge search for the same path\n - push: Don't push a repository with unpushed submodules\n - push: teach --recurse-submodules the on-demand option\n\nWhat the topic aims to achieve may make sense, but the implementation\nlooked somewhat suboptimal.\n\nThe fix-up at the tip queued on fg/submodule-auto-push topic has been\nmoved to this topic.\n\n* sr/transport-helper-fix-rfc (2011-07-19) 2 commits\n - t5800: point out that deleting branches does not work\n - t5800: document inability to push new branch with old content\n\nPerhaps 281eee4 (revision: keep track of the end-user input from the\ncommand line, 2011-08-25) would help.\n\n* jc/lookup-object-hash (2011-08-11) 6 commits\n - object hash: replace linear probing with 4-way cuckoo hashing\n - object hash: we know the table size is a power of two\n - object hash: next_size() helper for readability\n - pack-objects --count-only\n - object.c: remove duplicated code for object hashing\n - object.c: code movement for readability\n\nI do not think there is anything fundamentally wrong with this series, but\nthe risk of breakage far outweighs observed performance gain in one\nparticular workload.\n\n* jc/verbose-checkout (2011-10-16) 2 commits\n - checkout -v: give full status output after switching branches\n - checkout: move the local changes report to the end\n\nThis is just to leave a record that the reason why we do not do this not\nbecause we are incapable of coding this, but because it is not a good idea\nto do this. I suspect people who are new to git that might think they need\nit would soon realize the don't.\n\nWill keep in 'pu' as a showcase for a while and then will drop.\n\n--------------------------------------------------\n[Cooking]\n\n* tc/submodule-clone-name-detection (2011-10-21) 2 commits\n  (merged to 'next' on 2011-10-23 at c18af03)\n + submodule::module_clone(): silence die() message from module_name()\n + submodule: whitespace fix\n\n\"git submodule clone\" used to show unnecessary error message when\nsubmodule mapping from name to path is not found in .gitmodules file.\n\nWill merge to 'master'.\n\n* jm/maint-gitweb-filter-forks-fix (2011-10-21) 1 commit\n  (merged to 'next' on 2011-10-21 at debedcd)\n + gitweb: fix regression when filtering out forks\n\nWill merge to 'master' shortly.\n\n* lh/gitweb-site-html-head (2011-10-21) 1 commit\n  (merged to 'next' on 2011-10-23 at 65075df)\n + gitweb: provide a way to customize html headers\n\nWill merge to 'master' shortly.\n\n* mh/ref-api-3 (2011-10-19) 11 commits\n  (merged to 'next' on 2011-10-23 at 92e2d35)\n + is_refname_available(): reimplement using do_for_each_ref_in_array()\n + names_conflict(): simplify implementation\n + names_conflict(): new function, extracted from is_refname_available()\n + repack_without_ref(): reimplement using do_for_each_ref_in_array()\n + do_for_each_ref_in_array(): new function\n + do_for_each_ref(): correctly terminate while processesing extra_refs\n + add_ref(): take a (struct ref_entry *) parameter\n + create_ref_entry(): extract function from add_ref()\n + parse_ref_line(): add a check that the refname is properly formatted\n + repack_without_ref(): remove temporary\n + Rename another local variable name -> refname\n (this branch uses mh/ref-api-2.)\n\n* mm/mediawiki-author-fix (2011-10-20) 1 commit\n  (merged to 'next' on 2011-10-23 at 9f85b67)\n + git-remote-mediawiki: don't include HTTP login/password in author\n\nWill merge to 'master' shortly.\n\n* rr/revert-cherry-pick (2011-10-23) 5 commits\n - revert: simplify communicating command-line arguments\n - revert: allow mixed pick and revert instructions\n - revert: make commit subjects in insn sheet optional\n - revert: simplify getting commit subject in format_todo()\n - revert: free msg in format_todo()\n\nThe internals of \"git revert/cherry-pick\" has been further refactored to\nserve as the basis for the sequencer.\n\nWill merge to 'next'.\n\n* jn/libperl-git-config (2011-10-21) 2 commits\n  (merged to 'next' on 2011-10-21 at 76e2d4b)\n + Add simple test for Git::config_path() in t/t9700-perl-git.sh\n + libperl-git: refactor Git::config_*\n\nWill merge to 'master' shortly.\n\n* jc/check-ref-format-fixup (2011-10-19) 2 commits\n  (merged to 'next' on 2011-10-19 at 98981be)\n + Revert \"Restrict ref-like names immediately below $GIT_DIR\"\n  (merged to 'next' on 2011-10-15 at 8e89bc5)\n + Restrict ref-like names immediately below $GIT_DIR\n\nThis became a no-op except for the bottom one which is part of the other\ntopic now.\nWill discard once the other topic graduates to 'master'.\n\n* cb/daemon-permission-errors (2011-10-17) 2 commits\n - daemon: report permission denied error to clients\n - daemon: add tests\n\nThe tip commit might be loosening things a bit too much.\nWill keep in 'pu' until hearing a convincing argument for the patch.\n\n* kk/gitweb-side-by-side-diff (2011-10-17) 2 commits\n - gitweb: add a feature to show side-by-side diff\n - gitweb: change format_diff_line() to remove leading SP from $diff_class\n\nFun.\nWill keep in 'pu' until the planned re-roll comes.\n\n* mh/ref-api-2 (2011-10-17) 14 commits\n  (merged to 'next' on 2011-10-19 at cc89f0e)\n + resolve_gitlink_ref_recursive(): change to work with struct ref_cache\n + Pass a (ref_cache *) to the resolve_gitlink_*() helper functions\n + resolve_gitlink_ref(): improve docstring\n + get_ref_dir(): change signature\n + refs: change signatures of get_packed_refs() and get_loose_refs()\n + is_dup_ref(): extract function from sort_ref_array()\n + add_ref(): add docstring\n + parse_ref_line(): add docstring\n + is_refname_available(): remove the \"quiet\" argument\n + clear_ref_array(): rename from free_ref_array()\n + refs: rename parameters result -> sha1\n + refs: rename \"refname\" variables\n + struct ref_entry: document name member\n + cache.h: add comments for git_path() and git_path_submodule()\n (this branch is used by mh/ref-api-3.)\n\nIt is either merge this quickly to 'master' and hope there won't be any\nmore unexpected breakage that forces us to delay the release, or hold it\non 'next' until the next cycle. I am inclined to do the former, but not\nquite ready to commit to it yet.\n\n* dm/pack-objects-update (2011-10-20) 4 commits\n - pack-objects: don't traverse objects unnecessarily\n - pack-objects: rewrite add_descendants_to_write_order() iteratively\n - pack-objects: use unsigned int for counter and offset values\n - pack-objects: mark add_to_write_order() as inline\n\nNeed to re-read this before deciding what to do; it came a bit too late in\nthe cycle for a series that touches a seriously important part of the\nsystem.\n\n* jk/git-tricks (2011-10-21) 3 commits\n  (merged to 'next' on 2011-10-23 at 7c9bf71)\n + completion: match ctags symbol names in grep patterns\n + contrib: add git-jump script\n + contrib: add diff highlight script\n\n* jc/signed-commit (2011-10-21) 7 commits\n  (merged to 'next' on 2011-10-23 at 03eec25)\n + pretty: %G[?GS] placeholders\n + parse_signed_commit: really use the entire commit log message\n + test \"commit -S\" and \"log --show-signature\"\n + t7004: extract generic \"GPG testing\" bits\n + log: --show-signature\n + commit: teach --gpg-sign option\n + Split GPG interface into its own helper library\n\nThis is to replace the earlier \"signed push\" experiments.\nWill keep in 'next' during this cycle.\n\n* sg/complete-refs (2011-10-21) 9 commits\n - completion: remove broken dead code from __git_heads() and __git_tags()\n - completion: fast initial completion for config 'remote.*.fetch' value\n - completion: improve ls-remote output filtering in __git_refs_remotes()\n - completion: query only refs/heads/ in __git_refs_remotes()\n - completion: support full refs from remote repositories\n - completion: improve ls-remote output filtering in __git_refs()\n - completion: make refs completion consistent for local and remote repos\n - completion: optimize refs completion\n - completion: document __gitcomp()\n\nWill merge to 'next' but won't merge further until an Ack or two from\npeople who have worked on the completion in the past comes.\n\n* cn/fetch-prune (2011-10-15) 5 commits\n  (merged to 'next' on 2011-10-16 at 02a449e)\n + fetch: treat --tags like refs/tags/*:refs/tags/* when pruning\n + fetch: honor the user-provided refspecs when pruning refs\n + remote: separate out the remote_find_tracking logic into query_refspecs\n + t5510: add tests for fetch --prune\n + fetch: free all the additional refspecs\n\n\"git fetch --prune\" used to prune remote tracking branches by comparing\nwhat was actually fetched and what was configured to be fetched, which was\nwrong.\n\nWill merge to 'master' shortly.\n\n* jc/request-pull-show-head-4 (2011-10-15) 11 commits\n  (merged to 'next' on 2011-10-15 at 7e340ff)\n + fmt-merge-msg.c: Fix an \"dubious one-bit signed bitfield\" sparse error\n  (merged to 'next' on 2011-10-10 at 092175e)\n + environment.c: Fix an sparse \"symbol not declared\" warning\n + builtin/log.c: Fix an \"Using plain integer as NULL pointer\" warning\n  (merged to 'next' on 2011-10-07 at fcaeca0)\n + fmt-merge-msg: use branch.$name.description\n  (merged to 'next' on 2011-10-06 at fa5e0fe)\n + request-pull: use the branch description\n + request-pull: state what commit to expect\n + request-pull: modernize style\n + branch: teach --edit-description option\n + format-patch: use branch description in cover letter\n + branch: add read_branch_desc() helper function\n + Merge branch 'bk/ancestry-path' into jc/branch-desc\n\nAllow setting \"description\" for branches and use it to help communications\nbetween humans in various workflow elements.\n\nWill keep in 'next' during this cycle.\n"},{"id":"178257","messageId":"m3ipne53ze.fsf@localhost.localdomain","threadId":"28757","inReplyTo":"7v39ei4d9o.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Oct 2011, #09; Sun, 23)","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2011-10-25T00:07:27Z","receivedAt":"2011-10-25T00:07:27Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n[...]\n> By the way, I am planning to stop pushing the generated documentation\n> branches to the above repositories in the near term, as they are not\n> sources. The only reason the source repository at k.org has hosted these\n> branches was because it was the only repository over there that was\n> writable by me; it was an ugly historical and administrative workaround\n> and not a demonstration of the best practice.\n> \n> They are pushed to their own separate repositories instead:\n> \n>         git://git.kernel.org/pub/scm/git/git-{htmldocs,manpages}.git/\n>         git://repo.or.cz/git-{htmldocs,manpages}.git/\n>         https://code.google.com/p/git-{htmldocs,manpages}.git/\n>         https://github.com/gitster/git-{htmldocs,manpages}.git/\n\nJunio, don't forget to update MaintNotes (\"A note from maintainer\")\nwhen this happens, though.\n \n> * kk/gitweb-side-by-side-diff (2011-10-17) 2 commits\n>  - gitweb: add a feature to show side-by-side diff\n>  - gitweb: change format_diff_line() to remove leading SP from $diff_class\n\nNb. I have originally intended to wait for Kato for re-roll with\ncleaned up whitespace to be able to apply it and run it before doing\ndetailed review.  \n\nBut then I got sidetracked with noticing inefficiency in diff body\nline classification and Junio's proposal to fix it.  Thic change as\nwritten makes first patch in above series unnecessary.  But because of\na bit unnecessary change it was not trivial to resolve Kato's changes\non top of it.  This is 'gitweb/side-by-side-diff' branch\n\n  http://repo.or.cz/w/git/jnareb-git.git/patches/refs/heads/origin..refs/heads/gitweb/side-by-side-diff\n\n\nThen I have separated adding navigation from other changes, and\nbasically rewrote layout for side-by-side diff, with adding \"filler\"\nlines instead of box within box as in original submission.  \n\nWhile at it I have refactored HTML-formatting of chunk header lines\ninto separate subroutines, making format_diff_line much easier tor\nread.\n\nThis can be found in 'gitweb/side-by-side-diff-v2' branch\n\n  http://repo.or.cz/w/git/jnareb-git.git/patches/refs/heads/origin..refs/heads/gitweb/side-by-side-diff-v2\n\nNext I went back to Kato's box in box layout idea... kind of, as\ncontext lines are grouped together, and not output line by line.\n\nAlso I have added here subtle backround color: separate for pure add,\npure remove, and [supposed] change.  I think this makes side-by-side\ndiff more readable.\n\n  http://repo.or.cz/w/git/jnareb-git.git/patches/refs/heads/origin..refs/heads/gitweb/side-by-side-diff-v3\n\n> Fun.\n> Will keep in 'pu' until the planned re-roll comes.\n\nI am now working on layout using HTML and CSS which would allow to\nhave a bit of separation between left and right panes in side-by-side\ndiff, but use pure-CSS \"slantalicious\"[1] to join background color\nmarkers, e.g. a la http://meld.sourceforge.net/meld_file1.png\n\nMore fun!\n\n[1] http://meyerweb.com/eric/css/edge/slantastic/demo.html\n  \n-- \nJakub Narebski\n"}]}