86 try: |
86 try: |
87 self.ui.readconfig(self.join("hgrc"), self.root) |
87 self.ui.readconfig(self.join("hgrc"), self.root) |
88 except IOError: |
88 except IOError: |
89 pass |
89 pass |
90 |
90 |
91 v = self.ui.configrevlog() |
91 self.changelog = changelog.changelog(self.sopener) |
92 self.revlogversion = int(v.get('format', revlog.REVLOG_DEFAULT_FORMAT)) |
92 self.sopener.defversion = self.changelog.version |
93 self.revlogv1 = self.revlogversion != revlog.REVLOGV0 |
93 self.manifest = manifest.manifest(self.sopener) |
94 fl = v.get('flags', None) |
|
95 flags = 0 |
|
96 if fl != None: |
|
97 for x in fl.split(): |
|
98 flags |= revlog.flagstr(x) |
|
99 elif self.revlogv1: |
|
100 flags = revlog.REVLOG_DEFAULT_FLAGS |
|
101 |
|
102 v = self.revlogversion | flags |
|
103 self.manifest = manifest.manifest(self.sopener, v) |
|
104 self.changelog = changelog.changelog(self.sopener, v) |
|
105 |
94 |
106 fallback = self.ui.config('ui', 'fallbackencoding') |
95 fallback = self.ui.config('ui', 'fallbackencoding') |
107 if fallback: |
96 if fallback: |
108 util._fallbackencoding = fallback |
97 util._fallbackencoding = fallback |
109 |
|
110 # the changelog might not have the inline index flag |
|
111 # on. If the format of the changelog is the same as found in |
|
112 # .hgrc, apply any flags found in the .hgrc as well. |
|
113 # Otherwise, just version from the changelog |
|
114 v = self.changelog.version |
|
115 if v == self.revlogversion: |
|
116 v |= flags |
|
117 self.revlogversion = v |
|
118 |
98 |
119 self.tagscache = None |
99 self.tagscache = None |
120 self.branchcache = None |
100 self.branchcache = None |
121 self.nodetagscache = None |
101 self.nodetagscache = None |
122 self.filterpats = {} |
102 self.filterpats = {} |
491 return os.path.join(self.root, f) |
471 return os.path.join(self.root, f) |
492 |
472 |
493 def file(self, f): |
473 def file(self, f): |
494 if f[0] == '/': |
474 if f[0] == '/': |
495 f = f[1:] |
475 f = f[1:] |
496 return filelog.filelog(self.sopener, f, self.revlogversion) |
476 return filelog.filelog(self.sopener, f) |
497 |
477 |
498 def changectx(self, changeid=None): |
478 def changectx(self, changeid=None): |
499 return context.changectx(self, changeid) |
479 return context.changectx(self, changeid) |
500 |
480 |
501 def workingctx(self): |
481 def workingctx(self): |
1802 |
1782 |
1803 # write changelog data to temp files so concurrent readers will not see |
1783 # write changelog data to temp files so concurrent readers will not see |
1804 # inconsistent view |
1784 # inconsistent view |
1805 cl = None |
1785 cl = None |
1806 try: |
1786 try: |
1807 cl = appendfile.appendchangelog(self.sopener, |
1787 cl = appendfile.appendchangelog(self.sopener) |
1808 self.changelog.version) |
|
1809 |
|
1810 oldheads = len(cl.heads()) |
1788 oldheads = len(cl.heads()) |
1811 |
1789 |
1812 # pull off the changeset group |
1790 # pull off the changeset group |
1813 self.ui.status(_("adding changesets\n")) |
1791 self.ui.status(_("adding changesets\n")) |
1814 cor = cl.count() - 1 |
1792 cor = cl.count() - 1 |
1846 finally: |
1824 finally: |
1847 if cl: |
1825 if cl: |
1848 cl.cleanup() |
1826 cl.cleanup() |
1849 |
1827 |
1850 # make changelog see real files again |
1828 # make changelog see real files again |
1851 self.changelog = changelog.changelog(self.sopener, |
1829 self.changelog = changelog.changelog(self.sopener) |
1852 self.changelog.version) |
|
1853 self.changelog.checkinlinesize(tr) |
1830 self.changelog.checkinlinesize(tr) |
1854 |
1831 |
1855 newheads = len(self.changelog.heads()) |
1832 newheads = len(self.changelog.heads()) |
1856 heads = "" |
1833 heads = "" |
1857 if oldheads and newheads != oldheads: |
1834 if oldheads and newheads != oldheads: |