Details
Details
Diff Detail
Diff Detail
- Repository
- rHG Mercurial
- Lint
Lint Skipped - Unit
Unit Tests Skipped
| Lint Skipped |
| Unit Tests Skipped |
| Path | Packages | |||
|---|---|---|---|---|
| M | mercurial/bundlerepo.py (4 lines) |
| Status | Author | Revision | |
|---|---|---|---|
| Accepted | indygreg | ||
| Accepted | indygreg | ||
| Accepted | indygreg | ||
| Accepted | indygreg | ||
| Accepted | indygreg | ||
| Accepted | indygreg | ||
| Accepted | indygreg | ||
| Accepted | indygreg | ||
| Accepted | indygreg | ||
| Accepted | indygreg | ||
| Needs Revision | indygreg | ||
| Needs Revision | indygreg | ||
| Needs Revision | indygreg | ||
| Accepted | indygreg | ||
| Needs Revision | indygreg | ||
| Closed | indygreg |
| return revlog.revlog._chunk(self, rev) | return revlog.revlog._chunk(self, rev) | ||||
| self.bundle.seek(self.start(rev)) | self.bundle.seek(self.start(rev)) | ||||
| return self.bundle.read(self.length(rev)) | return self.bundle.read(self.length(rev)) | ||||
| def revdiff(self, rev1, rev2): | def revdiff(self, rev1, rev2): | ||||
| """return or calculate a delta between two revisions""" | """return or calculate a delta between two revisions""" | ||||
| if rev1 > self.repotiprev and rev2 > self.repotiprev: | if rev1 > self.repotiprev and rev2 > self.repotiprev: | ||||
| # hot path for bundle | # hot path for bundle | ||||
| revb = self.index[rev2][3] | revb = self.index[rev2].baserev | ||||
| if revb == rev1: | if revb == rev1: | ||||
| return self._chunk(rev2) | return self._chunk(rev2) | ||||
| elif rev1 <= self.repotiprev and rev2 <= self.repotiprev: | elif rev1 <= self.repotiprev and rev2 <= self.repotiprev: | ||||
| return revlog.revlog.revdiff(self, rev1, rev2) | return revlog.revlog.revdiff(self, rev1, rev2) | ||||
| return mdiff.textdiff(self.revision(rev1, raw=True), | return mdiff.textdiff(self.revision(rev1, raw=True), | ||||
| self.revision(rev2, raw=True)) | self.revision(rev2, raw=True)) | ||||
| chain = [] | chain = [] | ||||
| iterrev = rev | iterrev = rev | ||||
| # reconstruct the revision if it is from a changegroup | # reconstruct the revision if it is from a changegroup | ||||
| while iterrev > self.repotiprev: | while iterrev > self.repotiprev: | ||||
| if self._cache and self._cache[1] == iterrev: | if self._cache and self._cache[1] == iterrev: | ||||
| rawtext = self._cache[2] | rawtext = self._cache[2] | ||||
| break | break | ||||
| chain.append(iterrev) | chain.append(iterrev) | ||||
| iterrev = self.index[iterrev][3] | iterrev = self.index[iterrev].baserev | ||||
| if rawtext is None: | if rawtext is None: | ||||
| rawtext = self.baserevision(iterrev) | rawtext = self.baserevision(iterrev) | ||||
| while chain: | while chain: | ||||
| delta = self._chunk(chain.pop()) | delta = self._chunk(chain.pop()) | ||||
| rawtext = mdiff.patches(rawtext, [delta]) | rawtext = mdiff.patches(rawtext, [delta]) | ||||
| text, validatehash = self._processflags(rawtext, self.flags(rev), | text, validatehash = self._processflags(rawtext, self.flags(rev), | ||||