equal
deleted
inserted
replaced
771 return self.dirstate.getcwd() |
771 return self.dirstate.getcwd() |
772 |
772 |
773 def wfile(self, f, mode='r'): |
773 def wfile(self, f, mode='r'): |
774 return self.wopener(f, mode) |
774 return self.wopener(f, mode) |
775 |
775 |
|
776 def wread(self, filename): |
|
777 return self.wopener(filename, 'r').read() |
|
778 |
|
779 def wwrite(self, filename, data, fd=None): |
|
780 if fd: |
|
781 return fd.write(data) |
|
782 return self.wopener(filename, 'w').write(data) |
|
783 |
776 def transaction(self): |
784 def transaction(self): |
777 # save dirstate for undo |
785 # save dirstate for undo |
778 try: |
786 try: |
779 ds = self.opener("dirstate").read() |
787 ds = self.opener("dirstate").read() |
780 except IOError: |
788 except IOError: |
837 mm = m1.copy() |
845 mm = m1.copy() |
838 mfm = mf1.copy() |
846 mfm = mf1.copy() |
839 linkrev = self.changelog.count() |
847 linkrev = self.changelog.count() |
840 for f in files: |
848 for f in files: |
841 try: |
849 try: |
842 t = self.wfile(f).read() |
850 t = self.wread(f) |
843 tm = util.is_exec(self.wjoin(f), mfm.get(f, False)) |
851 tm = util.is_exec(self.wjoin(f), mfm.get(f, False)) |
844 r = self.file(f) |
852 r = self.file(f) |
845 mfm[f] = tm |
853 mfm[f] = tm |
846 |
854 |
847 fp1 = m1.get(f, nullid) |
855 fp1 = m1.get(f, nullid) |
930 commit.sort() |
938 commit.sort() |
931 for f in commit: |
939 for f in commit: |
932 self.ui.note(f + "\n") |
940 self.ui.note(f + "\n") |
933 try: |
941 try: |
934 mf1[f] = util.is_exec(self.wjoin(f), mf1.get(f, False)) |
942 mf1[f] = util.is_exec(self.wjoin(f), mf1.get(f, False)) |
935 t = self.wfile(f).read() |
943 t = self.wread(f) |
936 except IOError: |
944 except IOError: |
937 self.ui.warn("trouble committing %s!\n" % f) |
945 self.ui.warn("trouble committing %s!\n" % f) |
938 raise |
946 raise |
939 |
947 |
940 meta = {} |
948 meta = {} |
1021 def changes(self, node1 = None, node2 = None, files = [], |
1029 def changes(self, node1 = None, node2 = None, files = [], |
1022 match = util.always): |
1030 match = util.always): |
1023 mf2, u = None, [] |
1031 mf2, u = None, [] |
1024 |
1032 |
1025 def fcmp(fn, mf): |
1033 def fcmp(fn, mf): |
1026 t1 = self.wfile(fn).read() |
1034 t1 = self.wread(fn) |
1027 t2 = self.file(fn).read(mf.get(fn, nullid)) |
1035 t2 = self.file(fn).read(mf.get(fn, nullid)) |
1028 return cmp(t1, t2) |
1036 return cmp(t1, t2) |
1029 |
1037 |
1030 def mfmatches(node): |
1038 def mfmatches(node): |
1031 mf = dict(self.manifest.read(node)) |
1039 mf = dict(self.manifest.read(node)) |
1658 if f in m2: |
1666 if f in m2: |
1659 s = 0 |
1667 s = 0 |
1660 |
1668 |
1661 # is the wfile new since m1, and match m2? |
1669 # is the wfile new since m1, and match m2? |
1662 if f not in m1: |
1670 if f not in m1: |
1663 t1 = self.wfile(f).read() |
1671 t1 = self.wread(f) |
1664 t2 = self.file(f).read(m2[f]) |
1672 t2 = self.file(f).read(m2[f]) |
1665 if cmp(t1, t2) == 0: |
1673 if cmp(t1, t2) == 0: |
1666 n = m2[f] |
1674 n = m2[f] |
1667 del t1, t2 |
1675 del t1, t2 |
1668 |
1676 |
1778 for f in files: |
1786 for f in files: |
1779 if f[0] == "/": continue |
1787 if f[0] == "/": continue |
1780 self.ui.note("getting %s\n" % f) |
1788 self.ui.note("getting %s\n" % f) |
1781 t = self.file(f).read(get[f]) |
1789 t = self.file(f).read(get[f]) |
1782 try: |
1790 try: |
1783 self.wfile(f, "w").write(t) |
1791 self.wwrite(f, t) |
1784 except IOError: |
1792 except IOError: |
1785 os.makedirs(os.path.dirname(self.wjoin(f))) |
1793 os.makedirs(os.path.dirname(self.wjoin(f))) |
1786 self.wfile(f, "w").write(t) |
1794 self.wwrite(f, t) |
1787 util.set_exec(self.wjoin(f), mf2[f]) |
1795 util.set_exec(self.wjoin(f), mf2[f]) |
1788 if moddirstate: |
1796 if moddirstate: |
1789 if branch_merge: |
1797 if branch_merge: |
1790 self.dirstate.update([f], 'n', st_mtime=-1) |
1798 self.dirstate.update([f], 'n', st_mtime=-1) |
1791 else: |
1799 else: |
1834 |
1842 |
1835 def temp(prefix, node): |
1843 def temp(prefix, node): |
1836 pre = "%s~%s." % (os.path.basename(fn), prefix) |
1844 pre = "%s~%s." % (os.path.basename(fn), prefix) |
1837 (fd, name) = tempfile.mkstemp("", pre) |
1845 (fd, name) = tempfile.mkstemp("", pre) |
1838 f = os.fdopen(fd, "wb") |
1846 f = os.fdopen(fd, "wb") |
1839 f.write(fl.read(node)) |
1847 self.wwrite(fn, fl.read(node), f) |
1840 f.close() |
1848 f.close() |
1841 return name |
1849 return name |
1842 |
1850 |
1843 fl = self.file(fn) |
1851 fl = self.file(fn) |
1844 base = fl.ancestor(my, other) |
1852 base = fl.ancestor(my, other) |