luciano.rocha@xxxxxxxxxxx writes: > Update freshen_file() to use a NULL `times', semantically equivalent to > the currently setup, with an explicit `actime' and `modtime' set to the > "current time", but with the advantage that it works with other files > not owned by the current user. > > Fixes an issue on shared repos with a split index, where eventually a > user's operation creates a shared index, and another user will later do > an operation that will try to update its freshness, but will instead > raise a warning: > $ git status > warning: could not freshen shared index '.git/sharedindex.bd736fa10e0519593fefdb2aec253534470865b2' A couple of questions: - Does utime(fn, NULL) work for any non-owner user, or does the user need to have write access to it? - If the answer is not "you need to be able to write", doesn't the bug lie elsewhere, namely, why .git/sharedindex.* not writable by the current user, if it is a shared repository setting? Thanks. > Signed-off-by: Luciano Miguel Ferreira Rocha <luciano.rocha@xxxxxxxxxxx> > --- > sha1-file.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/sha1-file.c b/sha1-file.c > index 6926851724..ccd34dd9e8 100644 > --- a/sha1-file.c > +++ b/sha1-file.c > @@ -881,9 +881,7 @@ void prepare_alt_odb(struct repository *r) > /* Returns 1 if we have successfully freshened the file, 0 otherwise. */ > static int freshen_file(const char *fn) > { > - struct utimbuf t; > - t.actime = t.modtime = time(NULL); > - return !utime(fn, &t); > + return !utime(fn, NULL); > } > > /*