{"thread":{"id":"29498","subject":"What's cooking in git.git (Jan 2012, #08; Tue, 31)","startedAt":"2012-02-01T07:19:58Z","lastAt":"2012-02-10T05:48:44Z","messageCount":9,"participants":["Junio C Hamano","Jakub Narebski","Nguyen Thai Ngoc Duy"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"183459","messageId":"7vlion3tr5.fsf@alter.siamese.dyndns.org","threadId":"29498","inReplyTo":null,"subject":"What's cooking in git.git (Jan 2012, #08; Tue, 31)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-02-01T07:19:58Z","receivedAt":"2012-02-01T07:19:58Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"What's cooking in git.git (Jan 2012, #08; Tue, 31)\n--------------------------------------------------\n\nHere are the topics that have been cooking.  Commits prefixed with '-' are\nonly in 'pu' (proposed updates) while commits prefixed with '+' are in\n'next'.\n\nAs promised in the recent couple of issues of \"What's cooking\", the first\nbatch of topics that have been cooking in 'next' are now in 'master'. The\ntip of 'next' hasn't been rewound yet, but it soon will after the second\nbatch of topics graduate.\n\nHere are the repositories that have my integration branches:\n\nWith maint, master, next, pu, todo:\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 and master:\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:\n\n        https://github.com/gitster/git\n\nThe preformatted documentation in HTML and man format are found in:\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* fc/zsh-completion (2012-01-30) 4 commits\n - (squash to previous?) completion: remove unused code\n - completion: simplify __git_remotes\n - (squash) completion-style\n - completion: be nicer with zsh\n\nSomehow only 2 out of 4-part series seem to have reached the list, missing\nthe other 2.\n\n* jc/maint-request-pull-for-tag (2012-01-31) 1 commit\n - request-pull: explicitly ask tags/$name to be pulled\n\nUsability improvement.\nWill merge to 'next'.\n\n* nd/find-pack-entry-recent-cache-invalidation (2012-01-31) 1 commit\n - find_pack_entry(): do not keep packed_git pointer locally\n\nReview comments sent.\n\n* nd/pack-objects-parseopt (2012-01-31) 1 commit\n - pack-objects: convert to use parse_options()\n\nReview comments sent.\n\n* tr/merge-edit-guidance (2012-01-31) 1 commit\n  (merged to 'next' on 2012-01-31 at bb678f7)\n + merge: add instructions to the commit message when editing\n\nWill merge to 'master' in the second batch.\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* ar/i18n-no-gettext (2012-01-27) 4 commits\n  (merged to 'next' on 2012-01-27 at 0ecf258)\n + i18n: Do not force USE_GETTEXT_SCHEME=fallthrough on NO_GETTEXT\n  (merged to 'next' on 2012-01-23 at 694a94e)\n + i18n: Make NO_GETTEXT imply fallthrough scheme in shell l10n\n + add a Makefile switch to avoid gettext translation in shell scripts\n + git-sh-i18n: restructure the logic to compute gettext.sh scheme\n\n* da/maint-mergetool-twoway (2012-01-23) 1 commit\n  (merged to 'next' on 2012-01-23 at f927323)\n + mergetool: Provide an empty file when needed\n\nCaters to GUI merge backends that cannot merge two files without\na base by giving them an empty file as a \"pretend\" common ancestor.\n\n* jc/advise-i18n (2011-12-22) 1 commit\n  (merged to 'next' on 2012-01-23 at 6447013)\n + i18n of multi-line advice messages\n\nAllow localization of advice messages that tend to be longer and\nmulti-line formatted. For now this is deliberately limited to advise()\ninterface and not vreportf() in general as touching the latter has\ninteractions with error() that has plumbing callers whose prefix \"error: \"\nshould never be translated.\n\n* jl/submodule-re-add (2012-01-24) 1 commit\n  (merged to 'next' on 2012-01-26 at 482553e)\n + submodule add: fix breakage when re-adding a deep submodule\n\n\"git submodule add\" forgot to recompute the name to be stored in .gitmodules\nwhen the module was once added to the superproject and already initialized.\n\n* ks/sort-wildcard-in-makefile (2012-01-22) 1 commit\n  (merged to 'next' on 2012-01-23 at e2e0c1d)\n + t/Makefile: Use $(sort ...) explicitly where needed\n\nt/Makefile is adjusted to prevent newer versions of GNU make from running\ntests in seemingly random order.\n\n* ld/git-p4-branches-and-labels (2012-01-20) 5 commits\n  (merged to 'next' on 2012-01-23 at 9020ec4)\n + git-p4: label import fails with multiple labels at the same changelist\n + git-p4: add test for p4 labels\n + git-p4: importing labels should cope with missing owner\n + git-p4: cope with labels with empty descriptions\n + git-p4: handle p4 branches and labels containing shell chars\n (this branch is used by va/git-p4-branch.)\n\n* nd/clone-detached (2012-01-24) 12 commits\n  (merged to 'next' on 2012-01-26 at 7b0cc8a)\n + clone: fix up delay cloning conditions\n  (merged to 'next' on 2012-01-23 at bee31c6)\n + push: do not let configured foreign-vcs permanently clobbered\n  (merged to 'next' on 2012-01-23 at 9cab64e)\n + clone: print advice on checking out detached HEAD\n + clone: allow --branch to take a tag\n + clone: refuse to clone if --branch points to bogus ref\n + clone: --branch=<branch> always means refs/heads/<branch>\n + clone: delay cloning until after remote HEAD checking\n + clone: factor out remote ref writing\n + clone: factor out HEAD update code\n + clone: factor out checkout code\n + clone: write detached HEAD in bare repositories\n + t5601: add missing && cascade\n\n\"git clone\" learned to detach the HEAD in the resulting repository when\nthe source repository's HEAD does not point to a branch.\n\n* rr/sequencer (2012-01-11) 2 commits\n  (merged to 'next' on 2012-01-23 at f349b56)\n + sequencer: factor code out of revert builtin\n + revert: prepare to move replay_action to header\n\nMoving large chunk of code out of cherry-pick/revert for later reuse,\nprimarily to prepare for the next cycle.\n\n* tr/grep-l-with-decoration (2012-01-23) 1 commit\n  (merged to 'next' on 2012-01-23 at 42b8795)\n + grep: fix -l/-L interaction with decoration lines\n\nUsing \"git grep -l/-L\" together with options -W or --break may not make\nmuch sense as the output is to only count the number of hits and there is\nno place for file breaks, but the latter options made \"-l/-L\" to miscount\nthe hits.\n\n* va/git-p4-branch (2012-01-26) 4 commits\n  (merged to 'next' on 2012-01-26 at e67c52a)\n + t9801: do not overuse test_must_fail\n + git-p4: Change p4 command invocation\n + git-p4: Add test case for complex branch import\n + git-p4: Search for parent commit on branch creation\n (this branch uses ld/git-p4-branches-and-labels.)\n\n--------------------------------------------------\n[Stalled]\n\n* jc/advise-push-default (2011-12-18) 1 commit\n - push: hint to use push.default=upstream when appropriate\n\nPeff had a good suggestion outlining an updated code structure so that\nsomebody new can try to dip his or her toes in the development. Any\ntakers?\n\nWaiting for a reroll.\n\n* ss/git-svn-prompt-sans-terminal (2012-01-04) 3 commits\n - fixup! 15eaaf4\n - git-svn, perl/Git.pm: extend Git::prompt helper for querying users\n  (merged to 'next' on 2012-01-05 at 954f125)\n + perl/Git.pm: \"prompt\" helper to honor GIT_ASKPASS and SSH_ASKPASS\n\nThe bottom one has been replaced with a rewrite based on comments from\nÆvar. The second one needs more work, both in perl/Git.pm and prompt.c, to\ngive precedence to tty over SSH_ASKPASS when terminal is available.\n\nWill defer till the next cycle.\n\n* nd/commit-ignore-i-t-a (2012-01-16) 2 commits\n - commit, write-tree: allow to ignore CE_INTENT_TO_ADD while writing trees\n - cache-tree: update API to take abitrary flags\n\nMay want to consider this as fixing an earlier UI mistake, and not as a\nfeature that devides the userbase.\n\nWill defer till the next cycle.\n\n--------------------------------------------------\n[Cooking]\n\n* bl/gitweb-project-filter (2012-01-31) 8 commits\n - gitweb: Make project search respect project_filter\n - gitweb: improve usability of projects search form\n - gitweb: place links to parent directories in page header\n - gitweb: show active project_filter in project_list page header\n - gitweb: limit links to alternate forms of project_list to active project_filter\n - gitweb: add project_filter to limit project list to a subdirectory\n - gitweb: prepare git_get_projects_list for use outside 'forks'.\n - gitweb: move hard coded .git suffix out of git_get_projects_list\n\nSeems to break test 9502.\n\n* rt/completion-branch-edit-desc (2012-01-29) 1 commit\n  (merged to 'next' on 2012-01-31 at a0195c8)\n + completion: --edit-description option for git-branch\n\n* jn/svn-fe (2012-01-27) 44 commits\n  (merged to 'next' on 2012-01-29 at 001a395)\n + vcs-svn/svndiff.c: squelch false \"unused\" warning from gcc\n + Merge branch 'svn-fe' of git://repo.or.cz/git/jrn into jn/svn-fe\n + vcs-svn: reset first_commit_done in fast_export_init\n + Merge branch 'db/text-delta' into svn-fe\n + vcs-svn: do not initialize report_buffer twice\n + Merge branch 'db/text-delta' into svn-fe\n + vcs-svn: avoid hangs from corrupt deltas\n + vcs-svn: guard against overflow when computing preimage length\n + Merge branch 'db/delta-applier' into db/text-delta\n + vcs-svn: implement text-delta handling\n + Merge branch 'db/delta-applier' into db/text-delta\n + Merge branch 'db/delta-applier' into svn-fe\n + vcs-svn: cap number of bytes read from sliding view\n + test-svn-fe: split off \"test-svn-fe -d\" into a separate function\n + vcs-svn: let deltas use data from preimage\n + vcs-svn: let deltas use data from postimage\n + vcs-svn: verify that deltas consume all inline data\n + vcs-svn: implement copyfrom_data delta instruction\n + vcs-svn: read instructions from deltas\n + vcs-svn: read inline data from deltas\n + vcs-svn: read the preimage when applying deltas\n + vcs-svn: parse svndiff0 window header\n + vcs-svn: skeleton of an svn delta parser\n + vcs-svn: make buffer_read_binary API more convenient\n + vcs-svn: learn to maintain a sliding view of a file\n + Makefile: list one vcs-svn/xdiff object or header per line\n + Merge branch 'db/svn-fe-code-purge' into svn-fe\n + vcs-svn: drop obj_pool\n + vcs-svn: drop treap\n + vcs-svn: drop string_pool\n + vcs-svn: pass paths through to fast-import\n + Merge branch 'db/strbufs-for-metadata' into db/svn-fe-code-purge\n + Merge branch 'db/length-as-hash' (early part) into db/svn-fe-code-purge\n + Merge branch 'db/vcs-svn-incremental' into svn-fe\n + vcs-svn: avoid using ls command twice\n + vcs-svn: use mark from previous import for parent commit\n + vcs-svn: handle filenames with dq correctly\n + vcs-svn: quote paths correctly for ls command\n + vcs-svn: eliminate repo_tree structure\n + vcs-svn: add a comment before each commit\n + vcs-svn: save marks for imported commits\n + vcs-svn: use higher mark numbers for blobs\n + vcs-svn: set up channel to read fast-import cat-blob response\n + Merge commit 'v1.7.5' into svn-fe\n\n\"vcs-svn\"/\"svn-fe\" learned to read dumps with svn-deltas and support\nincremental imports.\n\nWill merge to 'master' in the second batch.\n\n* jc/split-blob (2012-01-24) 6 commits\n - chunked-object: streaming checkout\n - chunked-object: fallback checkout codepaths\n - bulk-checkin: support chunked-object encoding\n - bulk-checkin: allow the same data to be multiply hashed\n - new representation types in the packstream\n - varint-in-pack: refactor varint encoding/decoding\n\nNot ready.\n\nI finished the streaming checkout codepath, but as explained in 127b177\n(bulk-checkin: support chunked-object encoding, 2011-11-30), these are\nstill early steps of a long and painful journey. At least pack-objects and\nfsck need to learn the new encoding for the series to be usable locally,\nand then index-pack/unpack-objects needs to learn it to be used remotely.\n\nGiven that I heard a lot of noise that people want large files, and that I\nwas asked by somebody at GitTogether'11 privately for an advice on how to\npay developers (not me) to help adding necessary support, I am somewhat\ndissapointed that the original patch series that was sent almost two\nmonths ago still remains here without much comments and updates from the\ndeveloper community. I even made the interface to the logic that decides\nwhere to split chunks easily replaceable, and I deliberately made the\nlogic in the original patch extremely stupid to entice others, especially\nthe \"bup\" fanboys, to come up with a better logic, thinking that giving\npeople an easy target to shoot for, they may be encouraged to help\nout. The plan is not working :-(.\n\n* jc/pull-signed-tag (2012-01-23) 1 commit\n  (merged to 'next' on 2012-01-23 at 4257553)\n + merge: use editor by default in interactive sessions\n\n\"git merge\" in an interactive session learned to spawn the editor by\ndefault to let the user edit the auto-generated merge message, to\nencourage people to explain their merges better. Legacy scripts can\nexport MERGE_AUTOEDIT=no to retain the historical behaviour.\n\nWill merge to 'master' in the second batch and deal with any fallout in\n'master'.\n\n--------------------------------------------------\n[Discarded]\n\n* mh/ref-api-rest (2011-12-12) 35 commits\n . repack_without_ref(): call clear_packed_ref_cache()\n . read_packed_refs(): keep track of the directory being worked in\n . is_refname_available(): query only possibly-conflicting references\n . refs: read loose references lazily\n . read_loose_refs(): take a (ref_entry *) as argument\n . struct ref_dir: store a reference to the enclosing ref_cache\n . sort_ref_dir(): take (ref_entry *) instead of (ref_dir *)\n . do_for_each_ref_in_dir*(): take (ref_entry *) instead of (ref_dir *)\n . add_entry(): take (ref_entry *) instead of (ref_dir *)\n . search_ref_dir(): take (ref_entry *) instead of (ref_dir *)\n . find_containing_direntry(): use (ref_entry *) instead of (ref_dir *)\n . add_ref(): take (ref_entry *) instead of (ref_dir *)\n . read_packed_refs(): take (ref_entry *) instead of (ref_dir *)\n . find_ref(): take (ref_entry *) instead of (ref_dir *)\n . is_refname_available(): take (ref_entry *) instead of (ref_dir *)\n . get_loose_refs(): return (ref_entry *) instead of (ref_dir *)\n . get_packed_refs(): return (ref_entry *) instead of (ref_dir *)\n . refs: wrap top-level ref_dirs in ref_entries\n . get_ref_dir(): keep track of the current ref_dir\n . do_for_each_ref(): only iterate over the subtree that was requested\n . refs: sort ref_dirs lazily\n . sort_ref_dir(): do not sort if already sorted\n . refs: store references hierarchically\n . refs.c: rename ref_array -> ref_dir\n . struct ref_entry: nest the value part in a union\n . check_refname_component(): return 0 for zero-length components\n . free_ref_entry(): new function\n . refs.c: reorder definitions more logically\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_arrays(): new function\n . do_for_each_ref_in_array(): new function\n . do_for_each_ref(): correctly terminate while processesing extra_refs\n\nWill be re-rolled. Discarded without prejudice.\n\n* mm/zsh-completion-regression-fix (2012-01-17) 1 commit\n  (merged to 'next' on 2012-01-23 at 7bc2e0a)\n + bash-completion: don't add quoted space for ZSH (fix regression)\n\nSuperseded by a better fix already in 'master'.\n"},{"id":"183467","messageId":"m3fweudaf6.fsf@localhost.localdomain","threadId":"29498","inReplyTo":"7vlion3tr5.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jan 2012, #08; Tue, 31)","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2012-02-01T12:07:14Z","receivedAt":"2012-02-01T12:07:14Z","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> [Cooking]\n> \n> * bl/gitweb-project-filter (2012-01-31) 8 commits\n>  - gitweb: Make project search respect project_filter\n>  - gitweb: improve usability of projects search form\n>  - gitweb: place links to parent directories in page header\n>  - gitweb: show active project_filter in project_list page header\n>  - gitweb: limit links to alternate forms of project_list to active project_filter\n>  - gitweb: add project_filter to limit project list to a subdirectory\n>  - gitweb: prepare git_get_projects_list for use outside 'forks'.\n>  - gitweb: move hard coded .git suffix out of git_get_projects_list\n> \n> Seems to break test 9502.\n\nHmmm... strange.  I have applied my patches on top of earlier version\nof project_filter commits:\n\n   - gitweb: Make project search respect project_filter\n   - gitweb: Improve projects search form\n   - gitweb: place links to parent directories in page header\n   - gitweb: add project_filter to limit project list to a subdirectory\n\nand all gitweb tests passes.\n\nI will investigate.\n\n-- \nJakub Narebski\n"},{"id":"183494","messageId":"7v39au47dt.fsf@alter.siamese.dyndns.org","threadId":"29498","inReplyTo":"m3fweudaf6.fsf@localhost.localdomain","subject":"Re: What's cooking in git.git (Jan 2012, #08; Tue, 31)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-02-01T20:37:50Z","receivedAt":"2012-02-01T20:37:50Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jakub Narebski <jnareb@gmail.com> writes:\n\n> Hmmm... strange.  I have applied my patches on top of earlier version\n> of project_filter commits:\n>\n>    - gitweb: Make project search respect project_filter\n>    - gitweb: Improve projects search form\n>    - gitweb: place links to parent directories in page header\n>    - gitweb: add project_filter to limit project list to a subdirectory\n>\n> and all gitweb tests passes.\n>\n> I will investigate.\n\nI am getting \n\n    7ad1b64084ff003f71fe749a3e5a74d071a193d8 is the first bad commit\n    commit 7ad1b64084ff003f71fe749a3e5a74d071a193d8\n    Author: Bernhard R. Link <brl+git@mail.brlink.eu>\n    Date:   Mon Jan 30 21:05:47 2012 +0100\n\n        gitweb: move hard coded .git suffix out of git_get_projects_list\n\n*** t9502-gitweb-standalone-parse-output.sh ***\nok 1 - setup\nok 2 - snapshot: full sha1\nok 3 - snapshot: shortened sha1\nok 4 - snapshot: almost full sha1\nok 5 - snapshot: HEAD\nok 6 - snapshot: short branch name (master)\nok 7 - snapshot: short tag name (first)\nok 8 - snapshot: full branch name (refs/heads/master)\nok 9 - snapshot: full tag name (refs/tags/first)\nok 10 - snapshot: hierarchical branch name (xx/test)\nok 11 - forks: setup\nok 12 - forks: not skipped unless \"forks\" feature enabled\nok 13 - forks: forks skipped if \"forks\" feature enabled\nnot ok - 14 forks: \"forks\" action for forked repository\n#\n#               gitweb_run \"p=foo.git;a=forks\" &&\n#               grep -q \">foo/foo-forked\\\\.git<\" gitweb.body &&\n#               grep -q \">fork of foo<\"          gitweb.body\n#\nok 15 - forks: can access forked repository\nok 16 - forks: project_index lists all projects (incl. forks)\n# failed 1 among 16 test(s)\n\nThe output file gitweb.body has this in it:\n\n<div class=\"page_body\">\n<br /><br />\n404 - No forks found\n<br />\n</div>\n<div class=\"page_footer\">\n"},{"id":"183495","messageId":"7vty3a2sf7.fsf@alter.siamese.dyndns.org","threadId":"29498","inReplyTo":"7v39au47dt.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jan 2012, #08; Tue, 31)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-02-01T20:46:20Z","receivedAt":"2012-02-01T20:46:20Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> I am getting \n>\n>     7ad1b64084ff003f71fe749a3e5a74d071a193d8 is the first bad commit\n>     commit 7ad1b64084ff003f71fe749a3e5a74d071a193d8\n>     Author: Bernhard R. Link <brl+git@mail.brlink.eu>\n>     Date:   Mon Jan 30 21:05:47 2012 +0100\n>\n>         gitweb: move hard coded .git suffix out of git_get_projects_list\n>\n> *** t9502-gitweb-standalone-parse-output.sh ***\n> ...\n> not ok - 14 forks: \"forks\" action for forked repository\n> #\n> #               gitweb_run \"p=foo.git;a=forks\" &&\n> #               grep -q \">foo/foo-forked\\\\.git<\" gitweb.body &&\n> #               grep -q \">fork of foo<\"          gitweb.body\n> #\n> ok 15 - forks: can access forked repository\n> ok 16 - forks: project_index lists all projects (incl. forks)\n> # failed 1 among 16 test(s)\n>\n> The output file gitweb.body has this in it:\n>\n> <div class=\"page_body\">\n> <br /><br />\n> 404 - No forks found\n> <br />\n> </div>\n> <div class=\"page_footer\">\n\nAnd of course the culprit turns out to be that \"cute\" expression.\n\n-- >8 --\nSubject: gitweb: do not use assignment with regexp replace in parameter\n\nA recent patch made the code to generate a parameter to git_get_projects_list\na bit too cute, by introducing a new variable, assigning a value to it, and\nthen munging that value with s/// replacement, all in the parameter list.\n\nThe whole expression returns the number of replacements, not the resulting\nvalue in the variable after s/// operation.\n\nSplit them into separate expressions, which also would make the resulting\nlines shorter and less taxing on the brain. \n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n gitweb/gitweb.perl |    8 ++++++--\n 1 files changed, 6 insertions(+), 2 deletions(-)\n\ndiff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl\nindex b764d51..e074cd7 100755\n--- a/gitweb/gitweb.perl\n+++ b/gitweb/gitweb.perl\n@@ -6003,7 +6003,9 @@ sub git_forks {\n \t\tdie_error(400, \"Unknown order parameter\");\n \t}\n \n-\tmy @list = git_get_projects_list((my $filter = $project) =~ s/\\.git$//);\n+\tmy $filter = $project;\n+\t$filter =~ s/\\.git$//;\n+\tmy @list = git_get_projects_list($filter);\n \tif (!@list) {\n \t\tdie_error(404, \"No forks found\");\n \t}\n@@ -6062,7 +6064,9 @@ sub git_summary {\n \n \tif ($check_forks) {\n \t\t# find forks of a project\n-\t\t@forklist = git_get_projects_list((my $filter = $project) =~ s/\\.git$//);\n+\t\tmy $filter = $project;\n+\t\t$filter =~ s/\\.git$//;\n+\t\t@forklist = git_get_projects_list($filter);\n \t\t# filter out forks of forks\n \t\t@forklist = filter_forks_from_projects_list(\\@forklist)\n \t\t\tif (@forklist);\n"},{"id":"183541","messageId":"7vehudzwzp.fsf@alter.siamese.dyndns.org","threadId":"29498","inReplyTo":"7vty3a2sf7.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jan 2012, #08; Tue, 31)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-02-02T04:21:14Z","receivedAt":"2012-02-02T04:21:14Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> And of course the culprit turns out to be that \"cute\" expression.\n>\n> -- >8 --\n> Subject: gitweb: do not use assignment with regexp replace in parameter\n>\n> A recent patch made the code to generate a parameter to git_get_projects_list\n> a bit too cute, by introducing a new variable, assigning a value to it, and\n> then munging that value with s/// replacement, all in the parameter list.\n>\n> The whole expression returns the number of replacements, not the resulting\n> value in the variable after s/// operation.\n>\n> Split them into separate expressions, which also would make the resulting\n> lines shorter and less taxing on the brain. \n>\n> Signed-off-by: Junio C Hamano <gitster@pobox.com>\n\nI've squashed this in to the offending commit and merged the result to the\n'next' branch.\n\nThanks.\n"},{"id":"184314","messageId":"7vsjijs9rq.fsf@alter.siamese.dyndns.org","threadId":"29498","inReplyTo":"7vlion3tr5.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jan 2012, #08; Tue, 31)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-02-10T02:27:21Z","receivedAt":"2012-02-10T02:27:21Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> What's cooking in git.git (Jan 2012, #08; Tue, 31)\n> --------------------------------------------------\n> ...\n> [Graduated to \"master\"]\n>\n> * nd/clone-detached (2012-01-24) 12 commits\n>   (merged to 'next' on 2012-01-26 at 7b0cc8a)\n>  + clone: fix up delay cloning conditions\n>   (merged to 'next' on 2012-01-23 at bee31c6)\n>  + push: do not let configured foreign-vcs permanently clobbered\n>   (merged to 'next' on 2012-01-23 at 9cab64e)\n>  + clone: print advice on checking out detached HEAD\n>  + clone: allow --branch to take a tag\n>  + clone: refuse to clone if --branch points to bogus ref\n>  + clone: --branch=<branch> always means refs/heads/<branch>\n>  + clone: delay cloning until after remote HEAD checking\n>  + clone: factor out remote ref writing\n>  + clone: factor out HEAD update code\n>  + clone: factor out checkout code\n>  + clone: write detached HEAD in bare repositories\n>  + t5601: add missing && cascade\n>\n> \"git clone\" learned to detach the HEAD in the resulting repository when\n> the source repository's HEAD does not point to a branch.\n\nIt turns out that this series, as a side effect, fixes a long-standing bug\nthat the --branch option cannot be used with the --mirror option.\n\nI am tempted to merge it also to 1.7.9.1 maintenance track. The issue is\nminor (you can always clone with --mirror and then switch the branch with\n\"checkout\") and it does not look like it warrants further backpointing to\n1.7.8 and older releases, though.\n\nComments and/or objections?\n"},{"id":"184321","messageId":"7vhayzs51s.fsf@alter.siamese.dyndns.org","threadId":"29498","inReplyTo":"7vsjijs9rq.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jan 2012, #08; Tue, 31)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-02-10T04:09:19Z","receivedAt":"2012-02-10T04:09:19Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> It turns out that this series, as a side effect, fixes a long-standing bug\n> that the --branch option cannot be used with the --mirror option.\n>\n> I am tempted to merge it also to 1.7.9.1 maintenance track. The issue is\n> minor (you can always clone with --mirror and then switch the branch with\n> \"checkout\") and it does not look like it warrants further backpointing to\n> 1.7.8 and older releases, though.\n>\n> Comments and/or objections?\n\nReplying to myself.\n\nRegardless of \"'refs/heads/$branch' is not found because we do not look\nfor in the right place\" issue, shouldn't the use of the --mirror without\nthe --bare option forbidden or at least warned about?\n\nCloning as --mirror, with a working tree with a current branch, would mean\nthe next fetch would directly try to update it by overwriting.  We do pass\nthe --update-head-ok from pull, so \"git pull\" in such a repository should\nbe \"sort of\" safe, as long as the repository is never used to create its\nown commits on whatever local branches set to be overwritten by --mirror,\nbut still I have this gut feeling that such an arrangement should at least\nbe discouraged.\n\nComments and/or opinions?\n"},{"id":"184324","messageId":"CACsJy8B_nsZnSarbRaBoxviK1xa_PVP0-DbnMiP9HkwzrztfJg@mail.gmail.com","threadId":"29498","inReplyTo":"7vhayzs51s.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jan 2012, #08; Tue, 31)","fromName":"Nguyen Thai Ngoc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2012-02-10T04:43:23Z","receivedAt":"2012-02-10T04:43:23Z","isPatch":false,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"2012/2/10 Junio C Hamano <gitster@pobox.com>:\n> Junio C Hamano <gitster@pobox.com> writes:\n>\n>> It turns out that this series, as a side effect, fixes a long-standing bug\n>> that the --branch option cannot be used with the --mirror option.\n>>\n>> I am tempted to merge it also to 1.7.9.1 maintenance track. The issue is\n>> minor (you can always clone with --mirror and then switch the branch with\n>> \"checkout\") and it does not look like it warrants further backpointing to\n>> 1.7.8 and older releases, though.\n>>\n>> Comments and/or objections?\n\nNo objections. Does it fix a failed test? If not, should we add a test\nto record this side effect fix?\n\n> Replying to myself.\n>\n> Regardless of \"'refs/heads/$branch' is not found because we do not look\n> for in the right place\" issue, shouldn't the use of the --mirror without\n> the --bare option forbidden or at least warned about?\n\n--mirror implies --bare in cmd_clone() if I read it correctly.\n-- \nDuy\n"},{"id":"184326","messageId":"7v8vkbs0g3.fsf@alter.siamese.dyndns.org","threadId":"29498","inReplyTo":"CACsJy8B_nsZnSarbRaBoxviK1xa_PVP0-DbnMiP9HkwzrztfJg@mail.gmail.com","subject":"Re: What's cooking in git.git (Jan 2012, #08; Tue, 31)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-02-10T05:48:44Z","receivedAt":"2012-02-10T05:48:44Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Nguyen Thai Ngoc Duy <pclouds@gmail.com> writes:\n\n> No objections. Does it fix a failed test? If not, should we add a test\n> to record this side effect fix?\n\nNo, it was just \"I tried this and it did not work\" reported elsewhere, and\nit is not v1.7.9 regression. Having seen a failure by a real user, having\na test would be a good idea to protect the fix from regressing.\n\nI actually wish that the commit 9e58504 (clone: --branch=<branch> always\nmeans refs/heads/<branch>, 2012-01-16) wasn't taken hostage to the earlier\nchanges that add new feature (addition of --single-branch and delaying of\nthe cloning before checking the remote HEAD); which would have been an\neasier sell without violating the usual \"no new features to maintenance\ntrack\".  And the thing is, I do not find this grave enough an issue that\ndeserves a separate implementation of a fix to be queued to maintenance\ntracks.\n\n> --mirror implies --bare in cmd_clone() if I read it correctly.\n\nYeah, what was I thinking... feeling stupid.\n\nThanks.\n"}]}