···127127 logger.Error("failed to read previous repo state", "err", err)
128128 }
129129130130+ // fast check for stale revision (will be re-checked in VerifyRepoCommit)
131131+ if prevRepo != nil && prevRepo.Rev != "" && evt.Rev != "" {
132132+ if evt.Rev <= prevRepo.Rev {
133133+ logger.Warn("dropping commit with old rev", "prevRev", prevRepo.Rev)
134134+ return nil
135135+ }
136136+ }
137137+130138 // most commit validation happens in this method. Note that is handles lenient/strict modes.
131139 newRepo, err := r.VerifyRepoCommit(ctx, evt, ident, prevRepo, hostname)
132140 if err != nil {
···170178 if ident == nil {
171179 // TODO: what to do if identity resolution fails
172180 }
181181+182182+ // TODO: should we load account 'rev' here and prevent roll-backs? or allow roll-backs?
173183174184 newRepo, err := r.VerifyRepoSync(ctx, evt, ident, hostname)
175185 if err != nil {