Show More
@@ -1054,7 +1054,7 b" def makefileobj(ctx, pat, mode='wb', **p" | |||
|
1054 | 1054 | fn = makefilename(ctx, pat, **props) |
|
1055 | 1055 | return open(fn, mode) |
|
1056 | 1056 | |
|
1057 |
def openre |
|
|
1057 | def openstorage(repo, cmd, file_, opts, returnrevlog=False): | |
|
1058 | 1058 | """opens the changelog, manifest, a filelog or a given revlog""" |
|
1059 | 1059 | cl = opts['changelog'] |
|
1060 | 1060 | mf = opts['manifest'] |
@@ -1092,7 +1092,21 b' def openrevlog(repo, cmd, file_, opts):' | |||
|
1092 | 1092 | filelog = repo.file(file_) |
|
1093 | 1093 | if len(filelog): |
|
1094 | 1094 | r = filelog |
|
1095 | ||
|
1096 | # Not all storage may be revlogs. If requested, try to return an actual | |
|
1097 | # revlog instance. | |
|
1098 | if returnrevlog: | |
|
1099 | if isinstance(r, revlog.revlog): | |
|
1100 | pass | |
|
1101 | elif util.safehasattr(r, '_revlog'): | |
|
1102 | r = r._revlog | |
|
1103 | elif r is not None: | |
|
1104 | raise error.Abort(_('%r does not appear to be a revlog') % r) | |
|
1105 | ||
|
1095 | 1106 | if not r: |
|
1107 | if not returnrevlog: | |
|
1108 | raise error.Abort(_('cannot give path to non-revlog')) | |
|
1109 | ||
|
1096 | 1110 | if not file_: |
|
1097 | 1111 | raise error.CommandError(cmd, _('invalid arguments')) |
|
1098 | 1112 | if not os.path.isfile(file_): |
@@ -1101,6 +1115,18 b' def openrevlog(repo, cmd, file_, opts):' | |||
|
1101 | 1115 | file_[:-2] + ".i") |
|
1102 | 1116 | return r |
|
1103 | 1117 | |
|
1118 | def openrevlog(repo, cmd, file_, opts): | |
|
1119 | """Obtain a revlog backing storage of an item. | |
|
1120 | ||
|
1121 | This is similar to ``openstorage()`` except it always returns a revlog. | |
|
1122 | ||
|
1123 | In most cases, a caller cares about the main storage object - not the | |
|
1124 | revlog backing it. Therefore, this function should only be used by code | |
|
1125 | that needs to examine low-level revlog implementation details. e.g. debug | |
|
1126 | commands. | |
|
1127 | """ | |
|
1128 | return openstorage(repo, cmd, file_, opts, returnrevlog=True) | |
|
1129 | ||
|
1104 | 1130 | def copy(ui, repo, pats, opts, rename=False): |
|
1105 | 1131 | # called with the repo lock held |
|
1106 | 1132 | # |
General Comments 0
You need to be logged in to leave comments.
Login now