Mercurial > public > mercurial-scm > hg-stable
diff hgext/largefiles/lfutil.py @ 22095:cb62d77c7a01
largefiles: factor out synchronization of lfdirstate for future use
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Mon, 11 Aug 2014 22:29:43 +0900 |
parents | ac3b3a2d976d |
children | 509e2cbee679 |
line wrap: on
line diff
--- a/hgext/largefiles/lfutil.py Mon Aug 11 22:29:43 2014 +0900 +++ b/hgext/largefiles/lfutil.py Mon Aug 11 22:29:43 2014 +0900 @@ -363,6 +363,28 @@ standins.append((lfile, hash)) return standins +def synclfdirstate(repo, lfdirstate, lfile, normallookup): + lfstandin = standin(lfile) + if lfstandin in repo.dirstate: + stat = repo.dirstate._map[lfstandin] + state, mtime = stat[0], stat[3] + else: + state, mtime = '?', -1 + if state == 'n': + if normallookup or mtime < 0: + # state 'n' doesn't ensure 'clean' in this case + lfdirstate.normallookup(lfile) + else: + lfdirstate.normal(lfile) + elif state == 'm': + lfdirstate.normallookup(lfile) + elif state == 'r': + lfdirstate.remove(lfile) + elif state == 'a': + lfdirstate.add(lfile) + elif state == '?': + lfdirstate.drop(lfile) + def getlfilestoupdate(oldstandins, newstandins): changedstandins = set(oldstandins).symmetric_difference(set(newstandins)) filelist = []