[PATCH RFC] merge: exit early during a no-op update (BC)

Matt Mackall mpm at selenic.com
Sat Oct 19 20:29:33 CDT 2013


On Wed, 2013-10-02 at 18:40 -0700, Siddharth Agarwal wrote:
> # HG changeset patch
> # User Siddharth Agarwal <sid0 at fb.com>
> # Date 1380674634 25200
> #      Tue Oct 01 17:43:54 2013 -0700
> # Node ID 21cbc4e20803db7c80dcdde20a653d2fdab6a1fe
> # Parent  6b93dc02a882c11e61a199ce96df19683fa32298
> merge: exit early during a no-op update (BC)

> hg update . (or equivalents) are effectively no-ops in just about all
> circumstances.  These sorts of updates can be especially common in a
> bookmark-oriented workflow. This saves us a status check and a manifest
> decompression, which means that on a repo with over 210,000 files, this brings
> hg update . down from 2.5 seconds to 0.15.
> 
> There is one change in behavior: a file that was added, not committed, and then
> deleted but not removed used to be removed from the dirstate. With this patch
> it isn't. This is what causes the change in test-mq-qpush-exact.t. This seems
> like it's enough of an edge case to not be worth handling.

Seems fine. Queued for default, thanks.

-- 
Mathematics is the supreme nostalgia of our time.




More information about the Mercurial-devel mailing list