##// END OF EJS Templates
cmdutil: return a revlog from openrevlog() and split function...
Gregory Szorc -
r39314:53e53200 default
parent child Browse files
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 openrevlog(repo, cmd, file_, opts):
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