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

dirstate.cpp: turn dirstate into a class

Make entries member private.
Provide accessors for iterating, etc.

Changeset 9393e95933ab

Parent 3928fb441d44

by Adrian Buehlmann

Changes to one file · Browse files at 9393e95933ab Showing diff from parent 3928fb441d44 Diff from another changeset...

 
108
109
110
111
 
112
 
 
 
 
 
 
 
 
113
114
115
116
117
118
 
119
120
121
122
 
 
 
 
123
124
125
 
246
247
248
249
 
250
251
252
 
303
304
305
306
307
 
 
308
309
310
 
362
363
364
365
366
 
367
368
369
 
401
402
403
404
405
 
 
406
407
 
408
409
410
 
411
412
413
 
108
109
110
 
111
112
113
114
115
116
117
118
119
120
121
122
123
 
 
 
124
125
 
126
127
128
129
130
131
132
133
134
 
255
256
257
 
258
259
260
261
 
312
313
314
 
 
315
316
317
318
319
 
371
372
373
 
 
374
375
376
377
 
409
410
411
 
 
412
413
414
 
415
416
417
 
418
419
420
421
@@ -108,18 +108,27 @@
 }     -struct dirstate +class dirstate  { + typedef std::vector<direntry> EntriesT; + + EntriesT entries; + +public: + typedef EntriesT::size_type size_type; + typedef EntriesT::const_iterator Iter; +   char parent1[HASH_LENGTH];   char parent2[HASH_LENGTH];   - std::vector<direntry> entries; - - typedef std::vector<direntry>::const_iterator Iter; + static std::auto_ptr<dirstate> read(const char *path);   - static std::auto_ptr<dirstate> read(const char *path);   void add(const direntry& e) { entries.push_back(e); }   + Iter begin() const { return entries.begin(); } + Iter end() const { return entries.end(); } + size_type size() const { return entries.size(); } +  private:   static uint32_t ntohl(uint32_t x)   { @@ -246,7 +255,7 @@
  }   iter->dstate = dirstate::read(path.c_str()).release();   TDEBUG_TRACE("dirstatecache::get: " - << iter->dstate->entries.size() << " entries read. " + << iter->dstate->size() << " entries read. "   << _cache.size() << " repos in cache");   }   @@ -303,8 +312,8 @@
  size_t rootlen = hgroot.size();   size_t len = relpath.size();   - for (dirstate::Iter iter = pd->entries.begin(); - iter != pd->entries.end() && !modified; ++iter) + for (dirstate::Iter iter = pd->begin(); + iter != pd->end() && !modified; ++iter)   {   const direntry& e = *iter;   @@ -362,8 +371,7 @@
  return 0;   }   - for (dirstate::Iter iter = pd->entries.begin(); - iter != pd->entries.end(); ++iter) + for (dirstate::Iter iter = pd->begin(); iter != pd->end(); ++iter)   {   const direntry& e = *iter;   @@ -401,13 +409,13 @@
  unsigned ix;   printf("parent1: %s\n", revhash_string(pd->parent1));   printf("parent2: %s\n", revhash_string(pd->parent2)); - printf("entries: %d\n\n", pd->entries.size()); - for (ix = 0; ix < pd->entries.size(); ++ix) + printf("entries: %d\n\n", pd->size()); + for (dirstate::Iter i = pd->begin(); i != pd->end(); ++i)   { - t = pd->entries[ix].mtime; + t = i->mtime;   s = ctime(&t);   s[strlen(s) - 1] = '\0'; - printf("%s %s\n", s, pd->entries[ix].name.c_str()); + printf("%s %s\n", s, i->name.c_str());   }  }