From: Brandon Casey Date: Thu, 18 Oct 2007 21:57:32 GMT Subject: Re: git on afs Message-ID: In-Reply-To: <20071018203106.GA13518@fries.net> On Thu, 18 Oct 2007, Todd T. Fries wrote: > 2) git presumes that DTYPE(de) != DT_DIR .. means the dirent is not a dir > this is not true for afs > > I have been using this to sync several git trees, including linux-2.6 for the > past week without issues writing to a local afs server. > > What do you guys think? > > diff --git a/dir.c b/dir.c > index eb6c3ab..a3e53a5 100644 > --- a/dir.c > +++ b/dir.c > @@ -487,9 +487,19 @@ static int read_directory_recursive(struct dir_struct *dir, const char *path, co > && in_pathspec(fullname, baselen + len, simplify)) > dir_add_ignored(dir, fullname, baselen + len); > if (exclude != dir->show_ignored) { > - if (!dir->show_ignored || DTYPE(de) != DT_DIR) { > + if (!dir->show_ignored) you're missing an open bracket ^^^ > continue; > } or delete this one ^^^ > + if (DTYPE(de) == DT_UNKNOWN) { > + struct stat st; > + if (lstat(fullname, &st)) > + continue; > + if (!S_ISDIR(st.st_mode)) > + continue; > + } else { > + if (DTYPE(de) != DT_DIR) > + continue; > + } > } > > switch (DTYPE(de)) { seems sane to me. If no one else brings up any issues, you should retest and submit a signed patch with a good comment. Use -s with git-commit. Then git-format-patch will produce the proper output. -brandon