Re: [PATCH 2/2] rerere: fix overeager gc
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 13, 2010, 00:40 UTC
- Message-ID
- <7v630k6wpg.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <1278978124-3035-2-git-send-email-szeder@ira.uka.de>
SZEDER Gábor <szeder@ira.uka.de> writes:
Show 12 quoted lines
> 'rerere gc' prunes resolutions of conflicted merges that occurred long > time ago, and when doing so it takes the creation time of the > conflicted automerge results into account. This can cause the loss of > frequently used conflict resolutions (e.g. long-living topic branches > are merged into a regularly rebuilt integration branch (think of git's > pu)) when they become old enough to exceed 'rerere gc's threshold. > > To prevent the loss of valuable merge resolutions 'rerere' will (1) > update the timestamp of the recorded conflict resolution (i.e. > 'postimage') each time when encountering and resolving the same merge > conflict, and (2) take this timestamp, i.e. the time of the last usage > into account when gc'ing.
Thanks.
Show 5 quoted lines
> +static time_t rerere_last_used_at(const char *name)
> +{
> + struct stat st;
> + return stat(rerere_path(name, "postimage"), &st) ? (time_t) 0 : st.st_mtime;
> +}Doesn't has_rerere_resolution() already do a stat on this path? There are only two allers of the function so it would probably make sense to pass a pointer to struct stat from the caller to avoid one extra call to stat.