Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 0.8, 0.8.1, and 0.8.2

shellext: fix bug with dirstate caching

Found a bug when doing hg rollback: stale cache data was used.
Now we check mtime for equality.
Additionally, we remember and check the size.

Changeset d7e5ff4fe661

Parent 3718f600ad57

by Adrian Buehlmann

Changes to 2 files · Browse files at d7e5ff4fe661 Showing diff from parent 3718f600ad57 Diff from another changeset...

 
76
77
78
79
 
 
 
80
81
 
82
83
84
 
76
77
78
 
79
80
81
82
83
84
85
86
87
@@ -76,9 +76,12 @@
  TDEBUG_TRACE("Dirstatecache::get: lstat(" << path <<") ok ");   }   - if (stat_done && iter->dstate_mtime < stat.mtime) + if ( stat_done && + (iter->dstate_mtime != stat.mtime + || iter->dstate_size != stat.size) )   {   iter->dstate_mtime = stat.mtime; + iter->dstate_size = stat.size;   if (iter->dstate) {   delete iter->dstate;   iter->dstate = 0;
 
28
29
30
 
31
32
33
34
35
 
36
37
38
 
28
29
30
31
32
33
34
35
 
36
37
38
39
@@ -28,11 +28,12 @@
  {   Dirstate* dstate;   __time64_t dstate_mtime; + unsigned dstate_size;     std::string hgroot;   unsigned tickcount;   - E(): dstate(0), dstate_mtime(0), tickcount(0) {} + E(): dstate(0), dstate_mtime(0), dstate_size(0), tickcount(0) {}   };    public: