From: Michael Haggerty Date: Sat, 02 May 2015 03:47:02 GMT Subject: Re: [PATCH 2/2] lock_packed_refs(): allow retries when acquiring the packed-refs lock Message-ID: <554448B6.6080605@alum.mit.edu> In-Reply-To: <5543A621.7010208@kdbg.org> On 05/01/2015 06:13 PM, Johannes Sixt wrote: > Am 01.05.2015 um 16:52 schrieb Michael Haggerty: >> +test_expect_success 'retry acquiring packed-refs.lock' ' >> + LOCK=.git/packed-refs.lock && >> + >$LOCK && >> + test_when_finished "rm -f $LOCK" && >> + { >> + ( sleep 1 ; rm -f $LOCK ) & >> + } && > > I haven't tested yet, but I think that this will be problematic on > Windows: a directory cannot be removed if it is the current directory of > a process. Here, the sub-shell process is alive for a second. If the > remainder of the test script completes before the process dies, the test > directory cannot be removed. > > How about this: > > test_when_finished "wait; rm -f $LOCK" && > { sleep 1 & } && > ... > >> + git -c core.packedrefstimeout=3000 pack-refs --all --prune >> +' >> + >> test_done Thanks for pointing out this problem. Your suggestion seems good. I assume that you didn't intend to omit the "rm -f $LOCK" from the subprocess, because the whole point is for that to happen while "git pack-refs" is running. I will include your change in v2. Michael -- Michael Haggerty mhagger@alum.mit.edu