mercurial/hg.py
changeset 253 2da0a56aa1fd
parent 251 3fd8fc14b12f
child 254 c03f58e5fd2d
equal deleted inserted replaced
252:5eda6c542978 253:2da0a56aa1fd
   210         
   210         
   211     def update(self, files, state):
   211     def update(self, files, state):
   212         ''' current states:
   212         ''' current states:
   213         n  normal
   213         n  normal
   214         m  needs merging
   214         m  needs merging
   215         i  invalid
       
   216         r  marked for removal
   215         r  marked for removal
   217         a  marked for addition'''
   216         a  marked for addition'''
   218 
   217 
   219         if not files: return
   218         if not files: return
   220         self.read()
   219         self.read()
   221         self.dirty = 1
   220         self.dirty = 1
   222         for f in files:
   221         for f in files:
   223             if state == "r":
   222             if state == "r":
   224                 self.map[f] = ('r', 0, 0, 0)
   223                 self.map[f] = ('r', 0, 0, 0)
   225             else:
   224             else:
   226                 try:
   225                 s = os.stat(os.path.join(self.root, f))
   227                     s = os.stat(os.path.join(self.root, f))
   226                 self.map[f] = (state, s.st_mode, s.st_size, s.st_mtime)
   228                     self.map[f] = (state, s.st_mode, s.st_size, s.st_mtime)
       
   229                 except OSError:
       
   230                     if state != "i": raise
       
   231                     self.map[f] = ('r', 0, 0, 0)
       
   232 
   227 
   233     def forget(self, files):
   228     def forget(self, files):
   234         if not files: return
   229         if not files: return
   235         self.read()
   230         self.read()
   236         self.dirty = 1
   231         self.dirty = 1
   534                 if fn in dc:
   529                 if fn in dc:
   535                     c = dc[fn]
   530                     c = dc[fn]
   536                     del dc[fn]
   531                     del dc[fn]
   537                     if not c:
   532                     if not c:
   538                         if fcmp(fn):
   533                         if fcmp(fn):
   539                             changed.append(fn)
       
   540                     elif c[0] == 'i':
       
   541                         if fn not in mf:
       
   542                             added.append(fn)
       
   543                         elif fcmp(fn):
       
   544                             changed.append(fn)
   534                             changed.append(fn)
   545                     elif c[0] == 'm':
   535                     elif c[0] == 'm':
   546                         changed.append(fn)
   536                         changed.append(fn)
   547                     elif c[0] == 'a':
   537                     elif c[0] == 'a':
   548                         added.append(fn)
   538                         added.append(fn)