Re: What's cooking in git.git (Mar 2014, #07; Fri, 28)

2014-03-31 Thread Junio C Hamano
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)

2014-03-31 Thread Michael Haggerty
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)

2014-03-31 Thread Ronnie Sahlberg
(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)

2014-03-30 Thread Junio C Hamano
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)

2014-03-29 Thread Duy Nguyen
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)

2014-03-29 Thread Max Horn

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)

2014-03-28 Thread Michael Haggerty
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)

2014-03-28 Thread Junio C Hamano
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