Show More
@@ -150,8 +150,9 b' class changelog(revlog):' | |||||
150 | return self.addrevision(text, transaction, self.count(), p1, p2) |
|
150 | return self.addrevision(text, transaction, self.count(), p1, p2) | |
151 |
|
151 | |||
152 | class dirstate: |
|
152 | class dirstate: | |
153 | def __init__(self, opener, ui): |
|
153 | def __init__(self, opener, ui, root): | |
154 | self.opener = opener |
|
154 | self.opener = opener | |
|
155 | self.root = root | |||
155 | self.dirty = 0 |
|
156 | self.dirty = 0 | |
156 | self.ui = ui |
|
157 | self.ui = ui | |
157 | self.map = None |
|
158 | self.map = None | |
@@ -223,7 +224,7 b' class dirstate:' | |||||
223 | self.map[f] = ('r', 0, 0, 0) |
|
224 | self.map[f] = ('r', 0, 0, 0) | |
224 | else: |
|
225 | else: | |
225 | try: |
|
226 | try: | |
226 | s = os.stat(f) |
|
227 | s = os.stat(os.path.join(self.root, f)) | |
227 | 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) | |
228 | except OSError: |
|
229 | except OSError: | |
229 | if state != "i": raise |
|
230 | if state != "i": raise | |
@@ -311,7 +312,7 b' class localrepository:' | |||||
311 | self.tags = None |
|
312 | self.tags = None | |
312 |
|
313 | |||
313 | if not self.remote: |
|
314 | if not self.remote: | |
314 | self.dirstate = dirstate(self.opener, ui) |
|
315 | self.dirstate = dirstate(self.opener, ui, self.root) | |
315 |
|
316 | |||
316 | def ignore(self, f): |
|
317 | def ignore(self, f): | |
317 | if self.ignorelist is None: |
|
318 | if self.ignorelist is None: | |
@@ -344,6 +345,9 b' class localrepository:' | |||||
344 | def join(self, f): |
|
345 | def join(self, f): | |
345 | return os.path.join(self.path, f) |
|
346 | return os.path.join(self.path, f) | |
346 |
|
347 | |||
|
348 | def wjoin(self, f): | |||
|
349 | return os.path.join(self.root, f) | |||
|
350 | ||||
347 | def file(self, f): |
|
351 | def file(self, f): | |
348 | if f[0] == '/': f = f[1:] |
|
352 | if f[0] == '/': f = f[1:] | |
349 | return filelog(self.opener, f) |
|
353 | return filelog(self.opener, f) | |
@@ -420,12 +424,12 b' class localrepository:' | |||||
420 | if files: |
|
424 | if files: | |
421 | for f in files: |
|
425 | for f in files: | |
422 | s = self.dirstate.state(f) |
|
426 | s = self.dirstate.state(f) | |
423 |
if s in ' |
|
427 | if s in 'nmai': | |
424 | commit.append(f) |
|
428 | commit.append(f) | |
425 | elif s == 'r': |
|
429 | elif s == 'r': | |
426 | remove.append(f) |
|
430 | remove.append(f) | |
427 | else: |
|
431 | else: | |
428 | self.warn("%s not tracked!\n") |
|
432 | self.ui.warn("%s not tracked!\n" % f) | |
429 | else: |
|
433 | else: | |
430 | (c, a, d, u) = self.diffdir(self.root) |
|
434 | (c, a, d, u) = self.diffdir(self.root) | |
431 | commit = c + a |
|
435 | commit = c + a | |
@@ -450,7 +454,7 b' class localrepository:' | |||||
450 | for f in commit: |
|
454 | for f in commit: | |
451 | self.ui.note(f + "\n") |
|
455 | self.ui.note(f + "\n") | |
452 | try: |
|
456 | try: | |
453 | t = file(f).read() |
|
457 | t = file(self.wjoin(f)).read() | |
454 | except IOError: |
|
458 | except IOError: | |
455 | self.warn("trouble committing %s!\n" % f) |
|
459 | self.warn("trouble committing %s!\n" % f) | |
456 | raise |
|
460 | raise | |
@@ -493,10 +497,10 b' class localrepository:' | |||||
493 | self.ui.note(f, "\n") |
|
497 | self.ui.note(f, "\n") | |
494 | t = self.file(f).revision(n) |
|
498 | t = self.file(f).revision(n) | |
495 | try: |
|
499 | try: | |
496 | file(f, "w").write(t) |
|
500 | file(self.wjoin(f), "w").write(t) | |
497 | except IOError: |
|
501 | except IOError: | |
498 | os.makedirs(os.path.dirname(f)) |
|
502 | os.makedirs(os.path.dirname(f)) | |
499 | file(f, "w").write(t) |
|
503 | file(self.wjoin(f), "w").write(t) | |
500 |
|
504 | |||
501 | self.dirstate.setparents(node) |
|
505 | self.dirstate.setparents(node) | |
502 | self.dirstate.clear() |
|
506 | self.dirstate.clear() | |
@@ -519,7 +523,7 b' class localrepository:' | |||||
519 | dc = self.dirstate.copy() |
|
523 | dc = self.dirstate.copy() | |
520 |
|
524 | |||
521 | def fcmp(fn): |
|
525 | def fcmp(fn): | |
522 |
t1 = file( |
|
526 | t1 = file(self.wjoin(fn)).read() | |
523 | t2 = self.file(fn).revision(mf[fn]) |
|
527 | t2 = self.file(fn).revision(mf[fn]) | |
524 | return cmp(t1, t2) |
|
528 | return cmp(t1, t2) | |
525 |
|
529 | |||
@@ -585,7 +589,7 b' class localrepository:' | |||||
585 |
|
589 | |||
586 | def add(self, list): |
|
590 | def add(self, list): | |
587 | for f in list: |
|
591 | for f in list: | |
588 |
p = |
|
592 | p = self.wjoin(f) | |
589 | if not os.path.isfile(p): |
|
593 | if not os.path.isfile(p): | |
590 | self.ui.warn("%s does not exist!\n" % f) |
|
594 | self.ui.warn("%s does not exist!\n" % f) | |
591 | elif self.dirstate.state(f) == 'n': |
|
595 | elif self.dirstate.state(f) == 'n': | |
@@ -602,7 +606,7 b' class localrepository:' | |||||
602 |
|
606 | |||
603 | def remove(self, list): |
|
607 | def remove(self, list): | |
604 | for f in list: |
|
608 | for f in list: | |
605 |
p = |
|
609 | p = self.wjoin(f) | |
606 | if os.path.isfile(p): |
|
610 | if os.path.isfile(p): | |
607 | self.ui.warn("%s still exists!\n" % f) |
|
611 | self.ui.warn("%s still exists!\n" % f) | |
608 | elif f not in self.dirstate: |
|
612 | elif f not in self.dirstate: | |
@@ -935,10 +939,10 b' class localrepository:' | |||||
935 | self.ui.note(f, "\n") |
|
939 | self.ui.note(f, "\n") | |
936 | t = self.file(f).revision(get[f]) |
|
940 | t = self.file(f).revision(get[f]) | |
937 | try: |
|
941 | try: | |
938 | file(f, "w").write(t) |
|
942 | file(self.wjoin(f), "w").write(t) | |
939 | except IOError: |
|
943 | except IOError: | |
940 | os.makedirs(os.path.dirname(f)) |
|
944 | os.makedirs(os.path.dirname(f)) | |
941 | file(f, "w").write(t) |
|
945 | file(self.wjoin(f), "w").write(t) | |
942 |
|
946 | |||
943 | # we have to remember what files we needed to get/change |
|
947 | # we have to remember what files we needed to get/change | |
944 | # because any file that's different from either one of its |
|
948 | # because any file that's different from either one of its | |
@@ -973,7 +977,7 b' class localrepository:' | |||||
973 |
|
977 | |||
974 | fl = self.file(fn) |
|
978 | fl = self.file(fn) | |
975 | base = fl.ancestor(my, other) |
|
979 | base = fl.ancestor(my, other) | |
976 | a = fn |
|
980 | a = self.wjoin(fn) | |
977 | b = temp("other", other) |
|
981 | b = temp("other", other) | |
978 | c = temp("base", base) |
|
982 | c = temp("base", base) | |
979 |
|
983 |
General Comments 0
You need to be logged in to leave comments.
Login now