On Thu, 11 Nov 2010, Jonathan Nieder wrote: > On Thu, Nov 11, 2010 at 07:16:27PM +0700, Nguyen Thai Ngoc Duy wrote: > > On Thu, Nov 11, 2010 at 5:37 PM, Jonathan Nieder <jrnieder@xxxxxxxxx> wrote: > > >> Most likely the clone is terminating when Python exits, perhaps due to > >> SIGPIPE. It doesn't look like a bug to me; I suspect you meant to use > >> os.system(), which is synchronous, instead. > [...] > > If "git clone" is terminated before it completes, shouldn't it clean > > the uncompleted repo? > > Ah, so it should. > > trace: built-in: git clone jrn@localhost:/home/jrn/src/xz > trace: run_command: ssh jrn@localhost git-upload-pack '/home/jrn/src/xz' > trace: remove junk called > jrn@localhosts password: > trace: run_command: index-pack --stdin -v --fix-thin --keep=fetch-pack 19314 on burratino > trace: exec: git index-pack --stdin -v --fix-thin --keep=fetch-pack 19314 on burratino > trace: built-in: git index-pack --stdin -v --fix-thin --keep=fetch-pack 19314 on burratino > remote: Counting objects: 7299, done. > remote: Compressing objects: 100% (1826/1826), done. > remote: Total 7299 (delta 5421), reused 7274 (delta 5401) > Receiving objects: 100% (7299/7299), 2.36 MiB | 4.43 MiB/s, done. > Resolving deltas: 100% (5421/5421), done. > trace: exited with status 0 > trace: exited with status 0 > trace: remove junk called > trace: remove_junk: pid != 0 > > Are there any downside to the following? > > Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx> > --- > diff --git a/builtin/clone.c b/builtin/clone.c > index 19ed640..af6b40a 100644 > --- a/builtin/clone.c > +++ b/builtin/clone.c > @@ -667,6 +667,5 @@ int cmd_clone(int argc, const char **argv, const char *prefix) > strbuf_release(&branch_top); > strbuf_release(&key); > strbuf_release(&value); > - junk_pid = 0; > return err; > } I believe that would cause it to remove the repository when it terminates, regardless of whether it completed or not. That line is after all of the clone's code. I'm a bit suspicious that it's not flushing some stdio buffer and relying on the C library doing it on an orderly exit. -Daniel *This .sig left intentionally blank*