Hi, On Tue, 26 Feb 2008, Johan Herland wrote: > On Monday 25 February 2008, Daniel Barkalow wrote: > > This version is still a mess, but it passes all of the tests. > > Not for me: > *** t5700-clone-reference.sh *** > * ok 1: preparing first repository > * ok 2: preparing second repository > * FAIL 3: cloning with reference (-l -s) > git clone -l -s --reference B A C Which machine? What is your base (next or master)? What does the verbose output look like? > diff --git a/builtin-clone.c b/builtin-clone.c > index 5aa75e1..7eed340 100644 > --- a/builtin-clone.c > +++ b/builtin-clone.c > @@ -1,7 +1,7 @@ > /* > * Builtin "git clone" > * > - * Copyright (c) 2007 Kristian Høgsberg <krh@xxxxxxxxxx> > + * Copyright (c) 2007 Kristian Høgsberg <krh@xxxxxxxxxx> This is almost certainly wrong. > @@ -79,7 +79,7 @@ static char *get_repo_path(const char *repo) > > if (!stat(repo, &buf) && S_ISDIR(buf.st_mode)) > return xstrdup(make_absolute_path(repo)); > - > + Trailing whitespace. Okay. > @@ -347,6 +347,9 @@ int cmd_clone(int argc, const char **argv, const char *prefix) > char *path, *dir, *head, *ref_temp; > struct ref *refs, *r, *remote_head, *head_points_at, *remote_master; > char branch_top[256], key[256], refname[256], value[256]; > + struct strbuf reflog_msg; > + > + git_config(git_default_config); Good catch. > @@ -495,7 +501,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix) > if (!remote_head) { > /* If there isn't one, oh well. */ > } else if (remote_master && !hashcmp(remote_master->old_sha1, > - remote_head->old_sha1)) { > + remote_head->old_sha1)) { I am not so sure about this change. It is unneeded, and distracts from the rest. Thanks, Dscho