Re: What's cooking in git.git (Mar 2014, #07; Fri, 28)
Duy Nguyen writes: > On Sat, Mar 29, 2014 at 5:21 AM, Junio C Hamano wrote: >> * nd/gc-aggressive (2014-03-17) 4 commits >> - gc --aggressive: three phase repacking >> - gc --aggressive: make --depth configurable >> - pack-objects: support --keep >> - environment.c: fix constness for odb_pack_keep() > > Using --before=1.year.ago my way does not keep all recent chains short > because commit time is unreliable. But even with better recent object > selection, the performance gain is still within noise level. I suggest > we keep " gc --aggressive: make --depth configurable" and drop the > rest. I think the three-phase thing may not be so well conceived or cooked, but the other three looked like reasonable changes, although it would have been easier to say so if "pack-objects --keep" were done without a new buffer of size PATH_MAX ;-) Let's do the const and --depth and discard the other two. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: What's cooking in git.git (Mar 2014, #07; Fri, 28)
On 03/31/2014 07:56 PM, Ronnie Sahlberg wrote: > I am new to git, so sorry If I overlooked something. > > I think there might be a race in ref_transaction_commit() when > deleting references. > > /* Perform deletes now that updates are safely completed */ > for (i = 0; i < n; i++) { > struct ref_update *update = updates[i]; > > if (update->lock) { > delnames[delnum++] = update->lock->ref_name; > ret |= delete_ref_loose(update->lock, update->type); > } > } > > ret |= repack_without_refs(delnames, delnum); > for (i = 0; i < delnum; i++) > unlink_or_warn(git_path("logs/%s", delnames[i])); > > These two blocks should be reordered so that you first delete the > actual refs first, while holding the lock and then release the lock > afterward ? I think what you suggest is what is already being done. The locks of references that are being deleted are not released until a few lines after the code that you quoted: > for (i = 0; i < n; i++) > if (updates[i]->lock) > unlock_ref(updates[i]->lock); Before the code that you quoted, some locks are released, but only for references being updated (not those being deleted). But maybe I misunderstand your critique. By the way, there *is* a race here, but it is a subtler one involving the interaction between packed and loose references when references are deleted. Michael -- Michael Haggerty mhag...@alum.mit.edu http://softwareswirl.blogspot.com/ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: What's cooking in git.git (Mar 2014, #07; Fri, 28)
(now without HTML formatting) I am new to git, so sorry If I overlooked something. I think there might be a race in ref_transaction_commit() when deleting references. /* Perform deletes now that updates are safely completed */ for (i = 0; i < n; i++) { struct ref_update *update = updates[i]; if (update->lock) { delnames[delnum++] = update->lock->ref_name; ret |= delete_ref_loose(update->lock, update->type); } } ret |= repack_without_refs(delnames, delnum); for (i = 0; i < delnum; i++) unlink_or_warn(git_path("logs/%s", delnames[i])); These two blocks should be reordered so that you first delete the actual refs first, while holding the lock and then release the lock afterward ? On Fri, Mar 28, 2014 at 4:23 PM, Michael Haggerty wrote: > On 03/28/2014 11:21 PM, Junio C Hamano wrote: >> Here are the topics that have been cooking. Commits prefixed with >> '-' are only in 'pu' (proposed updates) while commits prefixed with >> '+' are in 'next'. > > Junio, > > Have you overlooked my ref-transactions series [1], or just not gotten > to it yet? > > If you would like a version of the series that already addresses Brad > King's comments, you can get it from my GitHub fork [2], the > "ref-transactions" branch. I'd be happy to post a v3 to the list if you > prefer, but the only changes since v2 were to a commit message and a > comment so it seems like overkill. > > Michael > > [1] http://thread.gmane.org/gmane.comp.version-control.git/244857 > [2] https://github.com/mhagger/git > > -- > Michael Haggerty > mhag...@alum.mit.edu > http://softwareswirl.blogspot.com/ > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: What's cooking in git.git (Mar 2014, #07; Fri, 28)
Michael Haggerty writes: > On 03/28/2014 11:21 PM, Junio C Hamano wrote: >> Here are the topics that have been cooking. Commits prefixed with >> '-' are only in 'pu' (proposed updates) while commits prefixed with >> '+' are in 'next'. > > Junio, > > Have you overlooked my ref-transactions series [1], or just not gotten > to it yet? Mixture of 20% of "too busy" and 80% procrastination, trusting that an important and interesting topic will get a few rounds of reviews under competent sets of eyes before I get to it ;-) > If you would like a version of the series that already addresses Brad > King's comments, you can get it from my GitHub fork [2], the > "ref-transactions" branch. I'd be happy to post a v3 to the list if you > prefer, but the only changes since v2 were to a commit message and a > comment so it seems like overkill. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: What's cooking in git.git (Mar 2014, #07; Fri, 28)
On Sat, Mar 29, 2014 at 5:21 AM, Junio C Hamano wrote: > * nd/gc-aggressive (2014-03-17) 4 commits > - gc --aggressive: three phase repacking > - gc --aggressive: make --depth configurable > - pack-objects: support --keep > - environment.c: fix constness for odb_pack_keep() Using --before=1.year.ago my way does not keep all recent chains short because commit time is unreliable. But even with better recent object selection, the performance gain is still within noise level. I suggest we keep " gc --aggressive: make --depth configurable" and drop the rest. -- Duy -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: What's cooking in git.git (Mar 2014, #07; Fri, 28)
On 28.03.2014, at 23:21, Junio C Hamano wrote: [...] > * ap/remote-hg-skip-null-bookmarks (2014-03-25) 1 commit > (merged to 'next' on 2014-03-25 at a8cd922) > + remote-hg: do not fail on invalid bookmarks > > Will merge to 'master'. Just got back and had a chance to look at the patch you queued. It looks good to me. Considering it is already scheduled to go into master, I'll assume no further work from me on this is needed. If I am wrong on that, please let me know. Max signature.asc Description: Message signed with OpenPGP using GPGMail
Re: What's cooking in git.git (Mar 2014, #07; Fri, 28)
On 03/28/2014 11:21 PM, Junio C Hamano wrote: > Here are the topics that have been cooking. Commits prefixed with > '-' are only in 'pu' (proposed updates) while commits prefixed with > '+' are in 'next'. Junio, Have you overlooked my ref-transactions series [1], or just not gotten to it yet? If you would like a version of the series that already addresses Brad King's comments, you can get it from my GitHub fork [2], the "ref-transactions" branch. I'd be happy to post a v3 to the list if you prefer, but the only changes since v2 were to a commit message and a comment so it seems like overkill. Michael [1] http://thread.gmane.org/gmane.comp.version-control.git/244857 [2] https://github.com/mhagger/git -- Michael Haggerty mhag...@alum.mit.edu http://softwareswirl.blogspot.com/ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
What's cooking in git.git (Mar 2014, #07; Fri, 28)
Here are the topics that have been cooking. Commits prefixed with '-' are only in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'. More topics merged to 'master', many of which are fallouts from GSoC microprojects. 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"] * ah/doc-gitk-config (2014-03-20) 1 commit (merged to 'next' on 2014-03-20 at d671b60) + Documentation/gitk: document the location of the configulation file * bg/rebase-off-of-previous-branch (2014-03-19) 1 commit (merged to 'next' on 2014-03-21 at 916b759) + rebase: allow "-" short-hand for the previous branch "git rebase" learned to interpret a lone "-" as "@{-1}", the branch that we were previously on. * bp/commit-p-editor (2014-03-18) 7 commits (merged to 'next' on 2014-03-21 at 23b6b06) + run-command: mark run_hook_with_custom_index as deprecated + merge hook tests: fix and update tests + merge: fix GIT_EDITOR override for commit hook + commit: fix patch hunk editing with "commit -p -m" + test patch hunk editing with "commit -p -m" + merge hook tests: use 'test_must_fail' instead of '!' + merge hook tests: fix missing '&&' in test When it is not necessary to edit a commit log message (e.g. "git commit -m" is given a message without specifying "-e"), we used to disable the spawning of the editor by overriding GIT_EDITOR, but this means all the uses of the editor, other than to edit the commit log message, are also affected. * fr/add-interactive-argv-array (2014-03-18) 1 commit (merged to 'next' on 2014-03-20 at 9d65f3d) + add: use struct argv_array in run_add_interactive() * jk/pack-bitmap (2014-03-17) 1 commit (merged to 'next' on 2014-03-20 at bba6246) + pack-objects: turn off bitmaps when skipping objects Instead of dying when asked to (re)pack with the reachability bitmap when a bitmap cannot be built, just (re)pack without producing a bitmap in such a case, with a warning. * jk/pack-bitmap-progress (2014-03-17) 2 commits (merged to 'next' on 2014-03-20 at c7a83f9) + pack-objects: show reused packfile objects in "Counting objects" + pack-objects: show progress for reused packfiles The progress output while repacking and transferring objects showed an apparent large silence while writing the objects out of existing packfiles, when the reachability bitmap was in use. * jk/subtree-prefix (2014-03-17) 1 commit (merged to 'next' on 2014-03-20 at 81367fa) + subtree: initialize "prefix" variable A stray environment variable $prefix could have leaked into and affected the behaviour of the "subtree" script. * ys/fsck-commit-parsing (2014-03-19) 2 commits (merged to 'next' on 2014-03-21 at 2728983) + fsck.c:fsck_commit(): use skip_prefix() to verify and skip constant + fsck.c:fsck_ident(): ident points at a const string -- [New Topics] * jc/apply-ignore-whitespace (2014-03-26) 1 commit - apply --ignore-space-change: lines with and without leading whitespaces do not match An RFC. "--ignore-space-change" option of "git apply" ignored the spaces at the beginning of line too aggressively, which is inconsistent with the option of the same name "diff" and "git diff" have. Will hold. * jc/rev-parse-argh-dashed-multi-words (2014-03-24) 3 commits - parse-options: make sure argh string does not have SP or _ - update-index: teach --cacheinfo a new syntax "mode,sha1,path" - parse-options: multi-word argh should use dash to separate words (this branch uses ib/rev-parse-parseopt-argh.) Make sure that the help text given to describe the "" part of the "git cmd --option=" does not contain SP or _, e.g. "--gpg-sign=" option for "git commit" is not spelled as "--gpg-sign=". Will merge to 'next'. * jk/commit-dates-parsing-fix (2014-03-26) 1 commit - t4212: loosen far-in-future test for AIX I think we agreed that a simpler test would be a better way forward. * mr/msvc-link-with-invalidcontinue (2014-03-28) 1 commit - MSVC: link in invalidcontinue.obj for better POSIX compatibility Will merge to 'next'. * mr/msvc-link-with-lcurl (2014-03-27) 1 commit (merged to 'next' on 2014-03-28 at 3281dab) + MSVC: allow linking with the cURL library Will merge to 'master'. * wt/doc-submodule-name-path-confusion-1 (2014-03-27) 1 commit (merged to 'next' on 2014-03-28 at 225f241) + doc: submodule.* config are keyed by submodule names Will merge to 'master'. * wt/doc-submodule-name-path-confusion-2 (2014-03-27) 1 commit (merged to 'next' on 2014-03-28 at ec5bcf3) + doc: submodule.*.branch config is keyed by name Will merge to 'master'. * ep/shell-command-substitution (2014-03-25) 2 commits (merged to 'next' on 2014-03-28 at 99a512a) + git-am.sh: use the $(...) construct for command substitution + ch