##// END OF EJS Templates
match: compose 'set:' pattern as matcher...
Yuya Nishihara -
r38599:9f9ffe5f default
parent child Browse files
Show More
@@ -1,1048 +1,1063 b''
1 # match.py - filename matching
1 # match.py - filename matching
2 #
2 #
3 # Copyright 2008, 2009 Matt Mackall <mpm@selenic.com> and others
3 # Copyright 2008, 2009 Matt Mackall <mpm@selenic.com> and others
4 #
4 #
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2 or any later version.
6 # GNU General Public License version 2 or any later version.
7
7
8 from __future__ import absolute_import, print_function
8 from __future__ import absolute_import, print_function
9
9
10 import copy
10 import copy
11 import os
11 import os
12 import re
12 import re
13
13
14 from .i18n import _
14 from .i18n import _
15 from . import (
15 from . import (
16 encoding,
16 encoding,
17 error,
17 error,
18 pathutil,
18 pathutil,
19 pycompat,
19 pycompat,
20 util,
20 util,
21 )
21 )
22 from .utils import (
22 from .utils import (
23 stringutil,
23 stringutil,
24 )
24 )
25
25
26 allpatternkinds = ('re', 'glob', 'path', 'relglob', 'relpath', 'relre',
26 allpatternkinds = ('re', 'glob', 'path', 'relglob', 'relpath', 'relre',
27 'listfile', 'listfile0', 'set', 'include', 'subinclude',
27 'listfile', 'listfile0', 'set', 'include', 'subinclude',
28 'rootfilesin')
28 'rootfilesin')
29 cwdrelativepatternkinds = ('relpath', 'glob')
29 cwdrelativepatternkinds = ('relpath', 'glob')
30
30
31 propertycache = util.propertycache
31 propertycache = util.propertycache
32
32
33 def _rematcher(regex):
33 def _rematcher(regex):
34 '''compile the regexp with the best available regexp engine and return a
34 '''compile the regexp with the best available regexp engine and return a
35 matcher function'''
35 matcher function'''
36 m = util.re.compile(regex)
36 m = util.re.compile(regex)
37 try:
37 try:
38 # slightly faster, provided by facebook's re2 bindings
38 # slightly faster, provided by facebook's re2 bindings
39 return m.test_match
39 return m.test_match
40 except AttributeError:
40 except AttributeError:
41 return m.match
41 return m.match
42
42
43 def _expandsets(kindpats, ctx, listsubrepos):
43 def _expandsets(kindpats, ctx, listsubrepos):
44 '''Returns the kindpats list with the 'set' patterns expanded.'''
44 '''Returns the kindpats list with the 'set' patterns expanded.'''
45 fset = set()
45 fset = set()
46 other = []
46 other = []
47
47
48 for kind, pat, source in kindpats:
48 for kind, pat, source in kindpats:
49 if kind == 'set':
49 if kind == 'set':
50 if not ctx:
50 if not ctx:
51 raise error.ProgrammingError("fileset expression with no "
51 raise error.ProgrammingError("fileset expression with no "
52 "context")
52 "context")
53 s = ctx.getfileset(pat)
53 s = ctx.getfileset(pat)
54 fset.update(s)
54 fset.update(s)
55
55
56 if listsubrepos:
56 if listsubrepos:
57 for subpath in ctx.substate:
57 for subpath in ctx.substate:
58 s = ctx.sub(subpath).getfileset(pat)
58 s = ctx.sub(subpath).getfileset(pat)
59 fset.update(subpath + '/' + f for f in s)
59 fset.update(subpath + '/' + f for f in s)
60
60
61 continue
61 continue
62 other.append((kind, pat, source))
62 other.append((kind, pat, source))
63 return fset, other
63 return fset, other
64
64
65 def _expandsubinclude(kindpats, root):
65 def _expandsubinclude(kindpats, root):
66 '''Returns the list of subinclude matcher args and the kindpats without the
66 '''Returns the list of subinclude matcher args and the kindpats without the
67 subincludes in it.'''
67 subincludes in it.'''
68 relmatchers = []
68 relmatchers = []
69 other = []
69 other = []
70
70
71 for kind, pat, source in kindpats:
71 for kind, pat, source in kindpats:
72 if kind == 'subinclude':
72 if kind == 'subinclude':
73 sourceroot = pathutil.dirname(util.normpath(source))
73 sourceroot = pathutil.dirname(util.normpath(source))
74 pat = util.pconvert(pat)
74 pat = util.pconvert(pat)
75 path = pathutil.join(sourceroot, pat)
75 path = pathutil.join(sourceroot, pat)
76
76
77 newroot = pathutil.dirname(path)
77 newroot = pathutil.dirname(path)
78 matcherargs = (newroot, '', [], ['include:%s' % path])
78 matcherargs = (newroot, '', [], ['include:%s' % path])
79
79
80 prefix = pathutil.canonpath(root, root, newroot)
80 prefix = pathutil.canonpath(root, root, newroot)
81 if prefix:
81 if prefix:
82 prefix += '/'
82 prefix += '/'
83 relmatchers.append((prefix, matcherargs))
83 relmatchers.append((prefix, matcherargs))
84 else:
84 else:
85 other.append((kind, pat, source))
85 other.append((kind, pat, source))
86
86
87 return relmatchers, other
87 return relmatchers, other
88
88
89 def _kindpatsalwaysmatch(kindpats):
89 def _kindpatsalwaysmatch(kindpats):
90 """"Checks whether the kindspats match everything, as e.g.
90 """"Checks whether the kindspats match everything, as e.g.
91 'relpath:.' does.
91 'relpath:.' does.
92 """
92 """
93 for kind, pat, source in kindpats:
93 for kind, pat, source in kindpats:
94 if pat != '' or kind not in ['relpath', 'glob']:
94 if pat != '' or kind not in ['relpath', 'glob']:
95 return False
95 return False
96 return True
96 return True
97
97
98 def _buildkindpatsmatcher(matchercls, root, cwd, kindpats, ctx=None,
99 listsubrepos=False, badfn=None):
100 fset, kindpats = _expandsets(kindpats, ctx, listsubrepos)
101 matchers = []
102 if kindpats:
103 m = matchercls(root, cwd, kindpats, ctx=ctx, listsubrepos=listsubrepos,
104 badfn=badfn)
105 matchers.append(m)
106 if fset:
107 m = predicatematcher(root, cwd, fset.__contains__,
108 predrepr='fileset', badfn=badfn)
109 matchers.append(m)
110 if not matchers:
111 return nevermatcher(root, cwd, badfn=badfn)
112 if len(matchers) == 1:
113 return matchers[0]
114 return unionmatcher(matchers)
115
98 def match(root, cwd, patterns=None, include=None, exclude=None, default='glob',
116 def match(root, cwd, patterns=None, include=None, exclude=None, default='glob',
99 exact=False, auditor=None, ctx=None, listsubrepos=False, warn=None,
117 exact=False, auditor=None, ctx=None, listsubrepos=False, warn=None,
100 badfn=None, icasefs=False):
118 badfn=None, icasefs=False):
101 """build an object to match a set of file patterns
119 """build an object to match a set of file patterns
102
120
103 arguments:
121 arguments:
104 root - the canonical root of the tree you're matching against
122 root - the canonical root of the tree you're matching against
105 cwd - the current working directory, if relevant
123 cwd - the current working directory, if relevant
106 patterns - patterns to find
124 patterns - patterns to find
107 include - patterns to include (unless they are excluded)
125 include - patterns to include (unless they are excluded)
108 exclude - patterns to exclude (even if they are included)
126 exclude - patterns to exclude (even if they are included)
109 default - if a pattern in patterns has no explicit type, assume this one
127 default - if a pattern in patterns has no explicit type, assume this one
110 exact - patterns are actually filenames (include/exclude still apply)
128 exact - patterns are actually filenames (include/exclude still apply)
111 warn - optional function used for printing warnings
129 warn - optional function used for printing warnings
112 badfn - optional bad() callback for this matcher instead of the default
130 badfn - optional bad() callback for this matcher instead of the default
113 icasefs - make a matcher for wdir on case insensitive filesystems, which
131 icasefs - make a matcher for wdir on case insensitive filesystems, which
114 normalizes the given patterns to the case in the filesystem
132 normalizes the given patterns to the case in the filesystem
115
133
116 a pattern is one of:
134 a pattern is one of:
117 'glob:<glob>' - a glob relative to cwd
135 'glob:<glob>' - a glob relative to cwd
118 're:<regexp>' - a regular expression
136 're:<regexp>' - a regular expression
119 'path:<path>' - a path relative to repository root, which is matched
137 'path:<path>' - a path relative to repository root, which is matched
120 recursively
138 recursively
121 'rootfilesin:<path>' - a path relative to repository root, which is
139 'rootfilesin:<path>' - a path relative to repository root, which is
122 matched non-recursively (will not match subdirectories)
140 matched non-recursively (will not match subdirectories)
123 'relglob:<glob>' - an unrooted glob (*.c matches C files in all dirs)
141 'relglob:<glob>' - an unrooted glob (*.c matches C files in all dirs)
124 'relpath:<path>' - a path relative to cwd
142 'relpath:<path>' - a path relative to cwd
125 'relre:<regexp>' - a regexp that needn't match the start of a name
143 'relre:<regexp>' - a regexp that needn't match the start of a name
126 'set:<fileset>' - a fileset expression
144 'set:<fileset>' - a fileset expression
127 'include:<path>' - a file of patterns to read and include
145 'include:<path>' - a file of patterns to read and include
128 'subinclude:<path>' - a file of patterns to match against files under
146 'subinclude:<path>' - a file of patterns to match against files under
129 the same directory
147 the same directory
130 '<something>' - a pattern of the specified default type
148 '<something>' - a pattern of the specified default type
131 """
149 """
132 normalize = _donormalize
150 normalize = _donormalize
133 if icasefs:
151 if icasefs:
134 if exact:
152 if exact:
135 raise error.ProgrammingError("a case-insensitive exact matcher "
153 raise error.ProgrammingError("a case-insensitive exact matcher "
136 "doesn't make sense")
154 "doesn't make sense")
137 dirstate = ctx.repo().dirstate
155 dirstate = ctx.repo().dirstate
138 dsnormalize = dirstate.normalize
156 dsnormalize = dirstate.normalize
139
157
140 def normalize(patterns, default, root, cwd, auditor, warn):
158 def normalize(patterns, default, root, cwd, auditor, warn):
141 kp = _donormalize(patterns, default, root, cwd, auditor, warn)
159 kp = _donormalize(patterns, default, root, cwd, auditor, warn)
142 kindpats = []
160 kindpats = []
143 for kind, pats, source in kp:
161 for kind, pats, source in kp:
144 if kind not in ('re', 'relre'): # regex can't be normalized
162 if kind not in ('re', 'relre'): # regex can't be normalized
145 p = pats
163 p = pats
146 pats = dsnormalize(pats)
164 pats = dsnormalize(pats)
147
165
148 # Preserve the original to handle a case only rename.
166 # Preserve the original to handle a case only rename.
149 if p != pats and p in dirstate:
167 if p != pats and p in dirstate:
150 kindpats.append((kind, p, source))
168 kindpats.append((kind, p, source))
151
169
152 kindpats.append((kind, pats, source))
170 kindpats.append((kind, pats, source))
153 return kindpats
171 return kindpats
154
172
155 if exact:
173 if exact:
156 m = exactmatcher(root, cwd, patterns, badfn)
174 m = exactmatcher(root, cwd, patterns, badfn)
157 elif patterns:
175 elif patterns:
158 kindpats = normalize(patterns, default, root, cwd, auditor, warn)
176 kindpats = normalize(patterns, default, root, cwd, auditor, warn)
159 if _kindpatsalwaysmatch(kindpats):
177 if _kindpatsalwaysmatch(kindpats):
160 m = alwaysmatcher(root, cwd, badfn, relativeuipath=True)
178 m = alwaysmatcher(root, cwd, badfn, relativeuipath=True)
161 else:
179 else:
162 m = patternmatcher(root, cwd, kindpats, ctx=ctx,
180 m = _buildkindpatsmatcher(patternmatcher, root, cwd, kindpats,
163 listsubrepos=listsubrepos, badfn=badfn)
181 ctx=ctx, listsubrepos=listsubrepos,
182 badfn=badfn)
164 else:
183 else:
165 # It's a little strange that no patterns means to match everything.
184 # It's a little strange that no patterns means to match everything.
166 # Consider changing this to match nothing (probably using nevermatcher).
185 # Consider changing this to match nothing (probably using nevermatcher).
167 m = alwaysmatcher(root, cwd, badfn)
186 m = alwaysmatcher(root, cwd, badfn)
168
187
169 if include:
188 if include:
170 kindpats = normalize(include, 'glob', root, cwd, auditor, warn)
189 kindpats = normalize(include, 'glob', root, cwd, auditor, warn)
171 im = includematcher(root, cwd, kindpats, ctx=ctx,
190 im = _buildkindpatsmatcher(includematcher, root, cwd, kindpats, ctx=ctx,
172 listsubrepos=listsubrepos, badfn=None)
191 listsubrepos=listsubrepos, badfn=None)
173 m = intersectmatchers(m, im)
192 m = intersectmatchers(m, im)
174 if exclude:
193 if exclude:
175 kindpats = normalize(exclude, 'glob', root, cwd, auditor, warn)
194 kindpats = normalize(exclude, 'glob', root, cwd, auditor, warn)
176 em = includematcher(root, cwd, kindpats, ctx=ctx,
195 em = _buildkindpatsmatcher(includematcher, root, cwd, kindpats, ctx=ctx,
177 listsubrepos=listsubrepos, badfn=None)
196 listsubrepos=listsubrepos, badfn=None)
178 m = differencematcher(m, em)
197 m = differencematcher(m, em)
179 return m
198 return m
180
199
181 def exact(root, cwd, files, badfn=None):
200 def exact(root, cwd, files, badfn=None):
182 return exactmatcher(root, cwd, files, badfn=badfn)
201 return exactmatcher(root, cwd, files, badfn=badfn)
183
202
184 def always(root, cwd):
203 def always(root, cwd):
185 return alwaysmatcher(root, cwd)
204 return alwaysmatcher(root, cwd)
186
205
187 def never(root, cwd):
206 def never(root, cwd):
188 return nevermatcher(root, cwd)
207 return nevermatcher(root, cwd)
189
208
190 def badmatch(match, badfn):
209 def badmatch(match, badfn):
191 """Make a copy of the given matcher, replacing its bad method with the given
210 """Make a copy of the given matcher, replacing its bad method with the given
192 one.
211 one.
193 """
212 """
194 m = copy.copy(match)
213 m = copy.copy(match)
195 m.bad = badfn
214 m.bad = badfn
196 return m
215 return m
197
216
198 def _donormalize(patterns, default, root, cwd, auditor, warn):
217 def _donormalize(patterns, default, root, cwd, auditor, warn):
199 '''Convert 'kind:pat' from the patterns list to tuples with kind and
218 '''Convert 'kind:pat' from the patterns list to tuples with kind and
200 normalized and rooted patterns and with listfiles expanded.'''
219 normalized and rooted patterns and with listfiles expanded.'''
201 kindpats = []
220 kindpats = []
202 for kind, pat in [_patsplit(p, default) for p in patterns]:
221 for kind, pat in [_patsplit(p, default) for p in patterns]:
203 if kind in cwdrelativepatternkinds:
222 if kind in cwdrelativepatternkinds:
204 pat = pathutil.canonpath(root, cwd, pat, auditor)
223 pat = pathutil.canonpath(root, cwd, pat, auditor)
205 elif kind in ('relglob', 'path', 'rootfilesin'):
224 elif kind in ('relglob', 'path', 'rootfilesin'):
206 pat = util.normpath(pat)
225 pat = util.normpath(pat)
207 elif kind in ('listfile', 'listfile0'):
226 elif kind in ('listfile', 'listfile0'):
208 try:
227 try:
209 files = util.readfile(pat)
228 files = util.readfile(pat)
210 if kind == 'listfile0':
229 if kind == 'listfile0':
211 files = files.split('\0')
230 files = files.split('\0')
212 else:
231 else:
213 files = files.splitlines()
232 files = files.splitlines()
214 files = [f for f in files if f]
233 files = [f for f in files if f]
215 except EnvironmentError:
234 except EnvironmentError:
216 raise error.Abort(_("unable to read file list (%s)") % pat)
235 raise error.Abort(_("unable to read file list (%s)") % pat)
217 for k, p, source in _donormalize(files, default, root, cwd,
236 for k, p, source in _donormalize(files, default, root, cwd,
218 auditor, warn):
237 auditor, warn):
219 kindpats.append((k, p, pat))
238 kindpats.append((k, p, pat))
220 continue
239 continue
221 elif kind == 'include':
240 elif kind == 'include':
222 try:
241 try:
223 fullpath = os.path.join(root, util.localpath(pat))
242 fullpath = os.path.join(root, util.localpath(pat))
224 includepats = readpatternfile(fullpath, warn)
243 includepats = readpatternfile(fullpath, warn)
225 for k, p, source in _donormalize(includepats, default,
244 for k, p, source in _donormalize(includepats, default,
226 root, cwd, auditor, warn):
245 root, cwd, auditor, warn):
227 kindpats.append((k, p, source or pat))
246 kindpats.append((k, p, source or pat))
228 except error.Abort as inst:
247 except error.Abort as inst:
229 raise error.Abort('%s: %s' % (pat, inst[0]))
248 raise error.Abort('%s: %s' % (pat, inst[0]))
230 except IOError as inst:
249 except IOError as inst:
231 if warn:
250 if warn:
232 warn(_("skipping unreadable pattern file '%s': %s\n") %
251 warn(_("skipping unreadable pattern file '%s': %s\n") %
233 (pat, stringutil.forcebytestr(inst.strerror)))
252 (pat, stringutil.forcebytestr(inst.strerror)))
234 continue
253 continue
235 # else: re or relre - which cannot be normalized
254 # else: re or relre - which cannot be normalized
236 kindpats.append((kind, pat, ''))
255 kindpats.append((kind, pat, ''))
237 return kindpats
256 return kindpats
238
257
239 class basematcher(object):
258 class basematcher(object):
240
259
241 def __init__(self, root, cwd, badfn=None, relativeuipath=True):
260 def __init__(self, root, cwd, badfn=None, relativeuipath=True):
242 self._root = root
261 self._root = root
243 self._cwd = cwd
262 self._cwd = cwd
244 if badfn is not None:
263 if badfn is not None:
245 self.bad = badfn
264 self.bad = badfn
246 self._relativeuipath = relativeuipath
265 self._relativeuipath = relativeuipath
247
266
248 def __call__(self, fn):
267 def __call__(self, fn):
249 return self.matchfn(fn)
268 return self.matchfn(fn)
250 def __iter__(self):
269 def __iter__(self):
251 for f in self._files:
270 for f in self._files:
252 yield f
271 yield f
253 # Callbacks related to how the matcher is used by dirstate.walk.
272 # Callbacks related to how the matcher is used by dirstate.walk.
254 # Subscribers to these events must monkeypatch the matcher object.
273 # Subscribers to these events must monkeypatch the matcher object.
255 def bad(self, f, msg):
274 def bad(self, f, msg):
256 '''Callback from dirstate.walk for each explicit file that can't be
275 '''Callback from dirstate.walk for each explicit file that can't be
257 found/accessed, with an error message.'''
276 found/accessed, with an error message.'''
258
277
259 # If an explicitdir is set, it will be called when an explicitly listed
278 # If an explicitdir is set, it will be called when an explicitly listed
260 # directory is visited.
279 # directory is visited.
261 explicitdir = None
280 explicitdir = None
262
281
263 # If an traversedir is set, it will be called when a directory discovered
282 # If an traversedir is set, it will be called when a directory discovered
264 # by recursive traversal is visited.
283 # by recursive traversal is visited.
265 traversedir = None
284 traversedir = None
266
285
267 def abs(self, f):
286 def abs(self, f):
268 '''Convert a repo path back to path that is relative to the root of the
287 '''Convert a repo path back to path that is relative to the root of the
269 matcher.'''
288 matcher.'''
270 return f
289 return f
271
290
272 def rel(self, f):
291 def rel(self, f):
273 '''Convert repo path back to path that is relative to cwd of matcher.'''
292 '''Convert repo path back to path that is relative to cwd of matcher.'''
274 return util.pathto(self._root, self._cwd, f)
293 return util.pathto(self._root, self._cwd, f)
275
294
276 def uipath(self, f):
295 def uipath(self, f):
277 '''Convert repo path to a display path. If patterns or -I/-X were used
296 '''Convert repo path to a display path. If patterns or -I/-X were used
278 to create this matcher, the display path will be relative to cwd.
297 to create this matcher, the display path will be relative to cwd.
279 Otherwise it is relative to the root of the repo.'''
298 Otherwise it is relative to the root of the repo.'''
280 return (self._relativeuipath and self.rel(f)) or self.abs(f)
299 return (self._relativeuipath and self.rel(f)) or self.abs(f)
281
300
282 @propertycache
301 @propertycache
283 def _files(self):
302 def _files(self):
284 return []
303 return []
285
304
286 def files(self):
305 def files(self):
287 '''Explicitly listed files or patterns or roots:
306 '''Explicitly listed files or patterns or roots:
288 if no patterns or .always(): empty list,
307 if no patterns or .always(): empty list,
289 if exact: list exact files,
308 if exact: list exact files,
290 if not .anypats(): list all files and dirs,
309 if not .anypats(): list all files and dirs,
291 else: optimal roots'''
310 else: optimal roots'''
292 return self._files
311 return self._files
293
312
294 @propertycache
313 @propertycache
295 def _fileset(self):
314 def _fileset(self):
296 return set(self._files)
315 return set(self._files)
297
316
298 def exact(self, f):
317 def exact(self, f):
299 '''Returns True if f is in .files().'''
318 '''Returns True if f is in .files().'''
300 return f in self._fileset
319 return f in self._fileset
301
320
302 def matchfn(self, f):
321 def matchfn(self, f):
303 return False
322 return False
304
323
305 def visitdir(self, dir):
324 def visitdir(self, dir):
306 '''Decides whether a directory should be visited based on whether it
325 '''Decides whether a directory should be visited based on whether it
307 has potential matches in it or one of its subdirectories. This is
326 has potential matches in it or one of its subdirectories. This is
308 based on the match's primary, included, and excluded patterns.
327 based on the match's primary, included, and excluded patterns.
309
328
310 Returns the string 'all' if the given directory and all subdirectories
329 Returns the string 'all' if the given directory and all subdirectories
311 should be visited. Otherwise returns True or False indicating whether
330 should be visited. Otherwise returns True or False indicating whether
312 the given directory should be visited.
331 the given directory should be visited.
313 '''
332 '''
314 return True
333 return True
315
334
316 def always(self):
335 def always(self):
317 '''Matcher will match everything and .files() will be empty --
336 '''Matcher will match everything and .files() will be empty --
318 optimization might be possible.'''
337 optimization might be possible.'''
319 return False
338 return False
320
339
321 def isexact(self):
340 def isexact(self):
322 '''Matcher will match exactly the list of files in .files() --
341 '''Matcher will match exactly the list of files in .files() --
323 optimization might be possible.'''
342 optimization might be possible.'''
324 return False
343 return False
325
344
326 def prefix(self):
345 def prefix(self):
327 '''Matcher will match the paths in .files() recursively --
346 '''Matcher will match the paths in .files() recursively --
328 optimization might be possible.'''
347 optimization might be possible.'''
329 return False
348 return False
330
349
331 def anypats(self):
350 def anypats(self):
332 '''None of .always(), .isexact(), and .prefix() is true --
351 '''None of .always(), .isexact(), and .prefix() is true --
333 optimizations will be difficult.'''
352 optimizations will be difficult.'''
334 return not self.always() and not self.isexact() and not self.prefix()
353 return not self.always() and not self.isexact() and not self.prefix()
335
354
336 class alwaysmatcher(basematcher):
355 class alwaysmatcher(basematcher):
337 '''Matches everything.'''
356 '''Matches everything.'''
338
357
339 def __init__(self, root, cwd, badfn=None, relativeuipath=False):
358 def __init__(self, root, cwd, badfn=None, relativeuipath=False):
340 super(alwaysmatcher, self).__init__(root, cwd, badfn,
359 super(alwaysmatcher, self).__init__(root, cwd, badfn,
341 relativeuipath=relativeuipath)
360 relativeuipath=relativeuipath)
342
361
343 def always(self):
362 def always(self):
344 return True
363 return True
345
364
346 def matchfn(self, f):
365 def matchfn(self, f):
347 return True
366 return True
348
367
349 def visitdir(self, dir):
368 def visitdir(self, dir):
350 return 'all'
369 return 'all'
351
370
352 def __repr__(self):
371 def __repr__(self):
353 return r'<alwaysmatcher>'
372 return r'<alwaysmatcher>'
354
373
355 class nevermatcher(basematcher):
374 class nevermatcher(basematcher):
356 '''Matches nothing.'''
375 '''Matches nothing.'''
357
376
358 def __init__(self, root, cwd, badfn=None):
377 def __init__(self, root, cwd, badfn=None):
359 super(nevermatcher, self).__init__(root, cwd, badfn)
378 super(nevermatcher, self).__init__(root, cwd, badfn)
360
379
361 # It's a little weird to say that the nevermatcher is an exact matcher
380 # It's a little weird to say that the nevermatcher is an exact matcher
362 # or a prefix matcher, but it seems to make sense to let callers take
381 # or a prefix matcher, but it seems to make sense to let callers take
363 # fast paths based on either. There will be no exact matches, nor any
382 # fast paths based on either. There will be no exact matches, nor any
364 # prefixes (files() returns []), so fast paths iterating over them should
383 # prefixes (files() returns []), so fast paths iterating over them should
365 # be efficient (and correct).
384 # be efficient (and correct).
366 def isexact(self):
385 def isexact(self):
367 return True
386 return True
368
387
369 def prefix(self):
388 def prefix(self):
370 return True
389 return True
371
390
372 def visitdir(self, dir):
391 def visitdir(self, dir):
373 return False
392 return False
374
393
375 def __repr__(self):
394 def __repr__(self):
376 return r'<nevermatcher>'
395 return r'<nevermatcher>'
377
396
378 class predicatematcher(basematcher):
397 class predicatematcher(basematcher):
379 """A matcher adapter for a simple boolean function"""
398 """A matcher adapter for a simple boolean function"""
380
399
381 def __init__(self, root, cwd, predfn, predrepr=None, badfn=None):
400 def __init__(self, root, cwd, predfn, predrepr=None, badfn=None):
382 super(predicatematcher, self).__init__(root, cwd, badfn)
401 super(predicatematcher, self).__init__(root, cwd, badfn)
383 self.matchfn = predfn
402 self.matchfn = predfn
384 self._predrepr = predrepr
403 self._predrepr = predrepr
385
404
386 @encoding.strmethod
405 @encoding.strmethod
387 def __repr__(self):
406 def __repr__(self):
388 s = (stringutil.buildrepr(self._predrepr)
407 s = (stringutil.buildrepr(self._predrepr)
389 or pycompat.byterepr(self.matchfn))
408 or pycompat.byterepr(self.matchfn))
390 return '<predicatenmatcher pred=%s>' % s
409 return '<predicatenmatcher pred=%s>' % s
391
410
392 class patternmatcher(basematcher):
411 class patternmatcher(basematcher):
393
412
394 def __init__(self, root, cwd, kindpats, ctx=None, listsubrepos=False,
413 def __init__(self, root, cwd, kindpats, ctx=None, listsubrepos=False,
395 badfn=None):
414 badfn=None):
396 super(patternmatcher, self).__init__(root, cwd, badfn)
415 super(patternmatcher, self).__init__(root, cwd, badfn)
397
416
398 self._files = _explicitfiles(kindpats)
417 self._files = _explicitfiles(kindpats)
399 self._prefix = _prefix(kindpats)
418 self._prefix = _prefix(kindpats)
400 self._pats, self.matchfn = _buildmatch(ctx, kindpats, '$', listsubrepos,
419 self._pats, self.matchfn = _buildmatch(ctx, kindpats, '$', listsubrepos,
401 root)
420 root)
402
421
403 @propertycache
422 @propertycache
404 def _dirs(self):
423 def _dirs(self):
405 return set(util.dirs(self._fileset)) | {'.'}
424 return set(util.dirs(self._fileset)) | {'.'}
406
425
407 def visitdir(self, dir):
426 def visitdir(self, dir):
408 if self._prefix and dir in self._fileset:
427 if self._prefix and dir in self._fileset:
409 return 'all'
428 return 'all'
410 return ('.' in self._fileset or
429 return ('.' in self._fileset or
411 dir in self._fileset or
430 dir in self._fileset or
412 dir in self._dirs or
431 dir in self._dirs or
413 any(parentdir in self._fileset
432 any(parentdir in self._fileset
414 for parentdir in util.finddirs(dir)))
433 for parentdir in util.finddirs(dir)))
415
434
416 def prefix(self):
435 def prefix(self):
417 return self._prefix
436 return self._prefix
418
437
419 @encoding.strmethod
438 @encoding.strmethod
420 def __repr__(self):
439 def __repr__(self):
421 return ('<patternmatcher patterns=%r>' % pycompat.bytestr(self._pats))
440 return ('<patternmatcher patterns=%r>' % pycompat.bytestr(self._pats))
422
441
423 class includematcher(basematcher):
442 class includematcher(basematcher):
424
443
425 def __init__(self, root, cwd, kindpats, ctx=None, listsubrepos=False,
444 def __init__(self, root, cwd, kindpats, ctx=None, listsubrepos=False,
426 badfn=None):
445 badfn=None):
427 super(includematcher, self).__init__(root, cwd, badfn)
446 super(includematcher, self).__init__(root, cwd, badfn)
428
447
429 self._pats, self.matchfn = _buildmatch(ctx, kindpats, '(?:/|$)',
448 self._pats, self.matchfn = _buildmatch(ctx, kindpats, '(?:/|$)',
430 listsubrepos, root)
449 listsubrepos, root)
431 self._prefix = _prefix(kindpats)
450 self._prefix = _prefix(kindpats)
432 roots, dirs = _rootsanddirs(kindpats)
451 roots, dirs = _rootsanddirs(kindpats)
433 # roots are directories which are recursively included.
452 # roots are directories which are recursively included.
434 self._roots = set(roots)
453 self._roots = set(roots)
435 # dirs are directories which are non-recursively included.
454 # dirs are directories which are non-recursively included.
436 self._dirs = set(dirs)
455 self._dirs = set(dirs)
437
456
438 def visitdir(self, dir):
457 def visitdir(self, dir):
439 if self._prefix and dir in self._roots:
458 if self._prefix and dir in self._roots:
440 return 'all'
459 return 'all'
441 return ('.' in self._roots or
460 return ('.' in self._roots or
442 dir in self._roots or
461 dir in self._roots or
443 dir in self._dirs or
462 dir in self._dirs or
444 any(parentdir in self._roots
463 any(parentdir in self._roots
445 for parentdir in util.finddirs(dir)))
464 for parentdir in util.finddirs(dir)))
446
465
447 @encoding.strmethod
466 @encoding.strmethod
448 def __repr__(self):
467 def __repr__(self):
449 return ('<includematcher includes=%r>' % pycompat.bytestr(self._pats))
468 return ('<includematcher includes=%r>' % pycompat.bytestr(self._pats))
450
469
451 class exactmatcher(basematcher):
470 class exactmatcher(basematcher):
452 '''Matches the input files exactly. They are interpreted as paths, not
471 '''Matches the input files exactly. They are interpreted as paths, not
453 patterns (so no kind-prefixes).
472 patterns (so no kind-prefixes).
454 '''
473 '''
455
474
456 def __init__(self, root, cwd, files, badfn=None):
475 def __init__(self, root, cwd, files, badfn=None):
457 super(exactmatcher, self).__init__(root, cwd, badfn)
476 super(exactmatcher, self).__init__(root, cwd, badfn)
458
477
459 if isinstance(files, list):
478 if isinstance(files, list):
460 self._files = files
479 self._files = files
461 else:
480 else:
462 self._files = list(files)
481 self._files = list(files)
463
482
464 matchfn = basematcher.exact
483 matchfn = basematcher.exact
465
484
466 @propertycache
485 @propertycache
467 def _dirs(self):
486 def _dirs(self):
468 return set(util.dirs(self._fileset)) | {'.'}
487 return set(util.dirs(self._fileset)) | {'.'}
469
488
470 def visitdir(self, dir):
489 def visitdir(self, dir):
471 return dir in self._dirs
490 return dir in self._dirs
472
491
473 def isexact(self):
492 def isexact(self):
474 return True
493 return True
475
494
476 @encoding.strmethod
495 @encoding.strmethod
477 def __repr__(self):
496 def __repr__(self):
478 return ('<exactmatcher files=%r>' % self._files)
497 return ('<exactmatcher files=%r>' % self._files)
479
498
480 class differencematcher(basematcher):
499 class differencematcher(basematcher):
481 '''Composes two matchers by matching if the first matches and the second
500 '''Composes two matchers by matching if the first matches and the second
482 does not.
501 does not.
483
502
484 The second matcher's non-matching-attributes (root, cwd, bad, explicitdir,
503 The second matcher's non-matching-attributes (root, cwd, bad, explicitdir,
485 traversedir) are ignored.
504 traversedir) are ignored.
486 '''
505 '''
487 def __init__(self, m1, m2):
506 def __init__(self, m1, m2):
488 super(differencematcher, self).__init__(m1._root, m1._cwd)
507 super(differencematcher, self).__init__(m1._root, m1._cwd)
489 self._m1 = m1
508 self._m1 = m1
490 self._m2 = m2
509 self._m2 = m2
491 self.bad = m1.bad
510 self.bad = m1.bad
492 self.explicitdir = m1.explicitdir
511 self.explicitdir = m1.explicitdir
493 self.traversedir = m1.traversedir
512 self.traversedir = m1.traversedir
494
513
495 def matchfn(self, f):
514 def matchfn(self, f):
496 return self._m1(f) and not self._m2(f)
515 return self._m1(f) and not self._m2(f)
497
516
498 @propertycache
517 @propertycache
499 def _files(self):
518 def _files(self):
500 if self.isexact():
519 if self.isexact():
501 return [f for f in self._m1.files() if self(f)]
520 return [f for f in self._m1.files() if self(f)]
502 # If m1 is not an exact matcher, we can't easily figure out the set of
521 # If m1 is not an exact matcher, we can't easily figure out the set of
503 # files, because its files() are not always files. For example, if
522 # files, because its files() are not always files. For example, if
504 # m1 is "path:dir" and m2 is "rootfileins:.", we don't
523 # m1 is "path:dir" and m2 is "rootfileins:.", we don't
505 # want to remove "dir" from the set even though it would match m2,
524 # want to remove "dir" from the set even though it would match m2,
506 # because the "dir" in m1 may not be a file.
525 # because the "dir" in m1 may not be a file.
507 return self._m1.files()
526 return self._m1.files()
508
527
509 def visitdir(self, dir):
528 def visitdir(self, dir):
510 if self._m2.visitdir(dir) == 'all':
529 if self._m2.visitdir(dir) == 'all':
511 return False
530 return False
512 return bool(self._m1.visitdir(dir))
531 return bool(self._m1.visitdir(dir))
513
532
514 def isexact(self):
533 def isexact(self):
515 return self._m1.isexact()
534 return self._m1.isexact()
516
535
517 @encoding.strmethod
536 @encoding.strmethod
518 def __repr__(self):
537 def __repr__(self):
519 return ('<differencematcher m1=%r, m2=%r>' % (self._m1, self._m2))
538 return ('<differencematcher m1=%r, m2=%r>' % (self._m1, self._m2))
520
539
521 def intersectmatchers(m1, m2):
540 def intersectmatchers(m1, m2):
522 '''Composes two matchers by matching if both of them match.
541 '''Composes two matchers by matching if both of them match.
523
542
524 The second matcher's non-matching-attributes (root, cwd, bad, explicitdir,
543 The second matcher's non-matching-attributes (root, cwd, bad, explicitdir,
525 traversedir) are ignored.
544 traversedir) are ignored.
526 '''
545 '''
527 if m1 is None or m2 is None:
546 if m1 is None or m2 is None:
528 return m1 or m2
547 return m1 or m2
529 if m1.always():
548 if m1.always():
530 m = copy.copy(m2)
549 m = copy.copy(m2)
531 # TODO: Consider encapsulating these things in a class so there's only
550 # TODO: Consider encapsulating these things in a class so there's only
532 # one thing to copy from m1.
551 # one thing to copy from m1.
533 m.bad = m1.bad
552 m.bad = m1.bad
534 m.explicitdir = m1.explicitdir
553 m.explicitdir = m1.explicitdir
535 m.traversedir = m1.traversedir
554 m.traversedir = m1.traversedir
536 m.abs = m1.abs
555 m.abs = m1.abs
537 m.rel = m1.rel
556 m.rel = m1.rel
538 m._relativeuipath |= m1._relativeuipath
557 m._relativeuipath |= m1._relativeuipath
539 return m
558 return m
540 if m2.always():
559 if m2.always():
541 m = copy.copy(m1)
560 m = copy.copy(m1)
542 m._relativeuipath |= m2._relativeuipath
561 m._relativeuipath |= m2._relativeuipath
543 return m
562 return m
544 return intersectionmatcher(m1, m2)
563 return intersectionmatcher(m1, m2)
545
564
546 class intersectionmatcher(basematcher):
565 class intersectionmatcher(basematcher):
547 def __init__(self, m1, m2):
566 def __init__(self, m1, m2):
548 super(intersectionmatcher, self).__init__(m1._root, m1._cwd)
567 super(intersectionmatcher, self).__init__(m1._root, m1._cwd)
549 self._m1 = m1
568 self._m1 = m1
550 self._m2 = m2
569 self._m2 = m2
551 self.bad = m1.bad
570 self.bad = m1.bad
552 self.explicitdir = m1.explicitdir
571 self.explicitdir = m1.explicitdir
553 self.traversedir = m1.traversedir
572 self.traversedir = m1.traversedir
554
573
555 @propertycache
574 @propertycache
556 def _files(self):
575 def _files(self):
557 if self.isexact():
576 if self.isexact():
558 m1, m2 = self._m1, self._m2
577 m1, m2 = self._m1, self._m2
559 if not m1.isexact():
578 if not m1.isexact():
560 m1, m2 = m2, m1
579 m1, m2 = m2, m1
561 return [f for f in m1.files() if m2(f)]
580 return [f for f in m1.files() if m2(f)]
562 # It neither m1 nor m2 is an exact matcher, we can't easily intersect
581 # It neither m1 nor m2 is an exact matcher, we can't easily intersect
563 # the set of files, because their files() are not always files. For
582 # the set of files, because their files() are not always files. For
564 # example, if intersecting a matcher "-I glob:foo.txt" with matcher of
583 # example, if intersecting a matcher "-I glob:foo.txt" with matcher of
565 # "path:dir2", we don't want to remove "dir2" from the set.
584 # "path:dir2", we don't want to remove "dir2" from the set.
566 return self._m1.files() + self._m2.files()
585 return self._m1.files() + self._m2.files()
567
586
568 def matchfn(self, f):
587 def matchfn(self, f):
569 return self._m1(f) and self._m2(f)
588 return self._m1(f) and self._m2(f)
570
589
571 def visitdir(self, dir):
590 def visitdir(self, dir):
572 visit1 = self._m1.visitdir(dir)
591 visit1 = self._m1.visitdir(dir)
573 if visit1 == 'all':
592 if visit1 == 'all':
574 return self._m2.visitdir(dir)
593 return self._m2.visitdir(dir)
575 # bool() because visit1=True + visit2='all' should not be 'all'
594 # bool() because visit1=True + visit2='all' should not be 'all'
576 return bool(visit1 and self._m2.visitdir(dir))
595 return bool(visit1 and self._m2.visitdir(dir))
577
596
578 def always(self):
597 def always(self):
579 return self._m1.always() and self._m2.always()
598 return self._m1.always() and self._m2.always()
580
599
581 def isexact(self):
600 def isexact(self):
582 return self._m1.isexact() or self._m2.isexact()
601 return self._m1.isexact() or self._m2.isexact()
583
602
584 @encoding.strmethod
603 @encoding.strmethod
585 def __repr__(self):
604 def __repr__(self):
586 return ('<intersectionmatcher m1=%r, m2=%r>' % (self._m1, self._m2))
605 return ('<intersectionmatcher m1=%r, m2=%r>' % (self._m1, self._m2))
587
606
588 class subdirmatcher(basematcher):
607 class subdirmatcher(basematcher):
589 """Adapt a matcher to work on a subdirectory only.
608 """Adapt a matcher to work on a subdirectory only.
590
609
591 The paths are remapped to remove/insert the path as needed:
610 The paths are remapped to remove/insert the path as needed:
592
611
593 >>> from . import pycompat
612 >>> from . import pycompat
594 >>> m1 = match(b'root', b'', [b'a.txt', b'sub/b.txt'])
613 >>> m1 = match(b'root', b'', [b'a.txt', b'sub/b.txt'])
595 >>> m2 = subdirmatcher(b'sub', m1)
614 >>> m2 = subdirmatcher(b'sub', m1)
596 >>> bool(m2(b'a.txt'))
615 >>> bool(m2(b'a.txt'))
597 False
616 False
598 >>> bool(m2(b'b.txt'))
617 >>> bool(m2(b'b.txt'))
599 True
618 True
600 >>> bool(m2.matchfn(b'a.txt'))
619 >>> bool(m2.matchfn(b'a.txt'))
601 False
620 False
602 >>> bool(m2.matchfn(b'b.txt'))
621 >>> bool(m2.matchfn(b'b.txt'))
603 True
622 True
604 >>> m2.files()
623 >>> m2.files()
605 ['b.txt']
624 ['b.txt']
606 >>> m2.exact(b'b.txt')
625 >>> m2.exact(b'b.txt')
607 True
626 True
608 >>> util.pconvert(m2.rel(b'b.txt'))
627 >>> util.pconvert(m2.rel(b'b.txt'))
609 'sub/b.txt'
628 'sub/b.txt'
610 >>> def bad(f, msg):
629 >>> def bad(f, msg):
611 ... print(pycompat.sysstr(b"%s: %s" % (f, msg)))
630 ... print(pycompat.sysstr(b"%s: %s" % (f, msg)))
612 >>> m1.bad = bad
631 >>> m1.bad = bad
613 >>> m2.bad(b'x.txt', b'No such file')
632 >>> m2.bad(b'x.txt', b'No such file')
614 sub/x.txt: No such file
633 sub/x.txt: No such file
615 >>> m2.abs(b'c.txt')
634 >>> m2.abs(b'c.txt')
616 'sub/c.txt'
635 'sub/c.txt'
617 """
636 """
618
637
619 def __init__(self, path, matcher):
638 def __init__(self, path, matcher):
620 super(subdirmatcher, self).__init__(matcher._root, matcher._cwd)
639 super(subdirmatcher, self).__init__(matcher._root, matcher._cwd)
621 self._path = path
640 self._path = path
622 self._matcher = matcher
641 self._matcher = matcher
623 self._always = matcher.always()
642 self._always = matcher.always()
624
643
625 self._files = [f[len(path) + 1:] for f in matcher._files
644 self._files = [f[len(path) + 1:] for f in matcher._files
626 if f.startswith(path + "/")]
645 if f.startswith(path + "/")]
627
646
628 # If the parent repo had a path to this subrepo and the matcher is
647 # If the parent repo had a path to this subrepo and the matcher is
629 # a prefix matcher, this submatcher always matches.
648 # a prefix matcher, this submatcher always matches.
630 if matcher.prefix():
649 if matcher.prefix():
631 self._always = any(f == path for f in matcher._files)
650 self._always = any(f == path for f in matcher._files)
632
651
633 def bad(self, f, msg):
652 def bad(self, f, msg):
634 self._matcher.bad(self._path + "/" + f, msg)
653 self._matcher.bad(self._path + "/" + f, msg)
635
654
636 def abs(self, f):
655 def abs(self, f):
637 return self._matcher.abs(self._path + "/" + f)
656 return self._matcher.abs(self._path + "/" + f)
638
657
639 def rel(self, f):
658 def rel(self, f):
640 return self._matcher.rel(self._path + "/" + f)
659 return self._matcher.rel(self._path + "/" + f)
641
660
642 def uipath(self, f):
661 def uipath(self, f):
643 return self._matcher.uipath(self._path + "/" + f)
662 return self._matcher.uipath(self._path + "/" + f)
644
663
645 def matchfn(self, f):
664 def matchfn(self, f):
646 # Some information is lost in the superclass's constructor, so we
665 # Some information is lost in the superclass's constructor, so we
647 # can not accurately create the matching function for the subdirectory
666 # can not accurately create the matching function for the subdirectory
648 # from the inputs. Instead, we override matchfn() and visitdir() to
667 # from the inputs. Instead, we override matchfn() and visitdir() to
649 # call the original matcher with the subdirectory path prepended.
668 # call the original matcher with the subdirectory path prepended.
650 return self._matcher.matchfn(self._path + "/" + f)
669 return self._matcher.matchfn(self._path + "/" + f)
651
670
652 def visitdir(self, dir):
671 def visitdir(self, dir):
653 if dir == '.':
672 if dir == '.':
654 dir = self._path
673 dir = self._path
655 else:
674 else:
656 dir = self._path + "/" + dir
675 dir = self._path + "/" + dir
657 return self._matcher.visitdir(dir)
676 return self._matcher.visitdir(dir)
658
677
659 def always(self):
678 def always(self):
660 return self._always
679 return self._always
661
680
662 def prefix(self):
681 def prefix(self):
663 return self._matcher.prefix() and not self._always
682 return self._matcher.prefix() and not self._always
664
683
665 @encoding.strmethod
684 @encoding.strmethod
666 def __repr__(self):
685 def __repr__(self):
667 return ('<subdirmatcher path=%r, matcher=%r>' %
686 return ('<subdirmatcher path=%r, matcher=%r>' %
668 (self._path, self._matcher))
687 (self._path, self._matcher))
669
688
670 class unionmatcher(basematcher):
689 class unionmatcher(basematcher):
671 """A matcher that is the union of several matchers.
690 """A matcher that is the union of several matchers.
672
691
673 The non-matching-attributes (root, cwd, bad, explicitdir, traversedir) are
692 The non-matching-attributes (root, cwd, bad, explicitdir, traversedir) are
674 taken from the first matcher.
693 taken from the first matcher.
675 """
694 """
676
695
677 def __init__(self, matchers):
696 def __init__(self, matchers):
678 m1 = matchers[0]
697 m1 = matchers[0]
679 super(unionmatcher, self).__init__(m1._root, m1._cwd)
698 super(unionmatcher, self).__init__(m1._root, m1._cwd)
680 self.explicitdir = m1.explicitdir
699 self.explicitdir = m1.explicitdir
681 self.traversedir = m1.traversedir
700 self.traversedir = m1.traversedir
682 self._matchers = matchers
701 self._matchers = matchers
683
702
684 def matchfn(self, f):
703 def matchfn(self, f):
685 for match in self._matchers:
704 for match in self._matchers:
686 if match(f):
705 if match(f):
687 return True
706 return True
688 return False
707 return False
689
708
690 def visitdir(self, dir):
709 def visitdir(self, dir):
691 r = False
710 r = False
692 for m in self._matchers:
711 for m in self._matchers:
693 v = m.visitdir(dir)
712 v = m.visitdir(dir)
694 if v == 'all':
713 if v == 'all':
695 return v
714 return v
696 r |= v
715 r |= v
697 return r
716 return r
698
717
699 @encoding.strmethod
718 @encoding.strmethod
700 def __repr__(self):
719 def __repr__(self):
701 return ('<unionmatcher matchers=%r>' % self._matchers)
720 return ('<unionmatcher matchers=%r>' % self._matchers)
702
721
703 def patkind(pattern, default=None):
722 def patkind(pattern, default=None):
704 '''If pattern is 'kind:pat' with a known kind, return kind.'''
723 '''If pattern is 'kind:pat' with a known kind, return kind.'''
705 return _patsplit(pattern, default)[0]
724 return _patsplit(pattern, default)[0]
706
725
707 def _patsplit(pattern, default):
726 def _patsplit(pattern, default):
708 """Split a string into the optional pattern kind prefix and the actual
727 """Split a string into the optional pattern kind prefix and the actual
709 pattern."""
728 pattern."""
710 if ':' in pattern:
729 if ':' in pattern:
711 kind, pat = pattern.split(':', 1)
730 kind, pat = pattern.split(':', 1)
712 if kind in allpatternkinds:
731 if kind in allpatternkinds:
713 return kind, pat
732 return kind, pat
714 return default, pattern
733 return default, pattern
715
734
716 def _globre(pat):
735 def _globre(pat):
717 r'''Convert an extended glob string to a regexp string.
736 r'''Convert an extended glob string to a regexp string.
718
737
719 >>> from . import pycompat
738 >>> from . import pycompat
720 >>> def bprint(s):
739 >>> def bprint(s):
721 ... print(pycompat.sysstr(s))
740 ... print(pycompat.sysstr(s))
722 >>> bprint(_globre(br'?'))
741 >>> bprint(_globre(br'?'))
723 .
742 .
724 >>> bprint(_globre(br'*'))
743 >>> bprint(_globre(br'*'))
725 [^/]*
744 [^/]*
726 >>> bprint(_globre(br'**'))
745 >>> bprint(_globre(br'**'))
727 .*
746 .*
728 >>> bprint(_globre(br'**/a'))
747 >>> bprint(_globre(br'**/a'))
729 (?:.*/)?a
748 (?:.*/)?a
730 >>> bprint(_globre(br'a/**/b'))
749 >>> bprint(_globre(br'a/**/b'))
731 a/(?:.*/)?b
750 a/(?:.*/)?b
732 >>> bprint(_globre(br'[a*?!^][^b][!c]'))
751 >>> bprint(_globre(br'[a*?!^][^b][!c]'))
733 [a*?!^][\^b][^c]
752 [a*?!^][\^b][^c]
734 >>> bprint(_globre(br'{a,b}'))
753 >>> bprint(_globre(br'{a,b}'))
735 (?:a|b)
754 (?:a|b)
736 >>> bprint(_globre(br'.\*\?'))
755 >>> bprint(_globre(br'.\*\?'))
737 \.\*\?
756 \.\*\?
738 '''
757 '''
739 i, n = 0, len(pat)
758 i, n = 0, len(pat)
740 res = ''
759 res = ''
741 group = 0
760 group = 0
742 escape = util.stringutil.reescape
761 escape = util.stringutil.reescape
743 def peek():
762 def peek():
744 return i < n and pat[i:i + 1]
763 return i < n and pat[i:i + 1]
745 while i < n:
764 while i < n:
746 c = pat[i:i + 1]
765 c = pat[i:i + 1]
747 i += 1
766 i += 1
748 if c not in '*?[{},\\':
767 if c not in '*?[{},\\':
749 res += escape(c)
768 res += escape(c)
750 elif c == '*':
769 elif c == '*':
751 if peek() == '*':
770 if peek() == '*':
752 i += 1
771 i += 1
753 if peek() == '/':
772 if peek() == '/':
754 i += 1
773 i += 1
755 res += '(?:.*/)?'
774 res += '(?:.*/)?'
756 else:
775 else:
757 res += '.*'
776 res += '.*'
758 else:
777 else:
759 res += '[^/]*'
778 res += '[^/]*'
760 elif c == '?':
779 elif c == '?':
761 res += '.'
780 res += '.'
762 elif c == '[':
781 elif c == '[':
763 j = i
782 j = i
764 if j < n and pat[j:j + 1] in '!]':
783 if j < n and pat[j:j + 1] in '!]':
765 j += 1
784 j += 1
766 while j < n and pat[j:j + 1] != ']':
785 while j < n and pat[j:j + 1] != ']':
767 j += 1
786 j += 1
768 if j >= n:
787 if j >= n:
769 res += '\\['
788 res += '\\['
770 else:
789 else:
771 stuff = pat[i:j].replace('\\','\\\\')
790 stuff = pat[i:j].replace('\\','\\\\')
772 i = j + 1
791 i = j + 1
773 if stuff[0:1] == '!':
792 if stuff[0:1] == '!':
774 stuff = '^' + stuff[1:]
793 stuff = '^' + stuff[1:]
775 elif stuff[0:1] == '^':
794 elif stuff[0:1] == '^':
776 stuff = '\\' + stuff
795 stuff = '\\' + stuff
777 res = '%s[%s]' % (res, stuff)
796 res = '%s[%s]' % (res, stuff)
778 elif c == '{':
797 elif c == '{':
779 group += 1
798 group += 1
780 res += '(?:'
799 res += '(?:'
781 elif c == '}' and group:
800 elif c == '}' and group:
782 res += ')'
801 res += ')'
783 group -= 1
802 group -= 1
784 elif c == ',' and group:
803 elif c == ',' and group:
785 res += '|'
804 res += '|'
786 elif c == '\\':
805 elif c == '\\':
787 p = peek()
806 p = peek()
788 if p:
807 if p:
789 i += 1
808 i += 1
790 res += escape(p)
809 res += escape(p)
791 else:
810 else:
792 res += escape(c)
811 res += escape(c)
793 else:
812 else:
794 res += escape(c)
813 res += escape(c)
795 return res
814 return res
796
815
797 def _regex(kind, pat, globsuffix):
816 def _regex(kind, pat, globsuffix):
798 '''Convert a (normalized) pattern of any kind into a regular expression.
817 '''Convert a (normalized) pattern of any kind into a regular expression.
799 globsuffix is appended to the regexp of globs.'''
818 globsuffix is appended to the regexp of globs.'''
800 if not pat:
819 if not pat:
801 return ''
820 return ''
802 if kind == 're':
821 if kind == 're':
803 return pat
822 return pat
804 if kind in ('path', 'relpath'):
823 if kind in ('path', 'relpath'):
805 if pat == '.':
824 if pat == '.':
806 return ''
825 return ''
807 return util.stringutil.reescape(pat) + '(?:/|$)'
826 return util.stringutil.reescape(pat) + '(?:/|$)'
808 if kind == 'rootfilesin':
827 if kind == 'rootfilesin':
809 if pat == '.':
828 if pat == '.':
810 escaped = ''
829 escaped = ''
811 else:
830 else:
812 # Pattern is a directory name.
831 # Pattern is a directory name.
813 escaped = util.stringutil.reescape(pat) + '/'
832 escaped = util.stringutil.reescape(pat) + '/'
814 # Anything after the pattern must be a non-directory.
833 # Anything after the pattern must be a non-directory.
815 return escaped + '[^/]+$'
834 return escaped + '[^/]+$'
816 if kind == 'relglob':
835 if kind == 'relglob':
817 return '(?:|.*/)' + _globre(pat) + globsuffix
836 return '(?:|.*/)' + _globre(pat) + globsuffix
818 if kind == 'relre':
837 if kind == 'relre':
819 if pat.startswith('^'):
838 if pat.startswith('^'):
820 return pat
839 return pat
821 return '.*' + pat
840 return '.*' + pat
822 if kind == 'glob':
841 if kind == 'glob':
823 return _globre(pat) + globsuffix
842 return _globre(pat) + globsuffix
824 raise error.ProgrammingError('not a regex pattern: %s:%s' % (kind, pat))
843 raise error.ProgrammingError('not a regex pattern: %s:%s' % (kind, pat))
825
844
826 def _buildmatch(ctx, kindpats, globsuffix, listsubrepos, root):
845 def _buildmatch(ctx, kindpats, globsuffix, listsubrepos, root):
827 '''Return regexp string and a matcher function for kindpats.
846 '''Return regexp string and a matcher function for kindpats.
828 globsuffix is appended to the regexp of globs.'''
847 globsuffix is appended to the regexp of globs.'''
829 matchfuncs = []
848 matchfuncs = []
830
849
831 fset, kindpats = _expandsets(kindpats, ctx, listsubrepos)
832 if fset:
833 matchfuncs.append(fset.__contains__)
834
835 subincludes, kindpats = _expandsubinclude(kindpats, root)
850 subincludes, kindpats = _expandsubinclude(kindpats, root)
836 if subincludes:
851 if subincludes:
837 submatchers = {}
852 submatchers = {}
838 def matchsubinclude(f):
853 def matchsubinclude(f):
839 for prefix, matcherargs in subincludes:
854 for prefix, matcherargs in subincludes:
840 if f.startswith(prefix):
855 if f.startswith(prefix):
841 mf = submatchers.get(prefix)
856 mf = submatchers.get(prefix)
842 if mf is None:
857 if mf is None:
843 mf = match(*matcherargs)
858 mf = match(*matcherargs)
844 submatchers[prefix] = mf
859 submatchers[prefix] = mf
845
860
846 if mf(f[len(prefix):]):
861 if mf(f[len(prefix):]):
847 return True
862 return True
848 return False
863 return False
849 matchfuncs.append(matchsubinclude)
864 matchfuncs.append(matchsubinclude)
850
865
851 regex = ''
866 regex = ''
852 if kindpats:
867 if kindpats:
853 regex, mf = _buildregexmatch(kindpats, globsuffix)
868 regex, mf = _buildregexmatch(kindpats, globsuffix)
854 matchfuncs.append(mf)
869 matchfuncs.append(mf)
855
870
856 if len(matchfuncs) == 1:
871 if len(matchfuncs) == 1:
857 return regex, matchfuncs[0]
872 return regex, matchfuncs[0]
858 else:
873 else:
859 return regex, lambda f: any(mf(f) for mf in matchfuncs)
874 return regex, lambda f: any(mf(f) for mf in matchfuncs)
860
875
861 def _buildregexmatch(kindpats, globsuffix):
876 def _buildregexmatch(kindpats, globsuffix):
862 """Build a match function from a list of kinds and kindpats,
877 """Build a match function from a list of kinds and kindpats,
863 return regexp string and a matcher function."""
878 return regexp string and a matcher function."""
864 try:
879 try:
865 regex = '(?:%s)' % '|'.join([_regex(k, p, globsuffix)
880 regex = '(?:%s)' % '|'.join([_regex(k, p, globsuffix)
866 for (k, p, s) in kindpats])
881 for (k, p, s) in kindpats])
867 if len(regex) > 20000:
882 if len(regex) > 20000:
868 raise OverflowError
883 raise OverflowError
869 return regex, _rematcher(regex)
884 return regex, _rematcher(regex)
870 except OverflowError:
885 except OverflowError:
871 # We're using a Python with a tiny regex engine and we
886 # We're using a Python with a tiny regex engine and we
872 # made it explode, so we'll divide the pattern list in two
887 # made it explode, so we'll divide the pattern list in two
873 # until it works
888 # until it works
874 l = len(kindpats)
889 l = len(kindpats)
875 if l < 2:
890 if l < 2:
876 raise
891 raise
877 regexa, a = _buildregexmatch(kindpats[:l//2], globsuffix)
892 regexa, a = _buildregexmatch(kindpats[:l//2], globsuffix)
878 regexb, b = _buildregexmatch(kindpats[l//2:], globsuffix)
893 regexb, b = _buildregexmatch(kindpats[l//2:], globsuffix)
879 return regex, lambda s: a(s) or b(s)
894 return regex, lambda s: a(s) or b(s)
880 except re.error:
895 except re.error:
881 for k, p, s in kindpats:
896 for k, p, s in kindpats:
882 try:
897 try:
883 _rematcher('(?:%s)' % _regex(k, p, globsuffix))
898 _rematcher('(?:%s)' % _regex(k, p, globsuffix))
884 except re.error:
899 except re.error:
885 if s:
900 if s:
886 raise error.Abort(_("%s: invalid pattern (%s): %s") %
901 raise error.Abort(_("%s: invalid pattern (%s): %s") %
887 (s, k, p))
902 (s, k, p))
888 else:
903 else:
889 raise error.Abort(_("invalid pattern (%s): %s") % (k, p))
904 raise error.Abort(_("invalid pattern (%s): %s") % (k, p))
890 raise error.Abort(_("invalid pattern"))
905 raise error.Abort(_("invalid pattern"))
891
906
892 def _patternrootsanddirs(kindpats):
907 def _patternrootsanddirs(kindpats):
893 '''Returns roots and directories corresponding to each pattern.
908 '''Returns roots and directories corresponding to each pattern.
894
909
895 This calculates the roots and directories exactly matching the patterns and
910 This calculates the roots and directories exactly matching the patterns and
896 returns a tuple of (roots, dirs) for each. It does not return other
911 returns a tuple of (roots, dirs) for each. It does not return other
897 directories which may also need to be considered, like the parent
912 directories which may also need to be considered, like the parent
898 directories.
913 directories.
899 '''
914 '''
900 r = []
915 r = []
901 d = []
916 d = []
902 for kind, pat, source in kindpats:
917 for kind, pat, source in kindpats:
903 if kind == 'glob': # find the non-glob prefix
918 if kind == 'glob': # find the non-glob prefix
904 root = []
919 root = []
905 for p in pat.split('/'):
920 for p in pat.split('/'):
906 if '[' in p or '{' in p or '*' in p or '?' in p:
921 if '[' in p or '{' in p or '*' in p or '?' in p:
907 break
922 break
908 root.append(p)
923 root.append(p)
909 r.append('/'.join(root) or '.')
924 r.append('/'.join(root) or '.')
910 elif kind in ('relpath', 'path'):
925 elif kind in ('relpath', 'path'):
911 r.append(pat or '.')
926 r.append(pat or '.')
912 elif kind in ('rootfilesin',):
927 elif kind in ('rootfilesin',):
913 d.append(pat or '.')
928 d.append(pat or '.')
914 else: # relglob, re, relre
929 else: # relglob, re, relre
915 r.append('.')
930 r.append('.')
916 return r, d
931 return r, d
917
932
918 def _roots(kindpats):
933 def _roots(kindpats):
919 '''Returns root directories to match recursively from the given patterns.'''
934 '''Returns root directories to match recursively from the given patterns.'''
920 roots, dirs = _patternrootsanddirs(kindpats)
935 roots, dirs = _patternrootsanddirs(kindpats)
921 return roots
936 return roots
922
937
923 def _rootsanddirs(kindpats):
938 def _rootsanddirs(kindpats):
924 '''Returns roots and exact directories from patterns.
939 '''Returns roots and exact directories from patterns.
925
940
926 roots are directories to match recursively, whereas exact directories should
941 roots are directories to match recursively, whereas exact directories should
927 be matched non-recursively. The returned (roots, dirs) tuple will also
942 be matched non-recursively. The returned (roots, dirs) tuple will also
928 include directories that need to be implicitly considered as either, such as
943 include directories that need to be implicitly considered as either, such as
929 parent directories.
944 parent directories.
930
945
931 >>> _rootsanddirs(
946 >>> _rootsanddirs(
932 ... [(b'glob', b'g/h/*', b''), (b'glob', b'g/h', b''),
947 ... [(b'glob', b'g/h/*', b''), (b'glob', b'g/h', b''),
933 ... (b'glob', b'g*', b'')])
948 ... (b'glob', b'g*', b'')])
934 (['g/h', 'g/h', '.'], ['g', '.'])
949 (['g/h', 'g/h', '.'], ['g', '.'])
935 >>> _rootsanddirs(
950 >>> _rootsanddirs(
936 ... [(b'rootfilesin', b'g/h', b''), (b'rootfilesin', b'', b'')])
951 ... [(b'rootfilesin', b'g/h', b''), (b'rootfilesin', b'', b'')])
937 ([], ['g/h', '.', 'g', '.'])
952 ([], ['g/h', '.', 'g', '.'])
938 >>> _rootsanddirs(
953 >>> _rootsanddirs(
939 ... [(b'relpath', b'r', b''), (b'path', b'p/p', b''),
954 ... [(b'relpath', b'r', b''), (b'path', b'p/p', b''),
940 ... (b'path', b'', b'')])
955 ... (b'path', b'', b'')])
941 (['r', 'p/p', '.'], ['p', '.'])
956 (['r', 'p/p', '.'], ['p', '.'])
942 >>> _rootsanddirs(
957 >>> _rootsanddirs(
943 ... [(b'relglob', b'rg*', b''), (b're', b're/', b''),
958 ... [(b'relglob', b'rg*', b''), (b're', b're/', b''),
944 ... (b'relre', b'rr', b'')])
959 ... (b'relre', b'rr', b'')])
945 (['.', '.', '.'], ['.'])
960 (['.', '.', '.'], ['.'])
946 '''
961 '''
947 r, d = _patternrootsanddirs(kindpats)
962 r, d = _patternrootsanddirs(kindpats)
948
963
949 # Append the parents as non-recursive/exact directories, since they must be
964 # Append the parents as non-recursive/exact directories, since they must be
950 # scanned to get to either the roots or the other exact directories.
965 # scanned to get to either the roots or the other exact directories.
951 d.extend(util.dirs(d))
966 d.extend(util.dirs(d))
952 d.extend(util.dirs(r))
967 d.extend(util.dirs(r))
953 # util.dirs() does not include the root directory, so add it manually
968 # util.dirs() does not include the root directory, so add it manually
954 d.append('.')
969 d.append('.')
955
970
956 return r, d
971 return r, d
957
972
958 def _explicitfiles(kindpats):
973 def _explicitfiles(kindpats):
959 '''Returns the potential explicit filenames from the patterns.
974 '''Returns the potential explicit filenames from the patterns.
960
975
961 >>> _explicitfiles([(b'path', b'foo/bar', b'')])
976 >>> _explicitfiles([(b'path', b'foo/bar', b'')])
962 ['foo/bar']
977 ['foo/bar']
963 >>> _explicitfiles([(b'rootfilesin', b'foo/bar', b'')])
978 >>> _explicitfiles([(b'rootfilesin', b'foo/bar', b'')])
964 []
979 []
965 '''
980 '''
966 # Keep only the pattern kinds where one can specify filenames (vs only
981 # Keep only the pattern kinds where one can specify filenames (vs only
967 # directory names).
982 # directory names).
968 filable = [kp for kp in kindpats if kp[0] not in ('rootfilesin',)]
983 filable = [kp for kp in kindpats if kp[0] not in ('rootfilesin',)]
969 return _roots(filable)
984 return _roots(filable)
970
985
971 def _prefix(kindpats):
986 def _prefix(kindpats):
972 '''Whether all the patterns match a prefix (i.e. recursively)'''
987 '''Whether all the patterns match a prefix (i.e. recursively)'''
973 for kind, pat, source in kindpats:
988 for kind, pat, source in kindpats:
974 if kind not in ('path', 'relpath'):
989 if kind not in ('path', 'relpath'):
975 return False
990 return False
976 return True
991 return True
977
992
978 _commentre = None
993 _commentre = None
979
994
980 def readpatternfile(filepath, warn, sourceinfo=False):
995 def readpatternfile(filepath, warn, sourceinfo=False):
981 '''parse a pattern file, returning a list of
996 '''parse a pattern file, returning a list of
982 patterns. These patterns should be given to compile()
997 patterns. These patterns should be given to compile()
983 to be validated and converted into a match function.
998 to be validated and converted into a match function.
984
999
985 trailing white space is dropped.
1000 trailing white space is dropped.
986 the escape character is backslash.
1001 the escape character is backslash.
987 comments start with #.
1002 comments start with #.
988 empty lines are skipped.
1003 empty lines are skipped.
989
1004
990 lines can be of the following formats:
1005 lines can be of the following formats:
991
1006
992 syntax: regexp # defaults following lines to non-rooted regexps
1007 syntax: regexp # defaults following lines to non-rooted regexps
993 syntax: glob # defaults following lines to non-rooted globs
1008 syntax: glob # defaults following lines to non-rooted globs
994 re:pattern # non-rooted regular expression
1009 re:pattern # non-rooted regular expression
995 glob:pattern # non-rooted glob
1010 glob:pattern # non-rooted glob
996 pattern # pattern of the current default type
1011 pattern # pattern of the current default type
997
1012
998 if sourceinfo is set, returns a list of tuples:
1013 if sourceinfo is set, returns a list of tuples:
999 (pattern, lineno, originalline). This is useful to debug ignore patterns.
1014 (pattern, lineno, originalline). This is useful to debug ignore patterns.
1000 '''
1015 '''
1001
1016
1002 syntaxes = {'re': 'relre:', 'regexp': 'relre:', 'glob': 'relglob:',
1017 syntaxes = {'re': 'relre:', 'regexp': 'relre:', 'glob': 'relglob:',
1003 'include': 'include', 'subinclude': 'subinclude'}
1018 'include': 'include', 'subinclude': 'subinclude'}
1004 syntax = 'relre:'
1019 syntax = 'relre:'
1005 patterns = []
1020 patterns = []
1006
1021
1007 fp = open(filepath, 'rb')
1022 fp = open(filepath, 'rb')
1008 for lineno, line in enumerate(util.iterfile(fp), start=1):
1023 for lineno, line in enumerate(util.iterfile(fp), start=1):
1009 if "#" in line:
1024 if "#" in line:
1010 global _commentre
1025 global _commentre
1011 if not _commentre:
1026 if not _commentre:
1012 _commentre = util.re.compile(br'((?:^|[^\\])(?:\\\\)*)#.*')
1027 _commentre = util.re.compile(br'((?:^|[^\\])(?:\\\\)*)#.*')
1013 # remove comments prefixed by an even number of escapes
1028 # remove comments prefixed by an even number of escapes
1014 m = _commentre.search(line)
1029 m = _commentre.search(line)
1015 if m:
1030 if m:
1016 line = line[:m.end(1)]
1031 line = line[:m.end(1)]
1017 # fixup properly escaped comments that survived the above
1032 # fixup properly escaped comments that survived the above
1018 line = line.replace("\\#", "#")
1033 line = line.replace("\\#", "#")
1019 line = line.rstrip()
1034 line = line.rstrip()
1020 if not line:
1035 if not line:
1021 continue
1036 continue
1022
1037
1023 if line.startswith('syntax:'):
1038 if line.startswith('syntax:'):
1024 s = line[7:].strip()
1039 s = line[7:].strip()
1025 try:
1040 try:
1026 syntax = syntaxes[s]
1041 syntax = syntaxes[s]
1027 except KeyError:
1042 except KeyError:
1028 if warn:
1043 if warn:
1029 warn(_("%s: ignoring invalid syntax '%s'\n") %
1044 warn(_("%s: ignoring invalid syntax '%s'\n") %
1030 (filepath, s))
1045 (filepath, s))
1031 continue
1046 continue
1032
1047
1033 linesyntax = syntax
1048 linesyntax = syntax
1034 for s, rels in syntaxes.iteritems():
1049 for s, rels in syntaxes.iteritems():
1035 if line.startswith(rels):
1050 if line.startswith(rels):
1036 linesyntax = rels
1051 linesyntax = rels
1037 line = line[len(rels):]
1052 line = line[len(rels):]
1038 break
1053 break
1039 elif line.startswith(s+':'):
1054 elif line.startswith(s+':'):
1040 linesyntax = rels
1055 linesyntax = rels
1041 line = line[len(s) + 1:]
1056 line = line[len(s) + 1:]
1042 break
1057 break
1043 if sourceinfo:
1058 if sourceinfo:
1044 patterns.append((linesyntax + line, lineno, line))
1059 patterns.append((linesyntax + line, lineno, line))
1045 else:
1060 else:
1046 patterns.append(linesyntax + line)
1061 patterns.append(linesyntax + line)
1047 fp.close()
1062 fp.close()
1048 return patterns
1063 return patterns
@@ -1,3158 +1,3147 b''
1 @ (34) head
1 @ (34) head
2 |
2 |
3 | o (33) head
3 | o (33) head
4 | |
4 | |
5 o | (32) expand
5 o | (32) expand
6 |\ \
6 |\ \
7 | o \ (31) expand
7 | o \ (31) expand
8 | |\ \
8 | |\ \
9 | | o \ (30) expand
9 | | o \ (30) expand
10 | | |\ \
10 | | |\ \
11 | | | o | (29) regular commit
11 | | | o | (29) regular commit
12 | | | | |
12 | | | | |
13 | | o | | (28) merge zero known
13 | | o | | (28) merge zero known
14 | | |\ \ \
14 | | |\ \ \
15 o | | | | | (27) collapse
15 o | | | | | (27) collapse
16 |/ / / / /
16 |/ / / / /
17 | | o---+ (26) merge one known; far right
17 | | o---+ (26) merge one known; far right
18 | | | | |
18 | | | | |
19 +---o | | (25) merge one known; far left
19 +---o | | (25) merge one known; far left
20 | | | | |
20 | | | | |
21 | | o | | (24) merge one known; immediate right
21 | | o | | (24) merge one known; immediate right
22 | | |\| |
22 | | |\| |
23 | | o | | (23) merge one known; immediate left
23 | | o | | (23) merge one known; immediate left
24 | |/| | |
24 | |/| | |
25 +---o---+ (22) merge two known; one far left, one far right
25 +---o---+ (22) merge two known; one far left, one far right
26 | | / /
26 | | / /
27 o | | | (21) expand
27 o | | | (21) expand
28 |\ \ \ \
28 |\ \ \ \
29 | o---+-+ (20) merge two known; two far right
29 | o---+-+ (20) merge two known; two far right
30 | / / /
30 | / / /
31 o | | | (19) expand
31 o | | | (19) expand
32 |\ \ \ \
32 |\ \ \ \
33 +---+---o (18) merge two known; two far left
33 +---+---o (18) merge two known; two far left
34 | | | |
34 | | | |
35 | o | | (17) expand
35 | o | | (17) expand
36 | |\ \ \
36 | |\ \ \
37 | | o---+ (16) merge two known; one immediate right, one near right
37 | | o---+ (16) merge two known; one immediate right, one near right
38 | | |/ /
38 | | |/ /
39 o | | | (15) expand
39 o | | | (15) expand
40 |\ \ \ \
40 |\ \ \ \
41 | o-----+ (14) merge two known; one immediate right, one far right
41 | o-----+ (14) merge two known; one immediate right, one far right
42 | |/ / /
42 | |/ / /
43 o | | | (13) expand
43 o | | | (13) expand
44 |\ \ \ \
44 |\ \ \ \
45 +---o | | (12) merge two known; one immediate right, one far left
45 +---o | | (12) merge two known; one immediate right, one far left
46 | | |/ /
46 | | |/ /
47 | o | | (11) expand
47 | o | | (11) expand
48 | |\ \ \
48 | |\ \ \
49 | | o---+ (10) merge two known; one immediate left, one near right
49 | | o---+ (10) merge two known; one immediate left, one near right
50 | |/ / /
50 | |/ / /
51 o | | | (9) expand
51 o | | | (9) expand
52 |\ \ \ \
52 |\ \ \ \
53 | o-----+ (8) merge two known; one immediate left, one far right
53 | o-----+ (8) merge two known; one immediate left, one far right
54 |/ / / /
54 |/ / / /
55 o | | | (7) expand
55 o | | | (7) expand
56 |\ \ \ \
56 |\ \ \ \
57 +---o | | (6) merge two known; one immediate left, one far left
57 +---o | | (6) merge two known; one immediate left, one far left
58 | |/ / /
58 | |/ / /
59 | o | | (5) expand
59 | o | | (5) expand
60 | |\ \ \
60 | |\ \ \
61 | | o | | (4) merge two known; one immediate left, one immediate right
61 | | o | | (4) merge two known; one immediate left, one immediate right
62 | |/|/ /
62 | |/|/ /
63 | o / / (3) collapse
63 | o / / (3) collapse
64 |/ / /
64 |/ / /
65 o / / (2) collapse
65 o / / (2) collapse
66 |/ /
66 |/ /
67 o / (1) collapse
67 o / (1) collapse
68 |/
68 |/
69 o (0) root
69 o (0) root
70
70
71 $ commit()
71 $ commit()
72 > {
72 > {
73 > rev=$1
73 > rev=$1
74 > msg=$2
74 > msg=$2
75 > shift 2
75 > shift 2
76 > if [ "$#" -gt 0 ]; then
76 > if [ "$#" -gt 0 ]; then
77 > hg debugsetparents "$@"
77 > hg debugsetparents "$@"
78 > fi
78 > fi
79 > echo $rev > a
79 > echo $rev > a
80 > hg commit -Aqd "$rev 0" -m "($rev) $msg"
80 > hg commit -Aqd "$rev 0" -m "($rev) $msg"
81 > }
81 > }
82
82
83 $ cat > printrevset.py <<EOF
83 $ cat > printrevset.py <<EOF
84 > from __future__ import absolute_import
84 > from __future__ import absolute_import
85 > from mercurial import (
85 > from mercurial import (
86 > cmdutil,
86 > cmdutil,
87 > commands,
87 > commands,
88 > extensions,
88 > extensions,
89 > logcmdutil,
89 > logcmdutil,
90 > revsetlang,
90 > revsetlang,
91 > smartset,
91 > smartset,
92 > )
92 > )
93 >
93 >
94 > from mercurial.utils import (
94 > from mercurial.utils import (
95 > stringutil,
95 > stringutil,
96 > )
96 > )
97 >
97 >
98 > def logrevset(repo, pats, opts):
98 > def logrevset(repo, pats, opts):
99 > revs = logcmdutil._initialrevs(repo, opts)
99 > revs = logcmdutil._initialrevs(repo, opts)
100 > if not revs:
100 > if not revs:
101 > return None
101 > return None
102 > match, pats, slowpath = logcmdutil._makematcher(repo, revs, pats, opts)
102 > match, pats, slowpath = logcmdutil._makematcher(repo, revs, pats, opts)
103 > return logcmdutil._makerevset(repo, match, pats, slowpath, opts)
103 > return logcmdutil._makerevset(repo, match, pats, slowpath, opts)
104 >
104 >
105 > def uisetup(ui):
105 > def uisetup(ui):
106 > def printrevset(orig, repo, pats, opts):
106 > def printrevset(orig, repo, pats, opts):
107 > revs, filematcher = orig(repo, pats, opts)
107 > revs, filematcher = orig(repo, pats, opts)
108 > if opts.get(b'print_revset'):
108 > if opts.get(b'print_revset'):
109 > expr = logrevset(repo, pats, opts)
109 > expr = logrevset(repo, pats, opts)
110 > if expr:
110 > if expr:
111 > tree = revsetlang.parse(expr)
111 > tree = revsetlang.parse(expr)
112 > tree = revsetlang.analyze(tree)
112 > tree = revsetlang.analyze(tree)
113 > else:
113 > else:
114 > tree = []
114 > tree = []
115 > ui = repo.ui
115 > ui = repo.ui
116 > ui.write(b'%r\n' % (opts.get(b'rev', []),))
116 > ui.write(b'%r\n' % (opts.get(b'rev', []),))
117 > ui.write(revsetlang.prettyformat(tree) + b'\n')
117 > ui.write(revsetlang.prettyformat(tree) + b'\n')
118 > ui.write(stringutil.prettyrepr(revs) + b'\n')
118 > ui.write(stringutil.prettyrepr(revs) + b'\n')
119 > revs = smartset.baseset() # display no revisions
119 > revs = smartset.baseset() # display no revisions
120 > return revs, filematcher
120 > return revs, filematcher
121 > extensions.wrapfunction(logcmdutil, 'getrevs', printrevset)
121 > extensions.wrapfunction(logcmdutil, 'getrevs', printrevset)
122 > aliases, entry = cmdutil.findcmd(b'log', commands.table)
122 > aliases, entry = cmdutil.findcmd(b'log', commands.table)
123 > entry[1].append((b'', b'print-revset', False,
123 > entry[1].append((b'', b'print-revset', False,
124 > b'print generated revset and exit (DEPRECATED)'))
124 > b'print generated revset and exit (DEPRECATED)'))
125 > EOF
125 > EOF
126
126
127 $ echo "[extensions]" >> $HGRCPATH
127 $ echo "[extensions]" >> $HGRCPATH
128 $ echo "printrevset=`pwd`/printrevset.py" >> $HGRCPATH
128 $ echo "printrevset=`pwd`/printrevset.py" >> $HGRCPATH
129 $ echo "beautifygraph=" >> $HGRCPATH
129 $ echo "beautifygraph=" >> $HGRCPATH
130
130
131 Set a default of narrow-text UTF-8.
131 Set a default of narrow-text UTF-8.
132
132
133 $ HGENCODING=UTF-8; export HGENCODING
133 $ HGENCODING=UTF-8; export HGENCODING
134 $ HGENCODINGAMBIGUOUS=narrow; export HGENCODINGAMBIGUOUS
134 $ HGENCODINGAMBIGUOUS=narrow; export HGENCODINGAMBIGUOUS
135
135
136 Empty repo:
136 Empty repo:
137
137
138 $ hg init repo
138 $ hg init repo
139 $ cd repo
139 $ cd repo
140 $ hg log -G
140 $ hg log -G
141
141
142 Building DAG:
142 Building DAG:
143
143
144 $ commit 0 "root"
144 $ commit 0 "root"
145 $ commit 1 "collapse" 0
145 $ commit 1 "collapse" 0
146 $ commit 2 "collapse" 1
146 $ commit 2 "collapse" 1
147 $ commit 3 "collapse" 2
147 $ commit 3 "collapse" 2
148 $ commit 4 "merge two known; one immediate left, one immediate right" 1 3
148 $ commit 4 "merge two known; one immediate left, one immediate right" 1 3
149 $ commit 5 "expand" 3 4
149 $ commit 5 "expand" 3 4
150 $ commit 6 "merge two known; one immediate left, one far left" 2 5
150 $ commit 6 "merge two known; one immediate left, one far left" 2 5
151 $ commit 7 "expand" 2 5
151 $ commit 7 "expand" 2 5
152 $ commit 8 "merge two known; one immediate left, one far right" 0 7
152 $ commit 8 "merge two known; one immediate left, one far right" 0 7
153 $ commit 9 "expand" 7 8
153 $ commit 9 "expand" 7 8
154 $ commit 10 "merge two known; one immediate left, one near right" 0 6
154 $ commit 10 "merge two known; one immediate left, one near right" 0 6
155 $ commit 11 "expand" 6 10
155 $ commit 11 "expand" 6 10
156 $ commit 12 "merge two known; one immediate right, one far left" 1 9
156 $ commit 12 "merge two known; one immediate right, one far left" 1 9
157 $ commit 13 "expand" 9 11
157 $ commit 13 "expand" 9 11
158 $ commit 14 "merge two known; one immediate right, one far right" 0 12
158 $ commit 14 "merge two known; one immediate right, one far right" 0 12
159 $ commit 15 "expand" 13 14
159 $ commit 15 "expand" 13 14
160 $ commit 16 "merge two known; one immediate right, one near right" 0 1
160 $ commit 16 "merge two known; one immediate right, one near right" 0 1
161 $ commit 17 "expand" 12 16
161 $ commit 17 "expand" 12 16
162 $ commit 18 "merge two known; two far left" 1 15
162 $ commit 18 "merge two known; two far left" 1 15
163 $ commit 19 "expand" 15 17
163 $ commit 19 "expand" 15 17
164 $ commit 20 "merge two known; two far right" 0 18
164 $ commit 20 "merge two known; two far right" 0 18
165 $ commit 21 "expand" 19 20
165 $ commit 21 "expand" 19 20
166 $ commit 22 "merge two known; one far left, one far right" 18 21
166 $ commit 22 "merge two known; one far left, one far right" 18 21
167 $ commit 23 "merge one known; immediate left" 1 22
167 $ commit 23 "merge one known; immediate left" 1 22
168 $ commit 24 "merge one known; immediate right" 0 23
168 $ commit 24 "merge one known; immediate right" 0 23
169 $ commit 25 "merge one known; far left" 21 24
169 $ commit 25 "merge one known; far left" 21 24
170 $ commit 26 "merge one known; far right" 18 25
170 $ commit 26 "merge one known; far right" 18 25
171 $ commit 27 "collapse" 21
171 $ commit 27 "collapse" 21
172 $ commit 28 "merge zero known" 1 26
172 $ commit 28 "merge zero known" 1 26
173 $ commit 29 "regular commit" 0
173 $ commit 29 "regular commit" 0
174 $ commit 30 "expand" 28 29
174 $ commit 30 "expand" 28 29
175 $ commit 31 "expand" 21 30
175 $ commit 31 "expand" 21 30
176 $ commit 32 "expand" 27 31
176 $ commit 32 "expand" 27 31
177 $ commit 33 "head" 18
177 $ commit 33 "head" 18
178 $ commit 34 "head" 32
178 $ commit 34 "head" 32
179
179
180 The extension should not turn on unless we're in UTF-8.
180 The extension should not turn on unless we're in UTF-8.
181
181
182 $ HGENCODING=latin1 hg log -G -q
182 $ HGENCODING=latin1 hg log -G -q
183 beautifygraph: unsupported encoding, UTF-8 required
183 beautifygraph: unsupported encoding, UTF-8 required
184 @ 34:fea3ac5810e0
184 @ 34:fea3ac5810e0
185 |
185 |
186 | o 33:68608f5145f9
186 | o 33:68608f5145f9
187 | |
187 | |
188 o | 32:d06dffa21a31
188 o | 32:d06dffa21a31
189 |\ \
189 |\ \
190 | o \ 31:621d83e11f67
190 | o \ 31:621d83e11f67
191 | |\ \
191 | |\ \
192 | | o \ 30:6e11cd4b648f
192 | | o \ 30:6e11cd4b648f
193 | | |\ \
193 | | |\ \
194 | | | o | 29:cd9bb2be7593
194 | | | o | 29:cd9bb2be7593
195 | | | | |
195 | | | | |
196 | | o | | 28:44ecd0b9ae99
196 | | o | | 28:44ecd0b9ae99
197 | | |\ \ \
197 | | |\ \ \
198 o | | | | | 27:886ed638191b
198 o | | | | | 27:886ed638191b
199 |/ / / / /
199 |/ / / / /
200 | | o---+ 26:7f25b6c2f0b9
200 | | o---+ 26:7f25b6c2f0b9
201 | | | | |
201 | | | | |
202 +---o | | 25:91da8ed57247
202 +---o | | 25:91da8ed57247
203 | | | | |
203 | | | | |
204 | | o | | 24:a9c19a3d96b7
204 | | o | | 24:a9c19a3d96b7
205 | | |\| |
205 | | |\| |
206 | | o | | 23:a01cddf0766d
206 | | o | | 23:a01cddf0766d
207 | |/| | |
207 | |/| | |
208 +---o---+ 22:e0d9cccacb5d
208 +---o---+ 22:e0d9cccacb5d
209 | | / /
209 | | / /
210 o | | | 21:d42a756af44d
210 o | | | 21:d42a756af44d
211 |\ \ \ \
211 |\ \ \ \
212 | o---+-+ 20:d30ed6450e32
212 | o---+-+ 20:d30ed6450e32
213 | / / /
213 | / / /
214 o | | | 19:31ddc2c1573b
214 o | | | 19:31ddc2c1573b
215 |\ \ \ \
215 |\ \ \ \
216 +---+---o 18:1aa84d96232a
216 +---+---o 18:1aa84d96232a
217 | | | |
217 | | | |
218 | o | | 17:44765d7c06e0
218 | o | | 17:44765d7c06e0
219 | |\ \ \
219 | |\ \ \
220 | | o---+ 16:3677d192927d
220 | | o---+ 16:3677d192927d
221 | | |/ /
221 | | |/ /
222 o | | | 15:1dda3f72782d
222 o | | | 15:1dda3f72782d
223 |\ \ \ \
223 |\ \ \ \
224 | o-----+ 14:8eac370358ef
224 | o-----+ 14:8eac370358ef
225 | |/ / /
225 | |/ / /
226 o | | | 13:22d8966a97e3
226 o | | | 13:22d8966a97e3
227 |\ \ \ \
227 |\ \ \ \
228 +---o | | 12:86b91144a6e9
228 +---o | | 12:86b91144a6e9
229 | | |/ /
229 | | |/ /
230 | o | | 11:832d76e6bdf2
230 | o | | 11:832d76e6bdf2
231 | |\ \ \
231 | |\ \ \
232 | | o---+ 10:74c64d036d72
232 | | o---+ 10:74c64d036d72
233 | |/ / /
233 | |/ / /
234 o | | | 9:7010c0af0a35
234 o | | | 9:7010c0af0a35
235 |\ \ \ \
235 |\ \ \ \
236 | o-----+ 8:7a0b11f71937
236 | o-----+ 8:7a0b11f71937
237 |/ / / /
237 |/ / / /
238 o | | | 7:b632bb1b1224
238 o | | | 7:b632bb1b1224
239 |\ \ \ \
239 |\ \ \ \
240 +---o | | 6:b105a072e251
240 +---o | | 6:b105a072e251
241 | |/ / /
241 | |/ / /
242 | o | | 5:4409d547b708
242 | o | | 5:4409d547b708
243 | |\ \ \
243 | |\ \ \
244 | | o | | 4:26a8bac39d9f
244 | | o | | 4:26a8bac39d9f
245 | |/|/ /
245 | |/|/ /
246 | o / / 3:27eef8ed80b4
246 | o / / 3:27eef8ed80b4
247 |/ / /
247 |/ / /
248 o / / 2:3d9a33b8d1e1
248 o / / 2:3d9a33b8d1e1
249 |/ /
249 |/ /
250 o / 1:6db2ef61d156
250 o / 1:6db2ef61d156
251 |/
251 |/
252 o 0:e6eb3150255d
252 o 0:e6eb3150255d
253
253
254
254
255 The extension should not turn on if we're using wide text.
255 The extension should not turn on if we're using wide text.
256
256
257 $ HGENCODINGAMBIGUOUS=wide hg log -G -q
257 $ HGENCODINGAMBIGUOUS=wide hg log -G -q
258 beautifygraph: unsupported terminal settings, monospace narrow text required
258 beautifygraph: unsupported terminal settings, monospace narrow text required
259 @ 34:fea3ac5810e0
259 @ 34:fea3ac5810e0
260 |
260 |
261 | o 33:68608f5145f9
261 | o 33:68608f5145f9
262 | |
262 | |
263 o | 32:d06dffa21a31
263 o | 32:d06dffa21a31
264 |\ \
264 |\ \
265 | o \ 31:621d83e11f67
265 | o \ 31:621d83e11f67
266 | |\ \
266 | |\ \
267 | | o \ 30:6e11cd4b648f
267 | | o \ 30:6e11cd4b648f
268 | | |\ \
268 | | |\ \
269 | | | o | 29:cd9bb2be7593
269 | | | o | 29:cd9bb2be7593
270 | | | | |
270 | | | | |
271 | | o | | 28:44ecd0b9ae99
271 | | o | | 28:44ecd0b9ae99
272 | | |\ \ \
272 | | |\ \ \
273 o | | | | | 27:886ed638191b
273 o | | | | | 27:886ed638191b
274 |/ / / / /
274 |/ / / / /
275 | | o---+ 26:7f25b6c2f0b9
275 | | o---+ 26:7f25b6c2f0b9
276 | | | | |
276 | | | | |
277 +---o | | 25:91da8ed57247
277 +---o | | 25:91da8ed57247
278 | | | | |
278 | | | | |
279 | | o | | 24:a9c19a3d96b7
279 | | o | | 24:a9c19a3d96b7
280 | | |\| |
280 | | |\| |
281 | | o | | 23:a01cddf0766d
281 | | o | | 23:a01cddf0766d
282 | |/| | |
282 | |/| | |
283 +---o---+ 22:e0d9cccacb5d
283 +---o---+ 22:e0d9cccacb5d
284 | | / /
284 | | / /
285 o | | | 21:d42a756af44d
285 o | | | 21:d42a756af44d
286 |\ \ \ \
286 |\ \ \ \
287 | o---+-+ 20:d30ed6450e32
287 | o---+-+ 20:d30ed6450e32
288 | / / /
288 | / / /
289 o | | | 19:31ddc2c1573b
289 o | | | 19:31ddc2c1573b
290 |\ \ \ \
290 |\ \ \ \
291 +---+---o 18:1aa84d96232a
291 +---+---o 18:1aa84d96232a
292 | | | |
292 | | | |
293 | o | | 17:44765d7c06e0
293 | o | | 17:44765d7c06e0
294 | |\ \ \
294 | |\ \ \
295 | | o---+ 16:3677d192927d
295 | | o---+ 16:3677d192927d
296 | | |/ /
296 | | |/ /
297 o | | | 15:1dda3f72782d
297 o | | | 15:1dda3f72782d
298 |\ \ \ \
298 |\ \ \ \
299 | o-----+ 14:8eac370358ef
299 | o-----+ 14:8eac370358ef
300 | |/ / /
300 | |/ / /
301 o | | | 13:22d8966a97e3
301 o | | | 13:22d8966a97e3
302 |\ \ \ \
302 |\ \ \ \
303 +---o | | 12:86b91144a6e9
303 +---o | | 12:86b91144a6e9
304 | | |/ /
304 | | |/ /
305 | o | | 11:832d76e6bdf2
305 | o | | 11:832d76e6bdf2
306 | |\ \ \
306 | |\ \ \
307 | | o---+ 10:74c64d036d72
307 | | o---+ 10:74c64d036d72
308 | |/ / /
308 | |/ / /
309 o | | | 9:7010c0af0a35
309 o | | | 9:7010c0af0a35
310 |\ \ \ \
310 |\ \ \ \
311 | o-----+ 8:7a0b11f71937
311 | o-----+ 8:7a0b11f71937
312 |/ / / /
312 |/ / / /
313 o | | | 7:b632bb1b1224
313 o | | | 7:b632bb1b1224
314 |\ \ \ \
314 |\ \ \ \
315 +---o | | 6:b105a072e251
315 +---o | | 6:b105a072e251
316 | |/ / /
316 | |/ / /
317 | o | | 5:4409d547b708
317 | o | | 5:4409d547b708
318 | |\ \ \
318 | |\ \ \
319 | | o | | 4:26a8bac39d9f
319 | | o | | 4:26a8bac39d9f
320 | |/|/ /
320 | |/|/ /
321 | o / / 3:27eef8ed80b4
321 | o / / 3:27eef8ed80b4
322 |/ / /
322 |/ / /
323 o / / 2:3d9a33b8d1e1
323 o / / 2:3d9a33b8d1e1
324 |/ /
324 |/ /
325 o / 1:6db2ef61d156
325 o / 1:6db2ef61d156
326 |/
326 |/
327 o 0:e6eb3150255d
327 o 0:e6eb3150255d
328
328
329
329
330 The rest of our tests will use the default narrow text UTF-8.
330 The rest of our tests will use the default narrow text UTF-8.
331
331
332 $ hg log -G -q
332 $ hg log -G -q
333 \xe2\x97\x8d 34:fea3ac5810e0 (esc)
333 \xe2\x97\x8d 34:fea3ac5810e0 (esc)
334 \xe2\x94\x82 (esc)
334 \xe2\x94\x82 (esc)
335 \xe2\x94\x82 \xe2\x97\x8b 33:68608f5145f9 (esc)
335 \xe2\x94\x82 \xe2\x97\x8b 33:68608f5145f9 (esc)
336 \xe2\x94\x82 \xe2\x94\x82 (esc)
336 \xe2\x94\x82 \xe2\x94\x82 (esc)
337 \xe2\x97\x8b \xe2\x94\x82 32:d06dffa21a31 (esc)
337 \xe2\x97\x8b \xe2\x94\x82 32:d06dffa21a31 (esc)
338 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 (esc)
338 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 (esc)
339 \xe2\x94\x82 \xe2\x97\x8b \xe2\x95\xb2 31:621d83e11f67 (esc)
339 \xe2\x94\x82 \xe2\x97\x8b \xe2\x95\xb2 31:621d83e11f67 (esc)
340 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 (esc)
340 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 (esc)
341 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x95\xb2 30:6e11cd4b648f (esc)
341 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x95\xb2 30:6e11cd4b648f (esc)
342 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 (esc)
342 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 (esc)
343 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 29:cd9bb2be7593 (esc)
343 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 29:cd9bb2be7593 (esc)
344 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
344 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
345 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 28:44ecd0b9ae99 (esc)
345 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 28:44ecd0b9ae99 (esc)
346 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
346 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
347 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 27:886ed638191b (esc)
347 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 27:886ed638191b (esc)
348 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
348 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
349 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 26:7f25b6c2f0b9 (esc)
349 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 26:7f25b6c2f0b9 (esc)
350 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
350 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
351 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 25:91da8ed57247 (esc)
351 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 25:91da8ed57247 (esc)
352 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
352 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
353 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 24:a9c19a3d96b7 (esc)
353 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 24:a9c19a3d96b7 (esc)
354 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x82 \xe2\x94\x82 (esc)
354 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x82 \xe2\x94\x82 (esc)
355 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 23:a01cddf0766d (esc)
355 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 23:a01cddf0766d (esc)
356 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
356 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
357 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 22:e0d9cccacb5d (esc)
357 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 22:e0d9cccacb5d (esc)
358 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
358 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
359 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 21:d42a756af44d (esc)
359 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 21:d42a756af44d (esc)
360 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
360 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
361 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\xa4 20:d30ed6450e32 (esc)
361 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\xa4 20:d30ed6450e32 (esc)
362 \xe2\x94\x82 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
362 \xe2\x94\x82 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
363 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 19:31ddc2c1573b (esc)
363 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 19:31ddc2c1573b (esc)
364 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
364 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
365 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b 18:1aa84d96232a (esc)
365 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b 18:1aa84d96232a (esc)
366 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
366 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
367 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 17:44765d7c06e0 (esc)
367 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 17:44765d7c06e0 (esc)
368 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
368 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
369 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 16:3677d192927d (esc)
369 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 16:3677d192927d (esc)
370 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 (esc)
370 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 (esc)
371 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 15:1dda3f72782d (esc)
371 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 15:1dda3f72782d (esc)
372 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
372 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
373 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 14:8eac370358ef (esc)
373 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 14:8eac370358ef (esc)
374 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
374 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
375 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 13:22d8966a97e3 (esc)
375 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 13:22d8966a97e3 (esc)
376 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
376 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
377 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 12:86b91144a6e9 (esc)
377 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 12:86b91144a6e9 (esc)
378 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 (esc)
378 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 (esc)
379 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 11:832d76e6bdf2 (esc)
379 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 11:832d76e6bdf2 (esc)
380 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
380 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
381 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 10:74c64d036d72 (esc)
381 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 10:74c64d036d72 (esc)
382 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
382 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
383 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 9:7010c0af0a35 (esc)
383 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 9:7010c0af0a35 (esc)
384 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
384 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
385 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 8:7a0b11f71937 (esc)
385 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 8:7a0b11f71937 (esc)
386 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
386 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
387 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 7:b632bb1b1224 (esc)
387 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 7:b632bb1b1224 (esc)
388 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
388 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
389 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 6:b105a072e251 (esc)
389 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 6:b105a072e251 (esc)
390 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
390 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
391 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 5:4409d547b708 (esc)
391 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 5:4409d547b708 (esc)
392 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
392 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 (esc)
393 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 4:26a8bac39d9f (esc)
393 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 4:26a8bac39d9f (esc)
394 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 (esc)
394 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 (esc)
395 \xe2\x94\x82 \xe2\x97\x8b \xe2\x95\xb1 \xe2\x95\xb1 3:27eef8ed80b4 (esc)
395 \xe2\x94\x82 \xe2\x97\x8b \xe2\x95\xb1 \xe2\x95\xb1 3:27eef8ed80b4 (esc)
396 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
396 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
397 \xe2\x97\x8b \xe2\x95\xb1 \xe2\x95\xb1 2:3d9a33b8d1e1 (esc)
397 \xe2\x97\x8b \xe2\x95\xb1 \xe2\x95\xb1 2:3d9a33b8d1e1 (esc)
398 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 (esc)
398 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 (esc)
399 \xe2\x97\x8b \xe2\x95\xb1 1:6db2ef61d156 (esc)
399 \xe2\x97\x8b \xe2\x95\xb1 1:6db2ef61d156 (esc)
400 \xe2\x94\x82\xe2\x95\xb1 (esc)
400 \xe2\x94\x82\xe2\x95\xb1 (esc)
401 \xe2\x97\x8b 0:e6eb3150255d (esc)
401 \xe2\x97\x8b 0:e6eb3150255d (esc)
402
402
403
403
404 $ hg log -G
404 $ hg log -G
405 \xe2\x97\x8d changeset: 34:fea3ac5810e0 (esc)
405 \xe2\x97\x8d changeset: 34:fea3ac5810e0 (esc)
406 \xe2\x94\x82 tag: tip (esc)
406 \xe2\x94\x82 tag: tip (esc)
407 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
407 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
408 \xe2\x94\x82 user: test (esc)
408 \xe2\x94\x82 user: test (esc)
409 \xe2\x94\x82 date: Thu Jan 01 00:00:34 1970 +0000 (esc)
409 \xe2\x94\x82 date: Thu Jan 01 00:00:34 1970 +0000 (esc)
410 \xe2\x94\x82 summary: (34) head (esc)
410 \xe2\x94\x82 summary: (34) head (esc)
411 \xe2\x94\x82 (esc)
411 \xe2\x94\x82 (esc)
412 \xe2\x94\x82 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
412 \xe2\x94\x82 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
413 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
413 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
414 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
414 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
415 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:33 1970 +0000 (esc)
415 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:33 1970 +0000 (esc)
416 \xe2\x94\x82 \xe2\x94\x82 summary: (33) head (esc)
416 \xe2\x94\x82 \xe2\x94\x82 summary: (33) head (esc)
417 \xe2\x94\x82 \xe2\x94\x82 (esc)
417 \xe2\x94\x82 \xe2\x94\x82 (esc)
418 \xe2\x97\x8b \xe2\x94\x82 changeset: 32:d06dffa21a31 (esc)
418 \xe2\x97\x8b \xe2\x94\x82 changeset: 32:d06dffa21a31 (esc)
419 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 27:886ed638191b (esc)
419 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 27:886ed638191b (esc)
420 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 31:621d83e11f67 (esc)
420 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 31:621d83e11f67 (esc)
421 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
421 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
422 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:32 1970 +0000 (esc)
422 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:32 1970 +0000 (esc)
423 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (32) expand (esc)
423 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (32) expand (esc)
424 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
424 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
425 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 31:621d83e11f67 (esc)
425 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 31:621d83e11f67 (esc)
426 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 21:d42a756af44d (esc)
426 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 21:d42a756af44d (esc)
427 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 30:6e11cd4b648f (esc)
427 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 30:6e11cd4b648f (esc)
428 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
428 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
429 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:31 1970 +0000 (esc)
429 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:31 1970 +0000 (esc)
430 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (31) expand (esc)
430 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (31) expand (esc)
431 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
431 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
432 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 30:6e11cd4b648f (esc)
432 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 30:6e11cd4b648f (esc)
433 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 28:44ecd0b9ae99 (esc)
433 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 28:44ecd0b9ae99 (esc)
434 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 29:cd9bb2be7593 (esc)
434 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 29:cd9bb2be7593 (esc)
435 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
435 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
436 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:30 1970 +0000 (esc)
436 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:30 1970 +0000 (esc)
437 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (30) expand (esc)
437 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (30) expand (esc)
438 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
438 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
439 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 29:cd9bb2be7593 (esc)
439 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 29:cd9bb2be7593 (esc)
440 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
440 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
441 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
441 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
442 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:29 1970 +0000 (esc)
442 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:29 1970 +0000 (esc)
443 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (29) regular commit (esc)
443 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (29) regular commit (esc)
444 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
444 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
445 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 28:44ecd0b9ae99 (esc)
445 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 28:44ecd0b9ae99 (esc)
446 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
446 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
447 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 26:7f25b6c2f0b9 (esc)
447 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 26:7f25b6c2f0b9 (esc)
448 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
448 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
449 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:28 1970 +0000 (esc)
449 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:28 1970 +0000 (esc)
450 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (28) merge zero known (esc)
450 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (28) merge zero known (esc)
451 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
451 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
452 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 27:886ed638191b (esc)
452 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 27:886ed638191b (esc)
453 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 21:d42a756af44d (esc)
453 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 21:d42a756af44d (esc)
454 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
454 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
455 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:27 1970 +0000 (esc)
455 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:27 1970 +0000 (esc)
456 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (27) collapse (esc)
456 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (27) collapse (esc)
457 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
457 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
458 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 26:7f25b6c2f0b9 (esc)
458 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 26:7f25b6c2f0b9 (esc)
459 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
459 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
460 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 25:91da8ed57247 (esc)
460 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 25:91da8ed57247 (esc)
461 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
461 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
462 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:26 1970 +0000 (esc)
462 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:26 1970 +0000 (esc)
463 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (26) merge one known; far right (esc)
463 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (26) merge one known; far right (esc)
464 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
464 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
465 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 25:91da8ed57247 (esc)
465 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 25:91da8ed57247 (esc)
466 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 21:d42a756af44d (esc)
466 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 21:d42a756af44d (esc)
467 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 24:a9c19a3d96b7 (esc)
467 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 24:a9c19a3d96b7 (esc)
468 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
468 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
469 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:25 1970 +0000 (esc)
469 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:25 1970 +0000 (esc)
470 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (25) merge one known; far left (esc)
470 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (25) merge one known; far left (esc)
471 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
471 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
472 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 24:a9c19a3d96b7 (esc)
472 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 24:a9c19a3d96b7 (esc)
473 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
473 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
474 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 23:a01cddf0766d (esc)
474 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 23:a01cddf0766d (esc)
475 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
475 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
476 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:24 1970 +0000 (esc)
476 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:24 1970 +0000 (esc)
477 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (24) merge one known; immediate right (esc)
477 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (24) merge one known; immediate right (esc)
478 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
478 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
479 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 23:a01cddf0766d (esc)
479 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 23:a01cddf0766d (esc)
480 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
480 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
481 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 22:e0d9cccacb5d (esc)
481 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 22:e0d9cccacb5d (esc)
482 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
482 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
483 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:23 1970 +0000 (esc)
483 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:23 1970 +0000 (esc)
484 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (23) merge one known; immediate left (esc)
484 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (23) merge one known; immediate left (esc)
485 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
485 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
486 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 22:e0d9cccacb5d (esc)
486 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 22:e0d9cccacb5d (esc)
487 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
487 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
488 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xb1 \xe2\x95\xb1 parent: 21:d42a756af44d (esc)
488 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xb1 \xe2\x95\xb1 parent: 21:d42a756af44d (esc)
489 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
489 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
490 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:22 1970 +0000 (esc)
490 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:22 1970 +0000 (esc)
491 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (22) merge two known; one far left, one far right (esc)
491 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (22) merge two known; one far left, one far right (esc)
492 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
492 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
493 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 21:d42a756af44d (esc)
493 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 21:d42a756af44d (esc)
494 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 19:31ddc2c1573b (esc)
494 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 19:31ddc2c1573b (esc)
495 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 20:d30ed6450e32 (esc)
495 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 20:d30ed6450e32 (esc)
496 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
496 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
497 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:21 1970 +0000 (esc)
497 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:21 1970 +0000 (esc)
498 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (21) expand (esc)
498 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (21) expand (esc)
499 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
499 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
500 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\xa4 changeset: 20:d30ed6450e32 (esc)
500 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\xa4 changeset: 20:d30ed6450e32 (esc)
501 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
501 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
502 \xe2\x94\x82 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 18:1aa84d96232a (esc)
502 \xe2\x94\x82 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 18:1aa84d96232a (esc)
503 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
503 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
504 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:20 1970 +0000 (esc)
504 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:20 1970 +0000 (esc)
505 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (20) merge two known; two far right (esc)
505 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (20) merge two known; two far right (esc)
506 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
506 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
507 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 19:31ddc2c1573b (esc)
507 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 19:31ddc2c1573b (esc)
508 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 15:1dda3f72782d (esc)
508 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 15:1dda3f72782d (esc)
509 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 17:44765d7c06e0 (esc)
509 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 17:44765d7c06e0 (esc)
510 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
510 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
511 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:19 1970 +0000 (esc)
511 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:19 1970 +0000 (esc)
512 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (19) expand (esc)
512 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (19) expand (esc)
513 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
513 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
514 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b changeset: 18:1aa84d96232a (esc)
514 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b changeset: 18:1aa84d96232a (esc)
515 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
515 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
516 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 15:1dda3f72782d (esc)
516 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 15:1dda3f72782d (esc)
517 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
517 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
518 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:18 1970 +0000 (esc)
518 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:18 1970 +0000 (esc)
519 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (18) merge two known; two far left (esc)
519 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (18) merge two known; two far left (esc)
520 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
520 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
521 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 17:44765d7c06e0 (esc)
521 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 17:44765d7c06e0 (esc)
522 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 12:86b91144a6e9 (esc)
522 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 12:86b91144a6e9 (esc)
523 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 16:3677d192927d (esc)
523 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 16:3677d192927d (esc)
524 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
524 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
525 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:17 1970 +0000 (esc)
525 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:17 1970 +0000 (esc)
526 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (17) expand (esc)
526 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (17) expand (esc)
527 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
527 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
528 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 16:3677d192927d (esc)
528 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 16:3677d192927d (esc)
529 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
529 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
530 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
530 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
531 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
531 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
532 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:16 1970 +0000 (esc)
532 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:16 1970 +0000 (esc)
533 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (16) merge two known; one immediate right, one near right (esc)
533 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (16) merge two known; one immediate right, one near right (esc)
534 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
534 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
535 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 15:1dda3f72782d (esc)
535 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 15:1dda3f72782d (esc)
536 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 13:22d8966a97e3 (esc)
536 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 13:22d8966a97e3 (esc)
537 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 14:8eac370358ef (esc)
537 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 14:8eac370358ef (esc)
538 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
538 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
539 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:15 1970 +0000 (esc)
539 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:15 1970 +0000 (esc)
540 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (15) expand (esc)
540 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (15) expand (esc)
541 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
541 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
542 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 14:8eac370358ef (esc)
542 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 14:8eac370358ef (esc)
543 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
543 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
544 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 12:86b91144a6e9 (esc)
544 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 12:86b91144a6e9 (esc)
545 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
545 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
546 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:14 1970 +0000 (esc)
546 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:14 1970 +0000 (esc)
547 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (14) merge two known; one immediate right, one far right (esc)
547 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (14) merge two known; one immediate right, one far right (esc)
548 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
548 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
549 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 13:22d8966a97e3 (esc)
549 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 13:22d8966a97e3 (esc)
550 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 9:7010c0af0a35 (esc)
550 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 9:7010c0af0a35 (esc)
551 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 11:832d76e6bdf2 (esc)
551 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 11:832d76e6bdf2 (esc)
552 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
552 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
553 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:13 1970 +0000 (esc)
553 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:13 1970 +0000 (esc)
554 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (13) expand (esc)
554 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (13) expand (esc)
555 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
555 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
556 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 12:86b91144a6e9 (esc)
556 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 12:86b91144a6e9 (esc)
557 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
557 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
558 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 9:7010c0af0a35 (esc)
558 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 9:7010c0af0a35 (esc)
559 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
559 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
560 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:12 1970 +0000 (esc)
560 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:12 1970 +0000 (esc)
561 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (12) merge two known; one immediate right, one far left (esc)
561 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (12) merge two known; one immediate right, one far left (esc)
562 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
562 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
563 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 11:832d76e6bdf2 (esc)
563 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 11:832d76e6bdf2 (esc)
564 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 6:b105a072e251 (esc)
564 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 6:b105a072e251 (esc)
565 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 10:74c64d036d72 (esc)
565 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 10:74c64d036d72 (esc)
566 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
566 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
567 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:11 1970 +0000 (esc)
567 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:11 1970 +0000 (esc)
568 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (11) expand (esc)
568 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (11) expand (esc)
569 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
569 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
570 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 10:74c64d036d72 (esc)
570 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 10:74c64d036d72 (esc)
571 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
571 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
572 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 6:b105a072e251 (esc)
572 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 6:b105a072e251 (esc)
573 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
573 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
574 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:10 1970 +0000 (esc)
574 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:10 1970 +0000 (esc)
575 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (10) merge two known; one immediate left, one near right (esc)
575 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (10) merge two known; one immediate left, one near right (esc)
576 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
576 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
577 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 9:7010c0af0a35 (esc)
577 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 9:7010c0af0a35 (esc)
578 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 7:b632bb1b1224 (esc)
578 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 7:b632bb1b1224 (esc)
579 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 8:7a0b11f71937 (esc)
579 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 8:7a0b11f71937 (esc)
580 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
580 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
581 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:09 1970 +0000 (esc)
581 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:09 1970 +0000 (esc)
582 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (9) expand (esc)
582 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (9) expand (esc)
583 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
583 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
584 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 8:7a0b11f71937 (esc)
584 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 8:7a0b11f71937 (esc)
585 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
585 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
586 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 7:b632bb1b1224 (esc)
586 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 7:b632bb1b1224 (esc)
587 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
587 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
588 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:08 1970 +0000 (esc)
588 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:08 1970 +0000 (esc)
589 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (8) merge two known; one immediate left, one far right (esc)
589 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (8) merge two known; one immediate left, one far right (esc)
590 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
590 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
591 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 7:b632bb1b1224 (esc)
591 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 7:b632bb1b1224 (esc)
592 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 2:3d9a33b8d1e1 (esc)
592 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 2:3d9a33b8d1e1 (esc)
593 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 5:4409d547b708 (esc)
593 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 5:4409d547b708 (esc)
594 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
594 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
595 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:07 1970 +0000 (esc)
595 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:07 1970 +0000 (esc)
596 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (7) expand (esc)
596 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (7) expand (esc)
597 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
597 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
598 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 6:b105a072e251 (esc)
598 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 6:b105a072e251 (esc)
599 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 2:3d9a33b8d1e1 (esc)
599 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 2:3d9a33b8d1e1 (esc)
600 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 5:4409d547b708 (esc)
600 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 5:4409d547b708 (esc)
601 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
601 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
602 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:06 1970 +0000 (esc)
602 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:06 1970 +0000 (esc)
603 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (6) merge two known; one immediate left, one far left (esc)
603 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (6) merge two known; one immediate left, one far left (esc)
604 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
604 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
605 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 5:4409d547b708 (esc)
605 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 5:4409d547b708 (esc)
606 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 3:27eef8ed80b4 (esc)
606 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 3:27eef8ed80b4 (esc)
607 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 4:26a8bac39d9f (esc)
607 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 4:26a8bac39d9f (esc)
608 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
608 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
609 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:05 1970 +0000 (esc)
609 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:05 1970 +0000 (esc)
610 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (5) expand (esc)
610 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (5) expand (esc)
611 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
611 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
612 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 4:26a8bac39d9f (esc)
612 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 4:26a8bac39d9f (esc)
613 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
613 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
614 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 3:27eef8ed80b4 (esc)
614 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 3:27eef8ed80b4 (esc)
615 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
615 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
616 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:04 1970 +0000 (esc)
616 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:04 1970 +0000 (esc)
617 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (4) merge two known; one immediate left, one immediate right (esc)
617 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (4) merge two known; one immediate left, one immediate right (esc)
618 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
618 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
619 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 3:27eef8ed80b4 (esc)
619 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 3:27eef8ed80b4 (esc)
620 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 user: test (esc)
620 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 user: test (esc)
621 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:03 1970 +0000 (esc)
621 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:03 1970 +0000 (esc)
622 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (3) collapse (esc)
622 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (3) collapse (esc)
623 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
623 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
624 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 2:3d9a33b8d1e1 (esc)
624 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 2:3d9a33b8d1e1 (esc)
625 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 user: test (esc)
625 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 user: test (esc)
626 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:02 1970 +0000 (esc)
626 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:02 1970 +0000 (esc)
627 \xe2\x94\x82 \xe2\x94\x82 summary: (2) collapse (esc)
627 \xe2\x94\x82 \xe2\x94\x82 summary: (2) collapse (esc)
628 \xe2\x94\x82 \xe2\x94\x82 (esc)
628 \xe2\x94\x82 \xe2\x94\x82 (esc)
629 \xe2\x97\x8b \xe2\x94\x82 changeset: 1:6db2ef61d156 (esc)
629 \xe2\x97\x8b \xe2\x94\x82 changeset: 1:6db2ef61d156 (esc)
630 \xe2\x94\x82\xe2\x95\xb1 user: test (esc)
630 \xe2\x94\x82\xe2\x95\xb1 user: test (esc)
631 \xe2\x94\x82 date: Thu Jan 01 00:00:01 1970 +0000 (esc)
631 \xe2\x94\x82 date: Thu Jan 01 00:00:01 1970 +0000 (esc)
632 \xe2\x94\x82 summary: (1) collapse (esc)
632 \xe2\x94\x82 summary: (1) collapse (esc)
633 \xe2\x94\x82 (esc)
633 \xe2\x94\x82 (esc)
634 \xe2\x97\x8b changeset: 0:e6eb3150255d (esc)
634 \xe2\x97\x8b changeset: 0:e6eb3150255d (esc)
635 user: test
635 user: test
636 date: Thu Jan 01 00:00:00 1970 +0000
636 date: Thu Jan 01 00:00:00 1970 +0000
637 summary: (0) root
637 summary: (0) root
638
638
639 File glog:
639 File glog:
640 $ hg log -G a
640 $ hg log -G a
641 \xe2\x97\x8d changeset: 34:fea3ac5810e0 (esc)
641 \xe2\x97\x8d changeset: 34:fea3ac5810e0 (esc)
642 \xe2\x94\x82 tag: tip (esc)
642 \xe2\x94\x82 tag: tip (esc)
643 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
643 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
644 \xe2\x94\x82 user: test (esc)
644 \xe2\x94\x82 user: test (esc)
645 \xe2\x94\x82 date: Thu Jan 01 00:00:34 1970 +0000 (esc)
645 \xe2\x94\x82 date: Thu Jan 01 00:00:34 1970 +0000 (esc)
646 \xe2\x94\x82 summary: (34) head (esc)
646 \xe2\x94\x82 summary: (34) head (esc)
647 \xe2\x94\x82 (esc)
647 \xe2\x94\x82 (esc)
648 \xe2\x94\x82 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
648 \xe2\x94\x82 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
649 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
649 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
650 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
650 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
651 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:33 1970 +0000 (esc)
651 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:33 1970 +0000 (esc)
652 \xe2\x94\x82 \xe2\x94\x82 summary: (33) head (esc)
652 \xe2\x94\x82 \xe2\x94\x82 summary: (33) head (esc)
653 \xe2\x94\x82 \xe2\x94\x82 (esc)
653 \xe2\x94\x82 \xe2\x94\x82 (esc)
654 \xe2\x97\x8b \xe2\x94\x82 changeset: 32:d06dffa21a31 (esc)
654 \xe2\x97\x8b \xe2\x94\x82 changeset: 32:d06dffa21a31 (esc)
655 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 27:886ed638191b (esc)
655 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 27:886ed638191b (esc)
656 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 31:621d83e11f67 (esc)
656 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 31:621d83e11f67 (esc)
657 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
657 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
658 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:32 1970 +0000 (esc)
658 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:32 1970 +0000 (esc)
659 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (32) expand (esc)
659 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (32) expand (esc)
660 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
660 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
661 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 31:621d83e11f67 (esc)
661 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 31:621d83e11f67 (esc)
662 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 21:d42a756af44d (esc)
662 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 21:d42a756af44d (esc)
663 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 30:6e11cd4b648f (esc)
663 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 30:6e11cd4b648f (esc)
664 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
664 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
665 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:31 1970 +0000 (esc)
665 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:31 1970 +0000 (esc)
666 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (31) expand (esc)
666 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (31) expand (esc)
667 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
667 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
668 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 30:6e11cd4b648f (esc)
668 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 30:6e11cd4b648f (esc)
669 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 28:44ecd0b9ae99 (esc)
669 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 28:44ecd0b9ae99 (esc)
670 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 29:cd9bb2be7593 (esc)
670 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 29:cd9bb2be7593 (esc)
671 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
671 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
672 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:30 1970 +0000 (esc)
672 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:30 1970 +0000 (esc)
673 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (30) expand (esc)
673 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (30) expand (esc)
674 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
674 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
675 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 29:cd9bb2be7593 (esc)
675 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 29:cd9bb2be7593 (esc)
676 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
676 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
677 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
677 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
678 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:29 1970 +0000 (esc)
678 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:29 1970 +0000 (esc)
679 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (29) regular commit (esc)
679 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (29) regular commit (esc)
680 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
680 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
681 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 28:44ecd0b9ae99 (esc)
681 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 28:44ecd0b9ae99 (esc)
682 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
682 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
683 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 26:7f25b6c2f0b9 (esc)
683 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 26:7f25b6c2f0b9 (esc)
684 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
684 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
685 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:28 1970 +0000 (esc)
685 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:28 1970 +0000 (esc)
686 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (28) merge zero known (esc)
686 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (28) merge zero known (esc)
687 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
687 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
688 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 27:886ed638191b (esc)
688 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 27:886ed638191b (esc)
689 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 21:d42a756af44d (esc)
689 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 21:d42a756af44d (esc)
690 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
690 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
691 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:27 1970 +0000 (esc)
691 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:27 1970 +0000 (esc)
692 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (27) collapse (esc)
692 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (27) collapse (esc)
693 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
693 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
694 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 26:7f25b6c2f0b9 (esc)
694 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 26:7f25b6c2f0b9 (esc)
695 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
695 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
696 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 25:91da8ed57247 (esc)
696 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 25:91da8ed57247 (esc)
697 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
697 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
698 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:26 1970 +0000 (esc)
698 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:26 1970 +0000 (esc)
699 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (26) merge one known; far right (esc)
699 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (26) merge one known; far right (esc)
700 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
700 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
701 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 25:91da8ed57247 (esc)
701 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 25:91da8ed57247 (esc)
702 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 21:d42a756af44d (esc)
702 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 21:d42a756af44d (esc)
703 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 24:a9c19a3d96b7 (esc)
703 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 24:a9c19a3d96b7 (esc)
704 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
704 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
705 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:25 1970 +0000 (esc)
705 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:25 1970 +0000 (esc)
706 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (25) merge one known; far left (esc)
706 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (25) merge one known; far left (esc)
707 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
707 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
708 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 24:a9c19a3d96b7 (esc)
708 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 24:a9c19a3d96b7 (esc)
709 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
709 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
710 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 23:a01cddf0766d (esc)
710 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 23:a01cddf0766d (esc)
711 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
711 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
712 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:24 1970 +0000 (esc)
712 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:24 1970 +0000 (esc)
713 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (24) merge one known; immediate right (esc)
713 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (24) merge one known; immediate right (esc)
714 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
714 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
715 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 23:a01cddf0766d (esc)
715 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 23:a01cddf0766d (esc)
716 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
716 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
717 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 22:e0d9cccacb5d (esc)
717 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 22:e0d9cccacb5d (esc)
718 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
718 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
719 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:23 1970 +0000 (esc)
719 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:23 1970 +0000 (esc)
720 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (23) merge one known; immediate left (esc)
720 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (23) merge one known; immediate left (esc)
721 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
721 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
722 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 22:e0d9cccacb5d (esc)
722 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 22:e0d9cccacb5d (esc)
723 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
723 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
724 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xb1 \xe2\x95\xb1 parent: 21:d42a756af44d (esc)
724 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xb1 \xe2\x95\xb1 parent: 21:d42a756af44d (esc)
725 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
725 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
726 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:22 1970 +0000 (esc)
726 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:22 1970 +0000 (esc)
727 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (22) merge two known; one far left, one far right (esc)
727 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (22) merge two known; one far left, one far right (esc)
728 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
728 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
729 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 21:d42a756af44d (esc)
729 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 21:d42a756af44d (esc)
730 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 19:31ddc2c1573b (esc)
730 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 19:31ddc2c1573b (esc)
731 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 20:d30ed6450e32 (esc)
731 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 20:d30ed6450e32 (esc)
732 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
732 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
733 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:21 1970 +0000 (esc)
733 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:21 1970 +0000 (esc)
734 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (21) expand (esc)
734 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (21) expand (esc)
735 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
735 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
736 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\xa4 changeset: 20:d30ed6450e32 (esc)
736 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\xa4 changeset: 20:d30ed6450e32 (esc)
737 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
737 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
738 \xe2\x94\x82 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 18:1aa84d96232a (esc)
738 \xe2\x94\x82 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 18:1aa84d96232a (esc)
739 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
739 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
740 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:20 1970 +0000 (esc)
740 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:20 1970 +0000 (esc)
741 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (20) merge two known; two far right (esc)
741 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (20) merge two known; two far right (esc)
742 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
742 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
743 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 19:31ddc2c1573b (esc)
743 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 19:31ddc2c1573b (esc)
744 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 15:1dda3f72782d (esc)
744 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 15:1dda3f72782d (esc)
745 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 17:44765d7c06e0 (esc)
745 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 17:44765d7c06e0 (esc)
746 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
746 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
747 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:19 1970 +0000 (esc)
747 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:19 1970 +0000 (esc)
748 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (19) expand (esc)
748 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (19) expand (esc)
749 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
749 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
750 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b changeset: 18:1aa84d96232a (esc)
750 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b changeset: 18:1aa84d96232a (esc)
751 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
751 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
752 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 15:1dda3f72782d (esc)
752 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 15:1dda3f72782d (esc)
753 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
753 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
754 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:18 1970 +0000 (esc)
754 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:18 1970 +0000 (esc)
755 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (18) merge two known; two far left (esc)
755 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (18) merge two known; two far left (esc)
756 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
756 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
757 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 17:44765d7c06e0 (esc)
757 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 17:44765d7c06e0 (esc)
758 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 12:86b91144a6e9 (esc)
758 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 12:86b91144a6e9 (esc)
759 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 16:3677d192927d (esc)
759 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 16:3677d192927d (esc)
760 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
760 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
761 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:17 1970 +0000 (esc)
761 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:17 1970 +0000 (esc)
762 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (17) expand (esc)
762 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (17) expand (esc)
763 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
763 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
764 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 16:3677d192927d (esc)
764 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 16:3677d192927d (esc)
765 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
765 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
766 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
766 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
767 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
767 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
768 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:16 1970 +0000 (esc)
768 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:16 1970 +0000 (esc)
769 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (16) merge two known; one immediate right, one near right (esc)
769 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (16) merge two known; one immediate right, one near right (esc)
770 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
770 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
771 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 15:1dda3f72782d (esc)
771 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 15:1dda3f72782d (esc)
772 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 13:22d8966a97e3 (esc)
772 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 13:22d8966a97e3 (esc)
773 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 14:8eac370358ef (esc)
773 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 14:8eac370358ef (esc)
774 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
774 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
775 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:15 1970 +0000 (esc)
775 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:15 1970 +0000 (esc)
776 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (15) expand (esc)
776 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (15) expand (esc)
777 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
777 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
778 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 14:8eac370358ef (esc)
778 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 14:8eac370358ef (esc)
779 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
779 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
780 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 12:86b91144a6e9 (esc)
780 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 12:86b91144a6e9 (esc)
781 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
781 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
782 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:14 1970 +0000 (esc)
782 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:14 1970 +0000 (esc)
783 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (14) merge two known; one immediate right, one far right (esc)
783 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (14) merge two known; one immediate right, one far right (esc)
784 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
784 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
785 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 13:22d8966a97e3 (esc)
785 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 13:22d8966a97e3 (esc)
786 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 9:7010c0af0a35 (esc)
786 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 9:7010c0af0a35 (esc)
787 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 11:832d76e6bdf2 (esc)
787 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 11:832d76e6bdf2 (esc)
788 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
788 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
789 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:13 1970 +0000 (esc)
789 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:13 1970 +0000 (esc)
790 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (13) expand (esc)
790 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (13) expand (esc)
791 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
791 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
792 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 12:86b91144a6e9 (esc)
792 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 12:86b91144a6e9 (esc)
793 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
793 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
794 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 9:7010c0af0a35 (esc)
794 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 9:7010c0af0a35 (esc)
795 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
795 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
796 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:12 1970 +0000 (esc)
796 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:12 1970 +0000 (esc)
797 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (12) merge two known; one immediate right, one far left (esc)
797 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (12) merge two known; one immediate right, one far left (esc)
798 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
798 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
799 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 11:832d76e6bdf2 (esc)
799 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 11:832d76e6bdf2 (esc)
800 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 6:b105a072e251 (esc)
800 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 6:b105a072e251 (esc)
801 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 10:74c64d036d72 (esc)
801 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 10:74c64d036d72 (esc)
802 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
802 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
803 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:11 1970 +0000 (esc)
803 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:11 1970 +0000 (esc)
804 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (11) expand (esc)
804 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (11) expand (esc)
805 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
805 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
806 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 10:74c64d036d72 (esc)
806 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 10:74c64d036d72 (esc)
807 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
807 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
808 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 6:b105a072e251 (esc)
808 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 6:b105a072e251 (esc)
809 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
809 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
810 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:10 1970 +0000 (esc)
810 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:10 1970 +0000 (esc)
811 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (10) merge two known; one immediate left, one near right (esc)
811 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (10) merge two known; one immediate left, one near right (esc)
812 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
812 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
813 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 9:7010c0af0a35 (esc)
813 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 9:7010c0af0a35 (esc)
814 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 7:b632bb1b1224 (esc)
814 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 7:b632bb1b1224 (esc)
815 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 8:7a0b11f71937 (esc)
815 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 8:7a0b11f71937 (esc)
816 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
816 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
817 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:09 1970 +0000 (esc)
817 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:09 1970 +0000 (esc)
818 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (9) expand (esc)
818 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (9) expand (esc)
819 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
819 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
820 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 8:7a0b11f71937 (esc)
820 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 8:7a0b11f71937 (esc)
821 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
821 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
822 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 7:b632bb1b1224 (esc)
822 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 7:b632bb1b1224 (esc)
823 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
823 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
824 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:08 1970 +0000 (esc)
824 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:08 1970 +0000 (esc)
825 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (8) merge two known; one immediate left, one far right (esc)
825 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (8) merge two known; one immediate left, one far right (esc)
826 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
826 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
827 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 7:b632bb1b1224 (esc)
827 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 7:b632bb1b1224 (esc)
828 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 2:3d9a33b8d1e1 (esc)
828 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 2:3d9a33b8d1e1 (esc)
829 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 5:4409d547b708 (esc)
829 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 5:4409d547b708 (esc)
830 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
830 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
831 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:07 1970 +0000 (esc)
831 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:07 1970 +0000 (esc)
832 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (7) expand (esc)
832 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (7) expand (esc)
833 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
833 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
834 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 6:b105a072e251 (esc)
834 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 6:b105a072e251 (esc)
835 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 2:3d9a33b8d1e1 (esc)
835 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 2:3d9a33b8d1e1 (esc)
836 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 5:4409d547b708 (esc)
836 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 5:4409d547b708 (esc)
837 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
837 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
838 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:06 1970 +0000 (esc)
838 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:06 1970 +0000 (esc)
839 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (6) merge two known; one immediate left, one far left (esc)
839 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (6) merge two known; one immediate left, one far left (esc)
840 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
840 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
841 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 5:4409d547b708 (esc)
841 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 5:4409d547b708 (esc)
842 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 3:27eef8ed80b4 (esc)
842 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 3:27eef8ed80b4 (esc)
843 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 4:26a8bac39d9f (esc)
843 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 4:26a8bac39d9f (esc)
844 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
844 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
845 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:05 1970 +0000 (esc)
845 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:05 1970 +0000 (esc)
846 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (5) expand (esc)
846 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (5) expand (esc)
847 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
847 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
848 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 4:26a8bac39d9f (esc)
848 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 4:26a8bac39d9f (esc)
849 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
849 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
850 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 3:27eef8ed80b4 (esc)
850 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 3:27eef8ed80b4 (esc)
851 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
851 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
852 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:04 1970 +0000 (esc)
852 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:04 1970 +0000 (esc)
853 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (4) merge two known; one immediate left, one immediate right (esc)
853 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (4) merge two known; one immediate left, one immediate right (esc)
854 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
854 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
855 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 3:27eef8ed80b4 (esc)
855 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 3:27eef8ed80b4 (esc)
856 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 user: test (esc)
856 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 user: test (esc)
857 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:03 1970 +0000 (esc)
857 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:03 1970 +0000 (esc)
858 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (3) collapse (esc)
858 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (3) collapse (esc)
859 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
859 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
860 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 2:3d9a33b8d1e1 (esc)
860 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 2:3d9a33b8d1e1 (esc)
861 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 user: test (esc)
861 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 user: test (esc)
862 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:02 1970 +0000 (esc)
862 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:02 1970 +0000 (esc)
863 \xe2\x94\x82 \xe2\x94\x82 summary: (2) collapse (esc)
863 \xe2\x94\x82 \xe2\x94\x82 summary: (2) collapse (esc)
864 \xe2\x94\x82 \xe2\x94\x82 (esc)
864 \xe2\x94\x82 \xe2\x94\x82 (esc)
865 \xe2\x97\x8b \xe2\x94\x82 changeset: 1:6db2ef61d156 (esc)
865 \xe2\x97\x8b \xe2\x94\x82 changeset: 1:6db2ef61d156 (esc)
866 \xe2\x94\x82\xe2\x95\xb1 user: test (esc)
866 \xe2\x94\x82\xe2\x95\xb1 user: test (esc)
867 \xe2\x94\x82 date: Thu Jan 01 00:00:01 1970 +0000 (esc)
867 \xe2\x94\x82 date: Thu Jan 01 00:00:01 1970 +0000 (esc)
868 \xe2\x94\x82 summary: (1) collapse (esc)
868 \xe2\x94\x82 summary: (1) collapse (esc)
869 \xe2\x94\x82 (esc)
869 \xe2\x94\x82 (esc)
870 \xe2\x97\x8b changeset: 0:e6eb3150255d (esc)
870 \xe2\x97\x8b changeset: 0:e6eb3150255d (esc)
871 user: test
871 user: test
872 date: Thu Jan 01 00:00:00 1970 +0000
872 date: Thu Jan 01 00:00:00 1970 +0000
873 summary: (0) root
873 summary: (0) root
874
874
875 File glog per revset:
875 File glog per revset:
876
876
877 $ hg log -G -r 'file("a")'
877 $ hg log -G -r 'file("a")'
878 \xe2\x97\x8d changeset: 34:fea3ac5810e0 (esc)
878 \xe2\x97\x8d changeset: 34:fea3ac5810e0 (esc)
879 \xe2\x94\x82 tag: tip (esc)
879 \xe2\x94\x82 tag: tip (esc)
880 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
880 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
881 \xe2\x94\x82 user: test (esc)
881 \xe2\x94\x82 user: test (esc)
882 \xe2\x94\x82 date: Thu Jan 01 00:00:34 1970 +0000 (esc)
882 \xe2\x94\x82 date: Thu Jan 01 00:00:34 1970 +0000 (esc)
883 \xe2\x94\x82 summary: (34) head (esc)
883 \xe2\x94\x82 summary: (34) head (esc)
884 \xe2\x94\x82 (esc)
884 \xe2\x94\x82 (esc)
885 \xe2\x94\x82 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
885 \xe2\x94\x82 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
886 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
886 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
887 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
887 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
888 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:33 1970 +0000 (esc)
888 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:33 1970 +0000 (esc)
889 \xe2\x94\x82 \xe2\x94\x82 summary: (33) head (esc)
889 \xe2\x94\x82 \xe2\x94\x82 summary: (33) head (esc)
890 \xe2\x94\x82 \xe2\x94\x82 (esc)
890 \xe2\x94\x82 \xe2\x94\x82 (esc)
891 \xe2\x97\x8b \xe2\x94\x82 changeset: 32:d06dffa21a31 (esc)
891 \xe2\x97\x8b \xe2\x94\x82 changeset: 32:d06dffa21a31 (esc)
892 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 27:886ed638191b (esc)
892 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 27:886ed638191b (esc)
893 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 31:621d83e11f67 (esc)
893 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 31:621d83e11f67 (esc)
894 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
894 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
895 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:32 1970 +0000 (esc)
895 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:32 1970 +0000 (esc)
896 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (32) expand (esc)
896 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (32) expand (esc)
897 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
897 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
898 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 31:621d83e11f67 (esc)
898 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 31:621d83e11f67 (esc)
899 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 21:d42a756af44d (esc)
899 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 21:d42a756af44d (esc)
900 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 30:6e11cd4b648f (esc)
900 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 30:6e11cd4b648f (esc)
901 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
901 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
902 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:31 1970 +0000 (esc)
902 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:31 1970 +0000 (esc)
903 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (31) expand (esc)
903 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (31) expand (esc)
904 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
904 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
905 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 30:6e11cd4b648f (esc)
905 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 30:6e11cd4b648f (esc)
906 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 28:44ecd0b9ae99 (esc)
906 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 28:44ecd0b9ae99 (esc)
907 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 29:cd9bb2be7593 (esc)
907 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 29:cd9bb2be7593 (esc)
908 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
908 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
909 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:30 1970 +0000 (esc)
909 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:30 1970 +0000 (esc)
910 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (30) expand (esc)
910 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (30) expand (esc)
911 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
911 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
912 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 29:cd9bb2be7593 (esc)
912 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 29:cd9bb2be7593 (esc)
913 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
913 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
914 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
914 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
915 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:29 1970 +0000 (esc)
915 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:29 1970 +0000 (esc)
916 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (29) regular commit (esc)
916 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (29) regular commit (esc)
917 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
917 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
918 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 28:44ecd0b9ae99 (esc)
918 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 28:44ecd0b9ae99 (esc)
919 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
919 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
920 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 26:7f25b6c2f0b9 (esc)
920 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 26:7f25b6c2f0b9 (esc)
921 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
921 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
922 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:28 1970 +0000 (esc)
922 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:28 1970 +0000 (esc)
923 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (28) merge zero known (esc)
923 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (28) merge zero known (esc)
924 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
924 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
925 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 27:886ed638191b (esc)
925 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 27:886ed638191b (esc)
926 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 21:d42a756af44d (esc)
926 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 21:d42a756af44d (esc)
927 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
927 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
928 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:27 1970 +0000 (esc)
928 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:27 1970 +0000 (esc)
929 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (27) collapse (esc)
929 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (27) collapse (esc)
930 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
930 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
931 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 26:7f25b6c2f0b9 (esc)
931 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 26:7f25b6c2f0b9 (esc)
932 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
932 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
933 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 25:91da8ed57247 (esc)
933 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 25:91da8ed57247 (esc)
934 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
934 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
935 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:26 1970 +0000 (esc)
935 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:26 1970 +0000 (esc)
936 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (26) merge one known; far right (esc)
936 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (26) merge one known; far right (esc)
937 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
937 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
938 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 25:91da8ed57247 (esc)
938 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 25:91da8ed57247 (esc)
939 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 21:d42a756af44d (esc)
939 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 21:d42a756af44d (esc)
940 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 24:a9c19a3d96b7 (esc)
940 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 24:a9c19a3d96b7 (esc)
941 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
941 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
942 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:25 1970 +0000 (esc)
942 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:25 1970 +0000 (esc)
943 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (25) merge one known; far left (esc)
943 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (25) merge one known; far left (esc)
944 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
944 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
945 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 24:a9c19a3d96b7 (esc)
945 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 24:a9c19a3d96b7 (esc)
946 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
946 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
947 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 23:a01cddf0766d (esc)
947 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 23:a01cddf0766d (esc)
948 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
948 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
949 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:24 1970 +0000 (esc)
949 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:24 1970 +0000 (esc)
950 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (24) merge one known; immediate right (esc)
950 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (24) merge one known; immediate right (esc)
951 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
951 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
952 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 23:a01cddf0766d (esc)
952 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 23:a01cddf0766d (esc)
953 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
953 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
954 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 22:e0d9cccacb5d (esc)
954 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 22:e0d9cccacb5d (esc)
955 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
955 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
956 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:23 1970 +0000 (esc)
956 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:23 1970 +0000 (esc)
957 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (23) merge one known; immediate left (esc)
957 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (23) merge one known; immediate left (esc)
958 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
958 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
959 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 22:e0d9cccacb5d (esc)
959 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 22:e0d9cccacb5d (esc)
960 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
960 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
961 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xb1 \xe2\x95\xb1 parent: 21:d42a756af44d (esc)
961 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xb1 \xe2\x95\xb1 parent: 21:d42a756af44d (esc)
962 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
962 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
963 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:22 1970 +0000 (esc)
963 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:22 1970 +0000 (esc)
964 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (22) merge two known; one far left, one far right (esc)
964 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (22) merge two known; one far left, one far right (esc)
965 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
965 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
966 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 21:d42a756af44d (esc)
966 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 21:d42a756af44d (esc)
967 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 19:31ddc2c1573b (esc)
967 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 19:31ddc2c1573b (esc)
968 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 20:d30ed6450e32 (esc)
968 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 20:d30ed6450e32 (esc)
969 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
969 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
970 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:21 1970 +0000 (esc)
970 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:21 1970 +0000 (esc)
971 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (21) expand (esc)
971 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (21) expand (esc)
972 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
972 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
973 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\xa4 changeset: 20:d30ed6450e32 (esc)
973 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\xa4 changeset: 20:d30ed6450e32 (esc)
974 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
974 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
975 \xe2\x94\x82 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 18:1aa84d96232a (esc)
975 \xe2\x94\x82 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 18:1aa84d96232a (esc)
976 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
976 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
977 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:20 1970 +0000 (esc)
977 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:20 1970 +0000 (esc)
978 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (20) merge two known; two far right (esc)
978 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (20) merge two known; two far right (esc)
979 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
979 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
980 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 19:31ddc2c1573b (esc)
980 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 19:31ddc2c1573b (esc)
981 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 15:1dda3f72782d (esc)
981 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 15:1dda3f72782d (esc)
982 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 17:44765d7c06e0 (esc)
982 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 17:44765d7c06e0 (esc)
983 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
983 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
984 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:19 1970 +0000 (esc)
984 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:19 1970 +0000 (esc)
985 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (19) expand (esc)
985 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (19) expand (esc)
986 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
986 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
987 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b changeset: 18:1aa84d96232a (esc)
987 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b changeset: 18:1aa84d96232a (esc)
988 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
988 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
989 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 15:1dda3f72782d (esc)
989 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 15:1dda3f72782d (esc)
990 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
990 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
991 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:18 1970 +0000 (esc)
991 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:18 1970 +0000 (esc)
992 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (18) merge two known; two far left (esc)
992 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (18) merge two known; two far left (esc)
993 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
993 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
994 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 17:44765d7c06e0 (esc)
994 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 17:44765d7c06e0 (esc)
995 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 12:86b91144a6e9 (esc)
995 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 12:86b91144a6e9 (esc)
996 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 16:3677d192927d (esc)
996 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 16:3677d192927d (esc)
997 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
997 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
998 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:17 1970 +0000 (esc)
998 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:17 1970 +0000 (esc)
999 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (17) expand (esc)
999 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (17) expand (esc)
1000 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1000 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1001 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 16:3677d192927d (esc)
1001 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 16:3677d192927d (esc)
1002 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
1002 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
1003 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
1003 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
1004 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1004 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1005 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:16 1970 +0000 (esc)
1005 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:16 1970 +0000 (esc)
1006 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (16) merge two known; one immediate right, one near right (esc)
1006 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (16) merge two known; one immediate right, one near right (esc)
1007 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1007 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1008 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 15:1dda3f72782d (esc)
1008 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 15:1dda3f72782d (esc)
1009 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 13:22d8966a97e3 (esc)
1009 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 13:22d8966a97e3 (esc)
1010 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 14:8eac370358ef (esc)
1010 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 14:8eac370358ef (esc)
1011 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1011 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1012 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:15 1970 +0000 (esc)
1012 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:15 1970 +0000 (esc)
1013 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (15) expand (esc)
1013 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (15) expand (esc)
1014 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1014 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1015 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 14:8eac370358ef (esc)
1015 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 14:8eac370358ef (esc)
1016 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
1016 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
1017 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 12:86b91144a6e9 (esc)
1017 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 12:86b91144a6e9 (esc)
1018 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1018 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1019 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:14 1970 +0000 (esc)
1019 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:14 1970 +0000 (esc)
1020 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (14) merge two known; one immediate right, one far right (esc)
1020 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (14) merge two known; one immediate right, one far right (esc)
1021 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1021 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1022 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 13:22d8966a97e3 (esc)
1022 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 13:22d8966a97e3 (esc)
1023 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 9:7010c0af0a35 (esc)
1023 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 9:7010c0af0a35 (esc)
1024 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 11:832d76e6bdf2 (esc)
1024 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 11:832d76e6bdf2 (esc)
1025 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1025 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1026 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:13 1970 +0000 (esc)
1026 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:13 1970 +0000 (esc)
1027 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (13) expand (esc)
1027 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (13) expand (esc)
1028 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1028 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1029 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 12:86b91144a6e9 (esc)
1029 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 12:86b91144a6e9 (esc)
1030 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
1030 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
1031 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 9:7010c0af0a35 (esc)
1031 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 9:7010c0af0a35 (esc)
1032 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1032 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1033 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:12 1970 +0000 (esc)
1033 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:12 1970 +0000 (esc)
1034 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (12) merge two known; one immediate right, one far left (esc)
1034 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (12) merge two known; one immediate right, one far left (esc)
1035 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1035 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1036 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 11:832d76e6bdf2 (esc)
1036 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 11:832d76e6bdf2 (esc)
1037 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 6:b105a072e251 (esc)
1037 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 6:b105a072e251 (esc)
1038 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 10:74c64d036d72 (esc)
1038 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 10:74c64d036d72 (esc)
1039 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1039 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1040 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:11 1970 +0000 (esc)
1040 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:11 1970 +0000 (esc)
1041 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (11) expand (esc)
1041 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (11) expand (esc)
1042 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1042 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1043 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 10:74c64d036d72 (esc)
1043 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 10:74c64d036d72 (esc)
1044 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
1044 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
1045 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 6:b105a072e251 (esc)
1045 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 6:b105a072e251 (esc)
1046 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1046 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1047 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:10 1970 +0000 (esc)
1047 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:10 1970 +0000 (esc)
1048 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (10) merge two known; one immediate left, one near right (esc)
1048 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (10) merge two known; one immediate left, one near right (esc)
1049 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1049 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1050 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 9:7010c0af0a35 (esc)
1050 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 9:7010c0af0a35 (esc)
1051 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 7:b632bb1b1224 (esc)
1051 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 7:b632bb1b1224 (esc)
1052 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 8:7a0b11f71937 (esc)
1052 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 8:7a0b11f71937 (esc)
1053 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1053 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1054 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:09 1970 +0000 (esc)
1054 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:09 1970 +0000 (esc)
1055 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (9) expand (esc)
1055 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (9) expand (esc)
1056 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1056 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1057 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 8:7a0b11f71937 (esc)
1057 \xe2\x94\x82 \xe2\x97\x8b\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4 changeset: 8:7a0b11f71937 (esc)
1058 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
1058 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
1059 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 7:b632bb1b1224 (esc)
1059 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 7:b632bb1b1224 (esc)
1060 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1060 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1061 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:08 1970 +0000 (esc)
1061 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:08 1970 +0000 (esc)
1062 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (8) merge two known; one immediate left, one far right (esc)
1062 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (8) merge two known; one immediate left, one far right (esc)
1063 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1063 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1064 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 7:b632bb1b1224 (esc)
1064 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 changeset: 7:b632bb1b1224 (esc)
1065 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 2:3d9a33b8d1e1 (esc)
1065 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 2:3d9a33b8d1e1 (esc)
1066 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 5:4409d547b708 (esc)
1066 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 5:4409d547b708 (esc)
1067 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1067 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1068 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:07 1970 +0000 (esc)
1068 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:07 1970 +0000 (esc)
1069 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (7) expand (esc)
1069 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (7) expand (esc)
1070 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1070 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1071 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 6:b105a072e251 (esc)
1071 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 6:b105a072e251 (esc)
1072 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 2:3d9a33b8d1e1 (esc)
1072 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 parent: 2:3d9a33b8d1e1 (esc)
1073 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 5:4409d547b708 (esc)
1073 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 5:4409d547b708 (esc)
1074 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1074 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1075 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:06 1970 +0000 (esc)
1075 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:06 1970 +0000 (esc)
1076 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (6) merge two known; one immediate left, one far left (esc)
1076 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (6) merge two known; one immediate left, one far left (esc)
1077 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1077 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1078 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 5:4409d547b708 (esc)
1078 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 5:4409d547b708 (esc)
1079 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 3:27eef8ed80b4 (esc)
1079 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 \xe2\x95\xb2 parent: 3:27eef8ed80b4 (esc)
1080 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 4:26a8bac39d9f (esc)
1080 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 4:26a8bac39d9f (esc)
1081 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1081 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1082 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:05 1970 +0000 (esc)
1082 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:05 1970 +0000 (esc)
1083 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (5) expand (esc)
1083 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (5) expand (esc)
1084 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1084 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1085 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 4:26a8bac39d9f (esc)
1085 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 4:26a8bac39d9f (esc)
1086 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
1086 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 parent: 1:6db2ef61d156 (esc)
1087 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 3:27eef8ed80b4 (esc)
1087 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 3:27eef8ed80b4 (esc)
1088 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1088 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1089 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:04 1970 +0000 (esc)
1089 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:04 1970 +0000 (esc)
1090 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (4) merge two known; one immediate left, one immediate right (esc)
1090 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (4) merge two known; one immediate left, one immediate right (esc)
1091 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1091 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1092 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 3:27eef8ed80b4 (esc)
1092 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 3:27eef8ed80b4 (esc)
1093 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 user: test (esc)
1093 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 \xe2\x95\xb1 user: test (esc)
1094 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:03 1970 +0000 (esc)
1094 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:03 1970 +0000 (esc)
1095 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (3) collapse (esc)
1095 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (3) collapse (esc)
1096 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1096 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1097 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 2:3d9a33b8d1e1 (esc)
1097 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 2:3d9a33b8d1e1 (esc)
1098 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 user: test (esc)
1098 \xe2\x94\x82\xe2\x95\xb1 \xe2\x95\xb1 user: test (esc)
1099 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:02 1970 +0000 (esc)
1099 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:02 1970 +0000 (esc)
1100 \xe2\x94\x82 \xe2\x94\x82 summary: (2) collapse (esc)
1100 \xe2\x94\x82 \xe2\x94\x82 summary: (2) collapse (esc)
1101 \xe2\x94\x82 \xe2\x94\x82 (esc)
1101 \xe2\x94\x82 \xe2\x94\x82 (esc)
1102 \xe2\x97\x8b \xe2\x94\x82 changeset: 1:6db2ef61d156 (esc)
1102 \xe2\x97\x8b \xe2\x94\x82 changeset: 1:6db2ef61d156 (esc)
1103 \xe2\x94\x82\xe2\x95\xb1 user: test (esc)
1103 \xe2\x94\x82\xe2\x95\xb1 user: test (esc)
1104 \xe2\x94\x82 date: Thu Jan 01 00:00:01 1970 +0000 (esc)
1104 \xe2\x94\x82 date: Thu Jan 01 00:00:01 1970 +0000 (esc)
1105 \xe2\x94\x82 summary: (1) collapse (esc)
1105 \xe2\x94\x82 summary: (1) collapse (esc)
1106 \xe2\x94\x82 (esc)
1106 \xe2\x94\x82 (esc)
1107 \xe2\x97\x8b changeset: 0:e6eb3150255d (esc)
1107 \xe2\x97\x8b changeset: 0:e6eb3150255d (esc)
1108 user: test
1108 user: test
1109 date: Thu Jan 01 00:00:00 1970 +0000
1109 date: Thu Jan 01 00:00:00 1970 +0000
1110 summary: (0) root
1110 summary: (0) root
1111
1111
1112
1112
1113 File glog per revset (only merges):
1113 File glog per revset (only merges):
1114
1114
1115 $ hg log -G -r 'file("a")' -m
1115 $ hg log -G -r 'file("a")' -m
1116 \xe2\x97\x8b changeset: 32:d06dffa21a31 (esc)
1116 \xe2\x97\x8b changeset: 32:d06dffa21a31 (esc)
1117 \xe2\x94\x82\xe2\x95\xb2 parent: 27:886ed638191b (esc)
1117 \xe2\x94\x82\xe2\x95\xb2 parent: 27:886ed638191b (esc)
1118 \xe2\x94\x82 \xe2\x94\x86 parent: 31:621d83e11f67 (esc)
1118 \xe2\x94\x82 \xe2\x94\x86 parent: 31:621d83e11f67 (esc)
1119 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1119 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1120 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:32 1970 +0000 (esc)
1120 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:32 1970 +0000 (esc)
1121 \xe2\x94\x82 \xe2\x94\x86 summary: (32) expand (esc)
1121 \xe2\x94\x82 \xe2\x94\x86 summary: (32) expand (esc)
1122 \xe2\x94\x82 \xe2\x94\x86 (esc)
1122 \xe2\x94\x82 \xe2\x94\x86 (esc)
1123 \xe2\x97\x8b \xe2\x94\x86 changeset: 31:621d83e11f67 (esc)
1123 \xe2\x97\x8b \xe2\x94\x86 changeset: 31:621d83e11f67 (esc)
1124 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x86 parent: 21:d42a756af44d (esc)
1124 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x86 parent: 21:d42a756af44d (esc)
1125 \xe2\x94\x82 \xe2\x94\x86 parent: 30:6e11cd4b648f (esc)
1125 \xe2\x94\x82 \xe2\x94\x86 parent: 30:6e11cd4b648f (esc)
1126 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1126 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1127 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:31 1970 +0000 (esc)
1127 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:31 1970 +0000 (esc)
1128 \xe2\x94\x82 \xe2\x94\x86 summary: (31) expand (esc)
1128 \xe2\x94\x82 \xe2\x94\x86 summary: (31) expand (esc)
1129 \xe2\x94\x82 \xe2\x94\x86 (esc)
1129 \xe2\x94\x82 \xe2\x94\x86 (esc)
1130 \xe2\x97\x8b \xe2\x94\x86 changeset: 30:6e11cd4b648f (esc)
1130 \xe2\x97\x8b \xe2\x94\x86 changeset: 30:6e11cd4b648f (esc)
1131 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 28:44ecd0b9ae99 (esc)
1131 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 28:44ecd0b9ae99 (esc)
1132 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x86 parent: 29:cd9bb2be7593 (esc)
1132 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x86 parent: 29:cd9bb2be7593 (esc)
1133 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1133 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1134 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:30 1970 +0000 (esc)
1134 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:30 1970 +0000 (esc)
1135 \xe2\x94\x82 \xe2\x94\x86 summary: (30) expand (esc)
1135 \xe2\x94\x82 \xe2\x94\x86 summary: (30) expand (esc)
1136 \xe2\x94\x82 \xe2\x95\xb1 (esc)
1136 \xe2\x94\x82 \xe2\x95\xb1 (esc)
1137 \xe2\x97\x8b \xe2\x94\x86 changeset: 28:44ecd0b9ae99 (esc)
1137 \xe2\x97\x8b \xe2\x94\x86 changeset: 28:44ecd0b9ae99 (esc)
1138 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
1138 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
1139 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x86 parent: 26:7f25b6c2f0b9 (esc)
1139 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x86 parent: 26:7f25b6c2f0b9 (esc)
1140 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1140 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1141 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:28 1970 +0000 (esc)
1141 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:28 1970 +0000 (esc)
1142 \xe2\x94\x82 \xe2\x94\x86 summary: (28) merge zero known (esc)
1142 \xe2\x94\x82 \xe2\x94\x86 summary: (28) merge zero known (esc)
1143 \xe2\x94\x82 \xe2\x95\xb1 (esc)
1143 \xe2\x94\x82 \xe2\x95\xb1 (esc)
1144 \xe2\x97\x8b \xe2\x94\x86 changeset: 26:7f25b6c2f0b9 (esc)
1144 \xe2\x97\x8b \xe2\x94\x86 changeset: 26:7f25b6c2f0b9 (esc)
1145 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 18:1aa84d96232a (esc)
1145 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 18:1aa84d96232a (esc)
1146 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 parent: 25:91da8ed57247 (esc)
1146 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 parent: 25:91da8ed57247 (esc)
1147 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1147 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1148 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:26 1970 +0000 (esc)
1148 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:26 1970 +0000 (esc)
1149 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 summary: (26) merge one known; far right (esc)
1149 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 summary: (26) merge one known; far right (esc)
1150 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 (esc)
1150 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 (esc)
1151 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x86 changeset: 25:91da8ed57247 (esc)
1151 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x86 changeset: 25:91da8ed57247 (esc)
1152 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x86 parent: 21:d42a756af44d (esc)
1152 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x86 parent: 21:d42a756af44d (esc)
1153 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 parent: 24:a9c19a3d96b7 (esc)
1153 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 parent: 24:a9c19a3d96b7 (esc)
1154 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1154 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1155 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:25 1970 +0000 (esc)
1155 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:25 1970 +0000 (esc)
1156 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 summary: (25) merge one known; far left (esc)
1156 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 summary: (25) merge one known; far left (esc)
1157 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 (esc)
1157 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 (esc)
1158 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x86 changeset: 24:a9c19a3d96b7 (esc)
1158 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x86 changeset: 24:a9c19a3d96b7 (esc)
1159 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 0:e6eb3150255d (esc)
1159 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 0:e6eb3150255d (esc)
1160 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x86 parent: 23:a01cddf0766d (esc)
1160 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x86 parent: 23:a01cddf0766d (esc)
1161 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1161 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1162 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:24 1970 +0000 (esc)
1162 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:24 1970 +0000 (esc)
1163 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 summary: (24) merge one known; immediate right (esc)
1163 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 summary: (24) merge one known; immediate right (esc)
1164 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xb1 (esc)
1164 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xb1 (esc)
1165 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x86 changeset: 23:a01cddf0766d (esc)
1165 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x86 changeset: 23:a01cddf0766d (esc)
1166 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
1166 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
1167 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x86 parent: 22:e0d9cccacb5d (esc)
1167 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x86 parent: 22:e0d9cccacb5d (esc)
1168 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1168 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1169 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:23 1970 +0000 (esc)
1169 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:23 1970 +0000 (esc)
1170 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 summary: (23) merge one known; immediate left (esc)
1170 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 summary: (23) merge one known; immediate left (esc)
1171 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xb1 (esc)
1171 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xb1 (esc)
1172 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x86 changeset: 22:e0d9cccacb5d (esc)
1172 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x86 changeset: 22:e0d9cccacb5d (esc)
1173 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x86\xe2\x95\xb1 parent: 18:1aa84d96232a (esc)
1173 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x86\xe2\x95\xb1 parent: 18:1aa84d96232a (esc)
1174 \xe2\x94\x82 \xe2\x94\x86 parent: 21:d42a756af44d (esc)
1174 \xe2\x94\x82 \xe2\x94\x86 parent: 21:d42a756af44d (esc)
1175 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1175 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
1176 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:22 1970 +0000 (esc)
1176 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:22 1970 +0000 (esc)
1177 \xe2\x94\x82 \xe2\x94\x86 summary: (22) merge two known; one far left, one far right (esc)
1177 \xe2\x94\x82 \xe2\x94\x86 summary: (22) merge two known; one far left, one far right (esc)
1178 \xe2\x94\x82 \xe2\x94\x86 (esc)
1178 \xe2\x94\x82 \xe2\x94\x86 (esc)
1179 \xe2\x94\x82 \xe2\x97\x8b changeset: 21:d42a756af44d (esc)
1179 \xe2\x94\x82 \xe2\x97\x8b changeset: 21:d42a756af44d (esc)
1180 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 19:31ddc2c1573b (esc)
1180 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 19:31ddc2c1573b (esc)
1181 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 20:d30ed6450e32 (esc)
1181 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 20:d30ed6450e32 (esc)
1182 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1182 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1183 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:21 1970 +0000 (esc)
1183 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:21 1970 +0000 (esc)
1184 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (21) expand (esc)
1184 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (21) expand (esc)
1185 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1185 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1186 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b changeset: 20:d30ed6450e32 (esc)
1186 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b changeset: 20:d30ed6450e32 (esc)
1187 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
1187 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
1188 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 parent: 18:1aa84d96232a (esc)
1188 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 parent: 18:1aa84d96232a (esc)
1189 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1189 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1190 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:20 1970 +0000 (esc)
1190 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:20 1970 +0000 (esc)
1191 \xe2\x94\x82 \xe2\x94\x82 summary: (20) merge two known; two far right (esc)
1191 \xe2\x94\x82 \xe2\x94\x82 summary: (20) merge two known; two far right (esc)
1192 \xe2\x94\x82 \xe2\x94\x82 (esc)
1192 \xe2\x94\x82 \xe2\x94\x82 (esc)
1193 \xe2\x94\x82 \xe2\x97\x8b changeset: 19:31ddc2c1573b (esc)
1193 \xe2\x94\x82 \xe2\x97\x8b changeset: 19:31ddc2c1573b (esc)
1194 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 15:1dda3f72782d (esc)
1194 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 15:1dda3f72782d (esc)
1195 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 17:44765d7c06e0 (esc)
1195 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 17:44765d7c06e0 (esc)
1196 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1196 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1197 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:19 1970 +0000 (esc)
1197 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:19 1970 +0000 (esc)
1198 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (19) expand (esc)
1198 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (19) expand (esc)
1199 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1199 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1200 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 18:1aa84d96232a (esc)
1200 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 18:1aa84d96232a (esc)
1201 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
1201 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
1202 \xe2\x95\xa7 \xe2\x94\x82 \xe2\x94\x82 parent: 15:1dda3f72782d (esc)
1202 \xe2\x95\xa7 \xe2\x94\x82 \xe2\x94\x82 parent: 15:1dda3f72782d (esc)
1203 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1203 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1204 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:18 1970 +0000 (esc)
1204 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:18 1970 +0000 (esc)
1205 \xe2\x94\x82 \xe2\x94\x82 summary: (18) merge two known; two far left (esc)
1205 \xe2\x94\x82 \xe2\x94\x82 summary: (18) merge two known; two far left (esc)
1206 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
1206 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
1207 \xe2\x94\x82 \xe2\x97\x8b changeset: 17:44765d7c06e0 (esc)
1207 \xe2\x94\x82 \xe2\x97\x8b changeset: 17:44765d7c06e0 (esc)
1208 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 12:86b91144a6e9 (esc)
1208 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 12:86b91144a6e9 (esc)
1209 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 16:3677d192927d (esc)
1209 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 16:3677d192927d (esc)
1210 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1210 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1211 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:17 1970 +0000 (esc)
1211 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:17 1970 +0000 (esc)
1212 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (17) expand (esc)
1212 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (17) expand (esc)
1213 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1213 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1214 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b changeset: 16:3677d192927d (esc)
1214 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b changeset: 16:3677d192927d (esc)
1215 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 0:e6eb3150255d (esc)
1215 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 0:e6eb3150255d (esc)
1216 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x95\xa7 parent: 1:6db2ef61d156 (esc)
1216 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x95\xa7 parent: 1:6db2ef61d156 (esc)
1217 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1217 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1218 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:16 1970 +0000 (esc)
1218 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:16 1970 +0000 (esc)
1219 \xe2\x94\x82 \xe2\x94\x82 summary: (16) merge two known; one immediate right, one near right (esc)
1219 \xe2\x94\x82 \xe2\x94\x82 summary: (16) merge two known; one immediate right, one near right (esc)
1220 \xe2\x94\x82 \xe2\x94\x82 (esc)
1220 \xe2\x94\x82 \xe2\x94\x82 (esc)
1221 \xe2\x97\x8b \xe2\x94\x82 changeset: 15:1dda3f72782d (esc)
1221 \xe2\x97\x8b \xe2\x94\x82 changeset: 15:1dda3f72782d (esc)
1222 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 13:22d8966a97e3 (esc)
1222 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 13:22d8966a97e3 (esc)
1223 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 14:8eac370358ef (esc)
1223 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 14:8eac370358ef (esc)
1224 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1224 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1225 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:15 1970 +0000 (esc)
1225 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:15 1970 +0000 (esc)
1226 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (15) expand (esc)
1226 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (15) expand (esc)
1227 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1227 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1228 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 14:8eac370358ef (esc)
1228 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 14:8eac370358ef (esc)
1229 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x82 parent: 0:e6eb3150255d (esc)
1229 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x82 parent: 0:e6eb3150255d (esc)
1230 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x82 parent: 12:86b91144a6e9 (esc)
1230 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x82 parent: 12:86b91144a6e9 (esc)
1231 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1231 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1232 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:14 1970 +0000 (esc)
1232 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:14 1970 +0000 (esc)
1233 \xe2\x94\x82 \xe2\x94\x82 summary: (14) merge two known; one immediate right, one far right (esc)
1233 \xe2\x94\x82 \xe2\x94\x82 summary: (14) merge two known; one immediate right, one far right (esc)
1234 \xe2\x94\x82 \xe2\x95\xb1 (esc)
1234 \xe2\x94\x82 \xe2\x95\xb1 (esc)
1235 \xe2\x97\x8b \xe2\x94\x82 changeset: 13:22d8966a97e3 (esc)
1235 \xe2\x97\x8b \xe2\x94\x82 changeset: 13:22d8966a97e3 (esc)
1236 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 9:7010c0af0a35 (esc)
1236 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 9:7010c0af0a35 (esc)
1237 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 11:832d76e6bdf2 (esc)
1237 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 11:832d76e6bdf2 (esc)
1238 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1238 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1239 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:13 1970 +0000 (esc)
1239 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:13 1970 +0000 (esc)
1240 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (13) expand (esc)
1240 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (13) expand (esc)
1241 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1241 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1242 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b changeset: 12:86b91144a6e9 (esc)
1242 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b changeset: 12:86b91144a6e9 (esc)
1243 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
1243 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
1244 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 parent: 9:7010c0af0a35 (esc)
1244 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 parent: 9:7010c0af0a35 (esc)
1245 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1245 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1246 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:12 1970 +0000 (esc)
1246 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:12 1970 +0000 (esc)
1247 \xe2\x94\x82 \xe2\x94\x82 summary: (12) merge two known; one immediate right, one far left (esc)
1247 \xe2\x94\x82 \xe2\x94\x82 summary: (12) merge two known; one immediate right, one far left (esc)
1248 \xe2\x94\x82 \xe2\x94\x82 (esc)
1248 \xe2\x94\x82 \xe2\x94\x82 (esc)
1249 \xe2\x94\x82 \xe2\x97\x8b changeset: 11:832d76e6bdf2 (esc)
1249 \xe2\x94\x82 \xe2\x97\x8b changeset: 11:832d76e6bdf2 (esc)
1250 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 6:b105a072e251 (esc)
1250 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 6:b105a072e251 (esc)
1251 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 10:74c64d036d72 (esc)
1251 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 10:74c64d036d72 (esc)
1252 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1252 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1253 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:11 1970 +0000 (esc)
1253 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:11 1970 +0000 (esc)
1254 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (11) expand (esc)
1254 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (11) expand (esc)
1255 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1255 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1256 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b changeset: 10:74c64d036d72 (esc)
1256 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b changeset: 10:74c64d036d72 (esc)
1257 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 parent: 0:e6eb3150255d (esc)
1257 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 parent: 0:e6eb3150255d (esc)
1258 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 parent: 6:b105a072e251 (esc)
1258 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 parent: 6:b105a072e251 (esc)
1259 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1259 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1260 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:10 1970 +0000 (esc)
1260 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:10 1970 +0000 (esc)
1261 \xe2\x94\x82 \xe2\x94\x82 summary: (10) merge two known; one immediate left, one near right (esc)
1261 \xe2\x94\x82 \xe2\x94\x82 summary: (10) merge two known; one immediate left, one near right (esc)
1262 \xe2\x94\x82 \xe2\x94\x82 (esc)
1262 \xe2\x94\x82 \xe2\x94\x82 (esc)
1263 \xe2\x97\x8b \xe2\x94\x82 changeset: 9:7010c0af0a35 (esc)
1263 \xe2\x97\x8b \xe2\x94\x82 changeset: 9:7010c0af0a35 (esc)
1264 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 7:b632bb1b1224 (esc)
1264 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 7:b632bb1b1224 (esc)
1265 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 8:7a0b11f71937 (esc)
1265 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 8:7a0b11f71937 (esc)
1266 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1266 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1267 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:09 1970 +0000 (esc)
1267 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:09 1970 +0000 (esc)
1268 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (9) expand (esc)
1268 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (9) expand (esc)
1269 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1269 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
1270 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 8:7a0b11f71937 (esc)
1270 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 8:7a0b11f71937 (esc)
1271 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
1271 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
1272 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x82 parent: 7:b632bb1b1224 (esc)
1272 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x82 parent: 7:b632bb1b1224 (esc)
1273 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1273 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1274 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:08 1970 +0000 (esc)
1274 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:08 1970 +0000 (esc)
1275 \xe2\x94\x82 \xe2\x94\x82 summary: (8) merge two known; one immediate left, one far right (esc)
1275 \xe2\x94\x82 \xe2\x94\x82 summary: (8) merge two known; one immediate left, one far right (esc)
1276 \xe2\x94\x82 \xe2\x95\xb1 (esc)
1276 \xe2\x94\x82 \xe2\x95\xb1 (esc)
1277 \xe2\x97\x8b \xe2\x94\x82 changeset: 7:b632bb1b1224 (esc)
1277 \xe2\x97\x8b \xe2\x94\x82 changeset: 7:b632bb1b1224 (esc)
1278 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 2:3d9a33b8d1e1 (esc)
1278 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 2:3d9a33b8d1e1 (esc)
1279 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x82 parent: 5:4409d547b708 (esc)
1279 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x82 parent: 5:4409d547b708 (esc)
1280 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1280 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
1281 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:07 1970 +0000 (esc)
1281 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:07 1970 +0000 (esc)
1282 \xe2\x94\x82 \xe2\x94\x82 summary: (7) expand (esc)
1282 \xe2\x94\x82 \xe2\x94\x82 summary: (7) expand (esc)
1283 \xe2\x94\x82 \xe2\x95\xb1 (esc)
1283 \xe2\x94\x82 \xe2\x95\xb1 (esc)
1284 \xe2\x94\x82 \xe2\x97\x8b changeset: 6:b105a072e251 (esc)
1284 \xe2\x94\x82 \xe2\x97\x8b changeset: 6:b105a072e251 (esc)
1285 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 parent: 2:3d9a33b8d1e1 (esc)
1285 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 parent: 2:3d9a33b8d1e1 (esc)
1286 \xe2\x94\x82 \xe2\x95\xa7 parent: 5:4409d547b708 (esc)
1286 \xe2\x94\x82 \xe2\x95\xa7 parent: 5:4409d547b708 (esc)
1287 \xe2\x94\x82 user: test (esc)
1287 \xe2\x94\x82 user: test (esc)
1288 \xe2\x94\x82 date: Thu Jan 01 00:00:06 1970 +0000 (esc)
1288 \xe2\x94\x82 date: Thu Jan 01 00:00:06 1970 +0000 (esc)
1289 \xe2\x94\x82 summary: (6) merge two known; one immediate left, one far left (esc)
1289 \xe2\x94\x82 summary: (6) merge two known; one immediate left, one far left (esc)
1290 \xe2\x94\x82 (esc)
1290 \xe2\x94\x82 (esc)
1291 \xe2\x97\x8b changeset: 5:4409d547b708 (esc)
1291 \xe2\x97\x8b changeset: 5:4409d547b708 (esc)
1292 \xe2\x94\x82\xe2\x95\xb2 parent: 3:27eef8ed80b4 (esc)
1292 \xe2\x94\x82\xe2\x95\xb2 parent: 3:27eef8ed80b4 (esc)
1293 \xe2\x94\x82 \xe2\x95\xa7 parent: 4:26a8bac39d9f (esc)
1293 \xe2\x94\x82 \xe2\x95\xa7 parent: 4:26a8bac39d9f (esc)
1294 \xe2\x94\x82 user: test (esc)
1294 \xe2\x94\x82 user: test (esc)
1295 \xe2\x94\x82 date: Thu Jan 01 00:00:05 1970 +0000 (esc)
1295 \xe2\x94\x82 date: Thu Jan 01 00:00:05 1970 +0000 (esc)
1296 \xe2\x94\x82 summary: (5) expand (esc)
1296 \xe2\x94\x82 summary: (5) expand (esc)
1297 \xe2\x94\x82 (esc)
1297 \xe2\x94\x82 (esc)
1298 \xe2\x97\x8b changeset: 4:26a8bac39d9f (esc)
1298 \xe2\x97\x8b changeset: 4:26a8bac39d9f (esc)
1299 \xe2\x94\x82\xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
1299 \xe2\x94\x82\xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
1300 \xe2\x95\xa7 \xe2\x95\xa7 parent: 3:27eef8ed80b4 (esc)
1300 \xe2\x95\xa7 \xe2\x95\xa7 parent: 3:27eef8ed80b4 (esc)
1301 user: test
1301 user: test
1302 date: Thu Jan 01 00:00:04 1970 +0000
1302 date: Thu Jan 01 00:00:04 1970 +0000
1303 summary: (4) merge two known; one immediate left, one immediate right
1303 summary: (4) merge two known; one immediate left, one immediate right
1304
1304
1305
1305
1306 Empty revision range - display nothing:
1306 Empty revision range - display nothing:
1307 $ hg log -G -r 1..0
1307 $ hg log -G -r 1..0
1308
1308
1309 $ cd ..
1309 $ cd ..
1310
1310
1311 #if no-outer-repo
1311 #if no-outer-repo
1312
1312
1313 From outer space:
1313 From outer space:
1314 $ hg log -G -l1 repo
1314 $ hg log -G -l1 repo
1315 \xe2\x97\x8d changeset: 34:fea3ac5810e0 (esc)
1315 \xe2\x97\x8d changeset: 34:fea3ac5810e0 (esc)
1316 \xe2\x94\x82 tag: tip (esc)
1316 \xe2\x94\x82 tag: tip (esc)
1317 \xe2\x95\xa7 parent: 32:d06dffa21a31 (esc)
1317 \xe2\x95\xa7 parent: 32:d06dffa21a31 (esc)
1318 user: test
1318 user: test
1319 date: Thu Jan 01 00:00:34 1970 +0000
1319 date: Thu Jan 01 00:00:34 1970 +0000
1320 summary: (34) head
1320 summary: (34) head
1321
1321
1322 $ hg log -G -l1 repo/a
1322 $ hg log -G -l1 repo/a
1323 \xe2\x97\x8d changeset: 34:fea3ac5810e0 (esc)
1323 \xe2\x97\x8d changeset: 34:fea3ac5810e0 (esc)
1324 \xe2\x94\x82 tag: tip (esc)
1324 \xe2\x94\x82 tag: tip (esc)
1325 \xe2\x95\xa7 parent: 32:d06dffa21a31 (esc)
1325 \xe2\x95\xa7 parent: 32:d06dffa21a31 (esc)
1326 user: test
1326 user: test
1327 date: Thu Jan 01 00:00:34 1970 +0000
1327 date: Thu Jan 01 00:00:34 1970 +0000
1328 summary: (34) head
1328 summary: (34) head
1329
1329
1330 $ hg log -G -l1 repo/missing
1330 $ hg log -G -l1 repo/missing
1331
1331
1332 #endif
1332 #endif
1333
1333
1334 File log with revs != cset revs:
1334 File log with revs != cset revs:
1335 $ hg init flog
1335 $ hg init flog
1336 $ cd flog
1336 $ cd flog
1337 $ echo one >one
1337 $ echo one >one
1338 $ hg add one
1338 $ hg add one
1339 $ hg commit -mone
1339 $ hg commit -mone
1340 $ echo two >two
1340 $ echo two >two
1341 $ hg add two
1341 $ hg add two
1342 $ hg commit -mtwo
1342 $ hg commit -mtwo
1343 $ echo more >two
1343 $ echo more >two
1344 $ hg commit -mmore
1344 $ hg commit -mmore
1345 $ hg log -G two
1345 $ hg log -G two
1346 \xe2\x97\x8d changeset: 2:12c28321755b (esc)
1346 \xe2\x97\x8d changeset: 2:12c28321755b (esc)
1347 \xe2\x94\x82 tag: tip (esc)
1347 \xe2\x94\x82 tag: tip (esc)
1348 \xe2\x94\x82 user: test (esc)
1348 \xe2\x94\x82 user: test (esc)
1349 \xe2\x94\x82 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
1349 \xe2\x94\x82 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
1350 \xe2\x94\x82 summary: more (esc)
1350 \xe2\x94\x82 summary: more (esc)
1351 \xe2\x94\x82 (esc)
1351 \xe2\x94\x82 (esc)
1352 \xe2\x97\x8b changeset: 1:5ac72c0599bf (esc)
1352 \xe2\x97\x8b changeset: 1:5ac72c0599bf (esc)
1353 \xe2\x94\x82 user: test (esc)
1353 \xe2\x94\x82 user: test (esc)
1354 \xe2\x95\xa7 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
1354 \xe2\x95\xa7 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
1355 summary: two
1355 summary: two
1356
1356
1357
1357
1358 Issue1896: File log with explicit style
1358 Issue1896: File log with explicit style
1359 $ hg log -G --style=default one
1359 $ hg log -G --style=default one
1360 \xe2\x97\x8b changeset: 0:3d578b4a1f53 (esc)
1360 \xe2\x97\x8b changeset: 0:3d578b4a1f53 (esc)
1361 user: test
1361 user: test
1362 date: Thu Jan 01 00:00:00 1970 +0000
1362 date: Thu Jan 01 00:00:00 1970 +0000
1363 summary: one
1363 summary: one
1364
1364
1365 Issue2395: glog --style header and footer
1365 Issue2395: glog --style header and footer
1366 $ hg log -G --style=xml one
1366 $ hg log -G --style=xml one
1367 <?xml version="1.0"?>
1367 <?xml version="1.0"?>
1368 <log>
1368 <log>
1369 \xe2\x97\x8b <logentry revision="0" node="3d578b4a1f537d5fcf7301bfa9c0b97adfaa6fb1"> (esc)
1369 \xe2\x97\x8b <logentry revision="0" node="3d578b4a1f537d5fcf7301bfa9c0b97adfaa6fb1"> (esc)
1370 <author email="test">test</author>
1370 <author email="test">test</author>
1371 <date>1970-01-01T00:00:00+00:00</date>
1371 <date>1970-01-01T00:00:00+00:00</date>
1372 <msg xml:space="preserve">one</msg>
1372 <msg xml:space="preserve">one</msg>
1373 </logentry>
1373 </logentry>
1374 </log>
1374 </log>
1375
1375
1376 $ cd ..
1376 $ cd ..
1377
1377
1378 Incoming and outgoing:
1378 Incoming and outgoing:
1379
1379
1380 $ hg clone -U -r31 repo repo2
1380 $ hg clone -U -r31 repo repo2
1381 adding changesets
1381 adding changesets
1382 adding manifests
1382 adding manifests
1383 adding file changes
1383 adding file changes
1384 added 31 changesets with 31 changes to 1 files
1384 added 31 changesets with 31 changes to 1 files
1385 new changesets e6eb3150255d:621d83e11f67
1385 new changesets e6eb3150255d:621d83e11f67
1386 $ cd repo2
1386 $ cd repo2
1387
1387
1388 $ hg incoming --graph ../repo
1388 $ hg incoming --graph ../repo
1389 comparing with ../repo
1389 comparing with ../repo
1390 searching for changes
1390 searching for changes
1391 \xe2\x97\x8b changeset: 34:fea3ac5810e0 (esc)
1391 \xe2\x97\x8b changeset: 34:fea3ac5810e0 (esc)
1392 \xe2\x94\x82 tag: tip (esc)
1392 \xe2\x94\x82 tag: tip (esc)
1393 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
1393 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
1394 \xe2\x94\x82 user: test (esc)
1394 \xe2\x94\x82 user: test (esc)
1395 \xe2\x94\x82 date: Thu Jan 01 00:00:34 1970 +0000 (esc)
1395 \xe2\x94\x82 date: Thu Jan 01 00:00:34 1970 +0000 (esc)
1396 \xe2\x94\x82 summary: (34) head (esc)
1396 \xe2\x94\x82 summary: (34) head (esc)
1397 \xe2\x94\x82 (esc)
1397 \xe2\x94\x82 (esc)
1398 \xe2\x94\x82 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
1398 \xe2\x94\x82 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
1399 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
1399 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
1400 \xe2\x94\x82 user: test (esc)
1400 \xe2\x94\x82 user: test (esc)
1401 \xe2\x94\x82 date: Thu Jan 01 00:00:33 1970 +0000 (esc)
1401 \xe2\x94\x82 date: Thu Jan 01 00:00:33 1970 +0000 (esc)
1402 \xe2\x94\x82 summary: (33) head (esc)
1402 \xe2\x94\x82 summary: (33) head (esc)
1403 \xe2\x94\x82 (esc)
1403 \xe2\x94\x82 (esc)
1404 \xe2\x97\x8b changeset: 32:d06dffa21a31 (esc)
1404 \xe2\x97\x8b changeset: 32:d06dffa21a31 (esc)
1405 \xe2\x94\x82 parent: 27:886ed638191b (esc)
1405 \xe2\x94\x82 parent: 27:886ed638191b (esc)
1406 \xe2\x94\x82 parent: 31:621d83e11f67 (esc)
1406 \xe2\x94\x82 parent: 31:621d83e11f67 (esc)
1407 \xe2\x94\x82 user: test (esc)
1407 \xe2\x94\x82 user: test (esc)
1408 \xe2\x94\x82 date: Thu Jan 01 00:00:32 1970 +0000 (esc)
1408 \xe2\x94\x82 date: Thu Jan 01 00:00:32 1970 +0000 (esc)
1409 \xe2\x94\x82 summary: (32) expand (esc)
1409 \xe2\x94\x82 summary: (32) expand (esc)
1410 \xe2\x94\x82 (esc)
1410 \xe2\x94\x82 (esc)
1411 \xe2\x97\x8b changeset: 27:886ed638191b (esc)
1411 \xe2\x97\x8b changeset: 27:886ed638191b (esc)
1412 parent: 21:d42a756af44d
1412 parent: 21:d42a756af44d
1413 user: test
1413 user: test
1414 date: Thu Jan 01 00:00:27 1970 +0000
1414 date: Thu Jan 01 00:00:27 1970 +0000
1415 summary: (27) collapse
1415 summary: (27) collapse
1416
1416
1417 $ cd ..
1417 $ cd ..
1418
1418
1419 $ hg -R repo outgoing --graph repo2
1419 $ hg -R repo outgoing --graph repo2
1420 comparing with repo2
1420 comparing with repo2
1421 searching for changes
1421 searching for changes
1422 \xe2\x97\x8d changeset: 34:fea3ac5810e0 (esc)
1422 \xe2\x97\x8d changeset: 34:fea3ac5810e0 (esc)
1423 \xe2\x94\x82 tag: tip (esc)
1423 \xe2\x94\x82 tag: tip (esc)
1424 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
1424 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
1425 \xe2\x94\x82 user: test (esc)
1425 \xe2\x94\x82 user: test (esc)
1426 \xe2\x94\x82 date: Thu Jan 01 00:00:34 1970 +0000 (esc)
1426 \xe2\x94\x82 date: Thu Jan 01 00:00:34 1970 +0000 (esc)
1427 \xe2\x94\x82 summary: (34) head (esc)
1427 \xe2\x94\x82 summary: (34) head (esc)
1428 \xe2\x94\x82 (esc)
1428 \xe2\x94\x82 (esc)
1429 \xe2\x94\x82 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
1429 \xe2\x94\x82 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
1430 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
1430 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
1431 \xe2\x94\x82 user: test (esc)
1431 \xe2\x94\x82 user: test (esc)
1432 \xe2\x94\x82 date: Thu Jan 01 00:00:33 1970 +0000 (esc)
1432 \xe2\x94\x82 date: Thu Jan 01 00:00:33 1970 +0000 (esc)
1433 \xe2\x94\x82 summary: (33) head (esc)
1433 \xe2\x94\x82 summary: (33) head (esc)
1434 \xe2\x94\x82 (esc)
1434 \xe2\x94\x82 (esc)
1435 \xe2\x97\x8b changeset: 32:d06dffa21a31 (esc)
1435 \xe2\x97\x8b changeset: 32:d06dffa21a31 (esc)
1436 \xe2\x94\x82 parent: 27:886ed638191b (esc)
1436 \xe2\x94\x82 parent: 27:886ed638191b (esc)
1437 \xe2\x94\x82 parent: 31:621d83e11f67 (esc)
1437 \xe2\x94\x82 parent: 31:621d83e11f67 (esc)
1438 \xe2\x94\x82 user: test (esc)
1438 \xe2\x94\x82 user: test (esc)
1439 \xe2\x94\x82 date: Thu Jan 01 00:00:32 1970 +0000 (esc)
1439 \xe2\x94\x82 date: Thu Jan 01 00:00:32 1970 +0000 (esc)
1440 \xe2\x94\x82 summary: (32) expand (esc)
1440 \xe2\x94\x82 summary: (32) expand (esc)
1441 \xe2\x94\x82 (esc)
1441 \xe2\x94\x82 (esc)
1442 \xe2\x97\x8b changeset: 27:886ed638191b (esc)
1442 \xe2\x97\x8b changeset: 27:886ed638191b (esc)
1443 parent: 21:d42a756af44d
1443 parent: 21:d42a756af44d
1444 user: test
1444 user: test
1445 date: Thu Jan 01 00:00:27 1970 +0000
1445 date: Thu Jan 01 00:00:27 1970 +0000
1446 summary: (27) collapse
1446 summary: (27) collapse
1447
1447
1448
1448
1449 File + limit with revs != cset revs:
1449 File + limit with revs != cset revs:
1450 $ cd repo
1450 $ cd repo
1451 $ touch b
1451 $ touch b
1452 $ hg ci -Aqm0
1452 $ hg ci -Aqm0
1453 $ hg log -G -l2 a
1453 $ hg log -G -l2 a
1454 \xe2\x97\x8b changeset: 34:fea3ac5810e0 (esc)
1454 \xe2\x97\x8b changeset: 34:fea3ac5810e0 (esc)
1455 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
1455 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
1456 \xe2\x95\xa7 user: test (esc)
1456 \xe2\x95\xa7 user: test (esc)
1457 date: Thu Jan 01 00:00:34 1970 +0000
1457 date: Thu Jan 01 00:00:34 1970 +0000
1458 summary: (34) head
1458 summary: (34) head
1459
1459
1460 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
1460 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
1461 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
1461 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
1462 \xe2\x95\xa7 user: test (esc)
1462 \xe2\x95\xa7 user: test (esc)
1463 date: Thu Jan 01 00:00:33 1970 +0000
1463 date: Thu Jan 01 00:00:33 1970 +0000
1464 summary: (33) head
1464 summary: (33) head
1465
1465
1466
1466
1467 File + limit + -ra:b, (b - a) < limit:
1467 File + limit + -ra:b, (b - a) < limit:
1468 $ hg log -G -l3000 -r32:tip a
1468 $ hg log -G -l3000 -r32:tip a
1469 \xe2\x97\x8b changeset: 34:fea3ac5810e0 (esc)
1469 \xe2\x97\x8b changeset: 34:fea3ac5810e0 (esc)
1470 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
1470 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
1471 \xe2\x94\x82 user: test (esc)
1471 \xe2\x94\x82 user: test (esc)
1472 \xe2\x94\x82 date: Thu Jan 01 00:00:34 1970 +0000 (esc)
1472 \xe2\x94\x82 date: Thu Jan 01 00:00:34 1970 +0000 (esc)
1473 \xe2\x94\x82 summary: (34) head (esc)
1473 \xe2\x94\x82 summary: (34) head (esc)
1474 \xe2\x94\x82 (esc)
1474 \xe2\x94\x82 (esc)
1475 \xe2\x94\x82 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
1475 \xe2\x94\x82 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
1476 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
1476 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
1477 \xe2\x94\x82 \xe2\x95\xa7 user: test (esc)
1477 \xe2\x94\x82 \xe2\x95\xa7 user: test (esc)
1478 \xe2\x94\x82 date: Thu Jan 01 00:00:33 1970 +0000 (esc)
1478 \xe2\x94\x82 date: Thu Jan 01 00:00:33 1970 +0000 (esc)
1479 \xe2\x94\x82 summary: (33) head (esc)
1479 \xe2\x94\x82 summary: (33) head (esc)
1480 \xe2\x94\x82 (esc)
1480 \xe2\x94\x82 (esc)
1481 \xe2\x97\x8b changeset: 32:d06dffa21a31 (esc)
1481 \xe2\x97\x8b changeset: 32:d06dffa21a31 (esc)
1482 \xe2\x94\x82\xe2\x95\xb2 parent: 27:886ed638191b (esc)
1482 \xe2\x94\x82\xe2\x95\xb2 parent: 27:886ed638191b (esc)
1483 \xe2\x95\xa7 \xe2\x95\xa7 parent: 31:621d83e11f67 (esc)
1483 \xe2\x95\xa7 \xe2\x95\xa7 parent: 31:621d83e11f67 (esc)
1484 user: test
1484 user: test
1485 date: Thu Jan 01 00:00:32 1970 +0000
1485 date: Thu Jan 01 00:00:32 1970 +0000
1486 summary: (32) expand
1486 summary: (32) expand
1487
1487
1488
1488
1489 Point out a common and an uncommon unshown parent
1489 Point out a common and an uncommon unshown parent
1490
1490
1491 $ hg log -G -r 'rev(8) or rev(9)'
1491 $ hg log -G -r 'rev(8) or rev(9)'
1492 \xe2\x97\x8b changeset: 9:7010c0af0a35 (esc)
1492 \xe2\x97\x8b changeset: 9:7010c0af0a35 (esc)
1493 \xe2\x94\x82\xe2\x95\xb2 parent: 7:b632bb1b1224 (esc)
1493 \xe2\x94\x82\xe2\x95\xb2 parent: 7:b632bb1b1224 (esc)
1494 \xe2\x94\x82 \xe2\x95\xa7 parent: 8:7a0b11f71937 (esc)
1494 \xe2\x94\x82 \xe2\x95\xa7 parent: 8:7a0b11f71937 (esc)
1495 \xe2\x94\x82 user: test (esc)
1495 \xe2\x94\x82 user: test (esc)
1496 \xe2\x94\x82 date: Thu Jan 01 00:00:09 1970 +0000 (esc)
1496 \xe2\x94\x82 date: Thu Jan 01 00:00:09 1970 +0000 (esc)
1497 \xe2\x94\x82 summary: (9) expand (esc)
1497 \xe2\x94\x82 summary: (9) expand (esc)
1498 \xe2\x94\x82 (esc)
1498 \xe2\x94\x82 (esc)
1499 \xe2\x97\x8b changeset: 8:7a0b11f71937 (esc)
1499 \xe2\x97\x8b changeset: 8:7a0b11f71937 (esc)
1500 \xe2\x94\x82\xe2\x95\xb2 parent: 0:e6eb3150255d (esc)
1500 \xe2\x94\x82\xe2\x95\xb2 parent: 0:e6eb3150255d (esc)
1501 \xe2\x95\xa7 \xe2\x95\xa7 parent: 7:b632bb1b1224 (esc)
1501 \xe2\x95\xa7 \xe2\x95\xa7 parent: 7:b632bb1b1224 (esc)
1502 user: test
1502 user: test
1503 date: Thu Jan 01 00:00:08 1970 +0000
1503 date: Thu Jan 01 00:00:08 1970 +0000
1504 summary: (8) merge two known; one immediate left, one far right
1504 summary: (8) merge two known; one immediate left, one far right
1505
1505
1506
1506
1507 File + limit + -ra:b, b < tip:
1507 File + limit + -ra:b, b < tip:
1508
1508
1509 $ hg log -G -l1 -r32:34 a
1509 $ hg log -G -l1 -r32:34 a
1510 \xe2\x97\x8b changeset: 34:fea3ac5810e0 (esc)
1510 \xe2\x97\x8b changeset: 34:fea3ac5810e0 (esc)
1511 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
1511 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
1512 \xe2\x95\xa7 user: test (esc)
1512 \xe2\x95\xa7 user: test (esc)
1513 date: Thu Jan 01 00:00:34 1970 +0000
1513 date: Thu Jan 01 00:00:34 1970 +0000
1514 summary: (34) head
1514 summary: (34) head
1515
1515
1516
1516
1517 file(File) + limit + -ra:b, b < tip:
1517 file(File) + limit + -ra:b, b < tip:
1518
1518
1519 $ hg log -G -l1 -r32:34 -r 'file("a")'
1519 $ hg log -G -l1 -r32:34 -r 'file("a")'
1520 \xe2\x97\x8b changeset: 34:fea3ac5810e0 (esc)
1520 \xe2\x97\x8b changeset: 34:fea3ac5810e0 (esc)
1521 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
1521 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
1522 \xe2\x95\xa7 user: test (esc)
1522 \xe2\x95\xa7 user: test (esc)
1523 date: Thu Jan 01 00:00:34 1970 +0000
1523 date: Thu Jan 01 00:00:34 1970 +0000
1524 summary: (34) head
1524 summary: (34) head
1525
1525
1526
1526
1527 limit(file(File) and a::b), b < tip:
1527 limit(file(File) and a::b), b < tip:
1528
1528
1529 $ hg log -G -r 'limit(file("a") and 32::34, 1)'
1529 $ hg log -G -r 'limit(file("a") and 32::34, 1)'
1530 \xe2\x97\x8b changeset: 32:d06dffa21a31 (esc)
1530 \xe2\x97\x8b changeset: 32:d06dffa21a31 (esc)
1531 \xe2\x94\x82\xe2\x95\xb2 parent: 27:886ed638191b (esc)
1531 \xe2\x94\x82\xe2\x95\xb2 parent: 27:886ed638191b (esc)
1532 \xe2\x95\xa7 \xe2\x95\xa7 parent: 31:621d83e11f67 (esc)
1532 \xe2\x95\xa7 \xe2\x95\xa7 parent: 31:621d83e11f67 (esc)
1533 user: test
1533 user: test
1534 date: Thu Jan 01 00:00:32 1970 +0000
1534 date: Thu Jan 01 00:00:32 1970 +0000
1535 summary: (32) expand
1535 summary: (32) expand
1536
1536
1537
1537
1538 File + limit + -ra:b, b < tip:
1538 File + limit + -ra:b, b < tip:
1539
1539
1540 $ hg log -G -r 'limit(file("a") and 34::32, 1)'
1540 $ hg log -G -r 'limit(file("a") and 34::32, 1)'
1541
1541
1542 File + limit + -ra:b, b < tip, (b - a) < limit:
1542 File + limit + -ra:b, b < tip, (b - a) < limit:
1543
1543
1544 $ hg log -G -l10 -r33:34 a
1544 $ hg log -G -l10 -r33:34 a
1545 \xe2\x97\x8b changeset: 34:fea3ac5810e0 (esc)
1545 \xe2\x97\x8b changeset: 34:fea3ac5810e0 (esc)
1546 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
1546 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
1547 \xe2\x95\xa7 user: test (esc)
1547 \xe2\x95\xa7 user: test (esc)
1548 date: Thu Jan 01 00:00:34 1970 +0000
1548 date: Thu Jan 01 00:00:34 1970 +0000
1549 summary: (34) head
1549 summary: (34) head
1550
1550
1551 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
1551 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
1552 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
1552 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
1553 \xe2\x95\xa7 user: test (esc)
1553 \xe2\x95\xa7 user: test (esc)
1554 date: Thu Jan 01 00:00:33 1970 +0000
1554 date: Thu Jan 01 00:00:33 1970 +0000
1555 summary: (33) head
1555 summary: (33) head
1556
1556
1557
1557
1558 Do not crash or produce strange graphs if history is buggy
1558 Do not crash or produce strange graphs if history is buggy
1559
1559
1560 $ hg branch branch
1560 $ hg branch branch
1561 marked working directory as branch branch
1561 marked working directory as branch branch
1562 (branches are permanent and global, did you want a bookmark?)
1562 (branches are permanent and global, did you want a bookmark?)
1563 $ commit 36 "buggy merge: identical parents" 35 35
1563 $ commit 36 "buggy merge: identical parents" 35 35
1564 $ hg log -G -l5
1564 $ hg log -G -l5
1565 \xe2\x97\x8d changeset: 36:08a19a744424 (esc)
1565 \xe2\x97\x8d changeset: 36:08a19a744424 (esc)
1566 \xe2\x94\x82 branch: branch (esc)
1566 \xe2\x94\x82 branch: branch (esc)
1567 \xe2\x94\x82 tag: tip (esc)
1567 \xe2\x94\x82 tag: tip (esc)
1568 \xe2\x94\x82 parent: 35:9159c3644c5e (esc)
1568 \xe2\x94\x82 parent: 35:9159c3644c5e (esc)
1569 \xe2\x94\x82 parent: 35:9159c3644c5e (esc)
1569 \xe2\x94\x82 parent: 35:9159c3644c5e (esc)
1570 \xe2\x94\x82 user: test (esc)
1570 \xe2\x94\x82 user: test (esc)
1571 \xe2\x94\x82 date: Thu Jan 01 00:00:36 1970 +0000 (esc)
1571 \xe2\x94\x82 date: Thu Jan 01 00:00:36 1970 +0000 (esc)
1572 \xe2\x94\x82 summary: (36) buggy merge: identical parents (esc)
1572 \xe2\x94\x82 summary: (36) buggy merge: identical parents (esc)
1573 \xe2\x94\x82 (esc)
1573 \xe2\x94\x82 (esc)
1574 \xe2\x97\x8b changeset: 35:9159c3644c5e (esc)
1574 \xe2\x97\x8b changeset: 35:9159c3644c5e (esc)
1575 \xe2\x94\x82 user: test (esc)
1575 \xe2\x94\x82 user: test (esc)
1576 \xe2\x94\x82 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
1576 \xe2\x94\x82 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
1577 \xe2\x94\x82 summary: 0 (esc)
1577 \xe2\x94\x82 summary: 0 (esc)
1578 \xe2\x94\x82 (esc)
1578 \xe2\x94\x82 (esc)
1579 \xe2\x97\x8b changeset: 34:fea3ac5810e0 (esc)
1579 \xe2\x97\x8b changeset: 34:fea3ac5810e0 (esc)
1580 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
1580 \xe2\x94\x82 parent: 32:d06dffa21a31 (esc)
1581 \xe2\x94\x82 user: test (esc)
1581 \xe2\x94\x82 user: test (esc)
1582 \xe2\x94\x82 date: Thu Jan 01 00:00:34 1970 +0000 (esc)
1582 \xe2\x94\x82 date: Thu Jan 01 00:00:34 1970 +0000 (esc)
1583 \xe2\x94\x82 summary: (34) head (esc)
1583 \xe2\x94\x82 summary: (34) head (esc)
1584 \xe2\x94\x82 (esc)
1584 \xe2\x94\x82 (esc)
1585 \xe2\x94\x82 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
1585 \xe2\x94\x82 \xe2\x97\x8b changeset: 33:68608f5145f9 (esc)
1586 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
1586 \xe2\x94\x82 \xe2\x94\x82 parent: 18:1aa84d96232a (esc)
1587 \xe2\x94\x82 \xe2\x95\xa7 user: test (esc)
1587 \xe2\x94\x82 \xe2\x95\xa7 user: test (esc)
1588 \xe2\x94\x82 date: Thu Jan 01 00:00:33 1970 +0000 (esc)
1588 \xe2\x94\x82 date: Thu Jan 01 00:00:33 1970 +0000 (esc)
1589 \xe2\x94\x82 summary: (33) head (esc)
1589 \xe2\x94\x82 summary: (33) head (esc)
1590 \xe2\x94\x82 (esc)
1590 \xe2\x94\x82 (esc)
1591 \xe2\x97\x8b changeset: 32:d06dffa21a31 (esc)
1591 \xe2\x97\x8b changeset: 32:d06dffa21a31 (esc)
1592 \xe2\x94\x82\xe2\x95\xb2 parent: 27:886ed638191b (esc)
1592 \xe2\x94\x82\xe2\x95\xb2 parent: 27:886ed638191b (esc)
1593 \xe2\x95\xa7 \xe2\x95\xa7 parent: 31:621d83e11f67 (esc)
1593 \xe2\x95\xa7 \xe2\x95\xa7 parent: 31:621d83e11f67 (esc)
1594 user: test
1594 user: test
1595 date: Thu Jan 01 00:00:32 1970 +0000
1595 date: Thu Jan 01 00:00:32 1970 +0000
1596 summary: (32) expand
1596 summary: (32) expand
1597
1597
1598
1598
1599 Test log -G options
1599 Test log -G options
1600
1600
1601 $ testlog() {
1601 $ testlog() {
1602 > hg log -G --print-revset "$@"
1602 > hg log -G --print-revset "$@"
1603 > hg log --template 'nodetag {rev}\n' "$@" | grep nodetag \
1603 > hg log --template 'nodetag {rev}\n' "$@" | grep nodetag \
1604 > | sed 's/.*nodetag/nodetag/' > log.nodes
1604 > | sed 's/.*nodetag/nodetag/' > log.nodes
1605 > hg log -G --template 'nodetag {rev}\n' "$@" | grep nodetag \
1605 > hg log -G --template 'nodetag {rev}\n' "$@" | grep nodetag \
1606 > | sed 's/.*nodetag/nodetag/' > glog.nodes
1606 > | sed 's/.*nodetag/nodetag/' > glog.nodes
1607 > (cmp log.nodes glog.nodes || diff -u log.nodes glog.nodes) \
1607 > (cmp log.nodes glog.nodes || diff -u log.nodes glog.nodes) \
1608 > | grep '^[-+@ ]' || :
1608 > | grep '^[-+@ ]' || :
1609 > }
1609 > }
1610
1610
1611 glog always reorders nodes which explains the difference with log
1611 glog always reorders nodes which explains the difference with log
1612
1612
1613 $ testlog -r 27 -r 25 -r 21 -r 34 -r 32 -r 31
1613 $ testlog -r 27 -r 25 -r 21 -r 34 -r 32 -r 31
1614 ['27', '25', '21', '34', '32', '31']
1614 ['27', '25', '21', '34', '32', '31']
1615 []
1615 []
1616 <baseset- [21, 25, 27, 31, 32, 34]>
1616 <baseset- [21, 25, 27, 31, 32, 34]>
1617 --- log.nodes * (glob)
1617 --- log.nodes * (glob)
1618 +++ glog.nodes * (glob)
1618 +++ glog.nodes * (glob)
1619 @@ -1,6 +1,6 @@
1619 @@ -1,6 +1,6 @@
1620 -nodetag 27
1620 -nodetag 27
1621 -nodetag 25
1621 -nodetag 25
1622 -nodetag 21
1622 -nodetag 21
1623 nodetag 34
1623 nodetag 34
1624 nodetag 32
1624 nodetag 32
1625 nodetag 31
1625 nodetag 31
1626 +nodetag 27
1626 +nodetag 27
1627 +nodetag 25
1627 +nodetag 25
1628 +nodetag 21
1628 +nodetag 21
1629 $ testlog -u test -u not-a-user
1629 $ testlog -u test -u not-a-user
1630 []
1630 []
1631 (or
1631 (or
1632 (list
1632 (list
1633 (func
1633 (func
1634 (symbol 'user')
1634 (symbol 'user')
1635 (string 'test'))
1635 (string 'test'))
1636 (func
1636 (func
1637 (symbol 'user')
1637 (symbol 'user')
1638 (string 'not-a-user'))))
1638 (string 'not-a-user'))))
1639 <filteredset
1639 <filteredset
1640 <spanset- 0:37>,
1640 <spanset- 0:37>,
1641 <addset
1641 <addset
1642 <filteredset
1642 <filteredset
1643 <fullreposet+ 0:37>,
1643 <fullreposet+ 0:37>,
1644 <user 'test'>>,
1644 <user 'test'>>,
1645 <filteredset
1645 <filteredset
1646 <fullreposet+ 0:37>,
1646 <fullreposet+ 0:37>,
1647 <user 'not-a-user'>>>>
1647 <user 'not-a-user'>>>>
1648 $ testlog -b not-a-branch
1648 $ testlog -b not-a-branch
1649 abort: unknown revision 'not-a-branch'!
1649 abort: unknown revision 'not-a-branch'!
1650 abort: unknown revision 'not-a-branch'!
1650 abort: unknown revision 'not-a-branch'!
1651 abort: unknown revision 'not-a-branch'!
1651 abort: unknown revision 'not-a-branch'!
1652 $ testlog -b 35 -b 36 --only-branch branch
1652 $ testlog -b 35 -b 36 --only-branch branch
1653 []
1653 []
1654 (or
1654 (or
1655 (list
1655 (list
1656 (func
1656 (func
1657 (symbol 'branch')
1657 (symbol 'branch')
1658 (string 'default'))
1658 (string 'default'))
1659 (or
1659 (or
1660 (list
1660 (list
1661 (func
1661 (func
1662 (symbol 'branch')
1662 (symbol 'branch')
1663 (string 'branch'))
1663 (string 'branch'))
1664 (func
1664 (func
1665 (symbol 'branch')
1665 (symbol 'branch')
1666 (string 'branch'))))))
1666 (string 'branch'))))))
1667 <filteredset
1667 <filteredset
1668 <spanset- 0:37>,
1668 <spanset- 0:37>,
1669 <addset
1669 <addset
1670 <filteredset
1670 <filteredset
1671 <fullreposet+ 0:37>,
1671 <fullreposet+ 0:37>,
1672 <branch 'default'>>,
1672 <branch 'default'>>,
1673 <addset
1673 <addset
1674 <filteredset
1674 <filteredset
1675 <fullreposet+ 0:37>,
1675 <fullreposet+ 0:37>,
1676 <branch 'branch'>>,
1676 <branch 'branch'>>,
1677 <filteredset
1677 <filteredset
1678 <fullreposet+ 0:37>,
1678 <fullreposet+ 0:37>,
1679 <branch 'branch'>>>>>
1679 <branch 'branch'>>>>>
1680 $ testlog -k expand -k merge
1680 $ testlog -k expand -k merge
1681 []
1681 []
1682 (or
1682 (or
1683 (list
1683 (list
1684 (func
1684 (func
1685 (symbol 'keyword')
1685 (symbol 'keyword')
1686 (string 'expand'))
1686 (string 'expand'))
1687 (func
1687 (func
1688 (symbol 'keyword')
1688 (symbol 'keyword')
1689 (string 'merge'))))
1689 (string 'merge'))))
1690 <filteredset
1690 <filteredset
1691 <spanset- 0:37>,
1691 <spanset- 0:37>,
1692 <addset
1692 <addset
1693 <filteredset
1693 <filteredset
1694 <fullreposet+ 0:37>,
1694 <fullreposet+ 0:37>,
1695 <keyword 'expand'>>,
1695 <keyword 'expand'>>,
1696 <filteredset
1696 <filteredset
1697 <fullreposet+ 0:37>,
1697 <fullreposet+ 0:37>,
1698 <keyword 'merge'>>>>
1698 <keyword 'merge'>>>>
1699 $ testlog --only-merges
1699 $ testlog --only-merges
1700 []
1700 []
1701 (func
1701 (func
1702 (symbol 'merge')
1702 (symbol 'merge')
1703 None)
1703 None)
1704 <filteredset
1704 <filteredset
1705 <spanset- 0:37>,
1705 <spanset- 0:37>,
1706 <merge>>
1706 <merge>>
1707 $ testlog --no-merges
1707 $ testlog --no-merges
1708 []
1708 []
1709 (not
1709 (not
1710 (func
1710 (func
1711 (symbol 'merge')
1711 (symbol 'merge')
1712 None))
1712 None))
1713 <filteredset
1713 <filteredset
1714 <spanset- 0:37>,
1714 <spanset- 0:37>,
1715 <not
1715 <not
1716 <filteredset
1716 <filteredset
1717 <spanset- 0:37>,
1717 <spanset- 0:37>,
1718 <merge>>>>
1718 <merge>>>>
1719 $ testlog --date '2 0 to 4 0'
1719 $ testlog --date '2 0 to 4 0'
1720 []
1720 []
1721 (func
1721 (func
1722 (symbol 'date')
1722 (symbol 'date')
1723 (string '2 0 to 4 0'))
1723 (string '2 0 to 4 0'))
1724 <filteredset
1724 <filteredset
1725 <spanset- 0:37>,
1725 <spanset- 0:37>,
1726 <date '2 0 to 4 0'>>
1726 <date '2 0 to 4 0'>>
1727 $ hg log -G -d 'brace ) in a date'
1727 $ hg log -G -d 'brace ) in a date'
1728 hg: parse error: invalid date: 'brace ) in a date'
1728 hg: parse error: invalid date: 'brace ) in a date'
1729 [255]
1729 [255]
1730 $ testlog --prune 31 --prune 32
1730 $ testlog --prune 31 --prune 32
1731 []
1731 []
1732 (not
1732 (not
1733 (or
1733 (or
1734 (list
1734 (list
1735 (func
1735 (func
1736 (symbol 'ancestors')
1736 (symbol 'ancestors')
1737 (string '31'))
1737 (string '31'))
1738 (func
1738 (func
1739 (symbol 'ancestors')
1739 (symbol 'ancestors')
1740 (string '32')))))
1740 (string '32')))))
1741 <filteredset
1741 <filteredset
1742 <spanset- 0:37>,
1742 <spanset- 0:37>,
1743 <not
1743 <not
1744 <addset
1744 <addset
1745 <filteredset
1745 <filteredset
1746 <spanset- 0:37>,
1746 <spanset- 0:37>,
1747 <generatorsetdesc+>>,
1747 <generatorsetdesc+>>,
1748 <filteredset
1748 <filteredset
1749 <spanset- 0:37>,
1749 <spanset- 0:37>,
1750 <generatorsetdesc+>>>>>
1750 <generatorsetdesc+>>>>>
1751
1751
1752 Dedicated repo for --follow and paths filtering. The g is crafted to
1752 Dedicated repo for --follow and paths filtering. The g is crafted to
1753 have 2 filelog topological heads in a linear changeset graph.
1753 have 2 filelog topological heads in a linear changeset graph.
1754
1754
1755 $ cd ..
1755 $ cd ..
1756 $ hg init follow
1756 $ hg init follow
1757 $ cd follow
1757 $ cd follow
1758 $ testlog --follow
1758 $ testlog --follow
1759 []
1759 []
1760 []
1760 []
1761 <baseset []>
1761 <baseset []>
1762 $ testlog -rnull
1762 $ testlog -rnull
1763 ['null']
1763 ['null']
1764 []
1764 []
1765 <baseset [-1]>
1765 <baseset [-1]>
1766 $ echo a > a
1766 $ echo a > a
1767 $ echo aa > aa
1767 $ echo aa > aa
1768 $ echo f > f
1768 $ echo f > f
1769 $ hg ci -Am "add a" a aa f
1769 $ hg ci -Am "add a" a aa f
1770 $ hg cp a b
1770 $ hg cp a b
1771 $ hg cp f g
1771 $ hg cp f g
1772 $ hg ci -m "copy a b"
1772 $ hg ci -m "copy a b"
1773 $ mkdir dir
1773 $ mkdir dir
1774 $ hg mv b dir
1774 $ hg mv b dir
1775 $ echo g >> g
1775 $ echo g >> g
1776 $ echo f >> f
1776 $ echo f >> f
1777 $ hg ci -m "mv b dir/b"
1777 $ hg ci -m "mv b dir/b"
1778 $ hg mv a b
1778 $ hg mv a b
1779 $ hg cp -f f g
1779 $ hg cp -f f g
1780 $ echo a > d
1780 $ echo a > d
1781 $ hg add d
1781 $ hg add d
1782 $ hg ci -m "mv a b; add d"
1782 $ hg ci -m "mv a b; add d"
1783 $ hg mv dir/b e
1783 $ hg mv dir/b e
1784 $ hg ci -m "mv dir/b e"
1784 $ hg ci -m "mv dir/b e"
1785 $ hg log -G --template '({rev}) {desc|firstline}\n'
1785 $ hg log -G --template '({rev}) {desc|firstline}\n'
1786 \xe2\x97\x8d (4) mv dir/b e (esc)
1786 \xe2\x97\x8d (4) mv dir/b e (esc)
1787 \xe2\x94\x82 (esc)
1787 \xe2\x94\x82 (esc)
1788 \xe2\x97\x8b (3) mv a b; add d (esc)
1788 \xe2\x97\x8b (3) mv a b; add d (esc)
1789 \xe2\x94\x82 (esc)
1789 \xe2\x94\x82 (esc)
1790 \xe2\x97\x8b (2) mv b dir/b (esc)
1790 \xe2\x97\x8b (2) mv b dir/b (esc)
1791 \xe2\x94\x82 (esc)
1791 \xe2\x94\x82 (esc)
1792 \xe2\x97\x8b (1) copy a b (esc)
1792 \xe2\x97\x8b (1) copy a b (esc)
1793 \xe2\x94\x82 (esc)
1793 \xe2\x94\x82 (esc)
1794 \xe2\x97\x8b (0) add a (esc)
1794 \xe2\x97\x8b (0) add a (esc)
1795
1795
1796
1796
1797 $ testlog a
1797 $ testlog a
1798 []
1798 []
1799 (func
1799 (func
1800 (symbol 'filelog')
1800 (symbol 'filelog')
1801 (string 'a'))
1801 (string 'a'))
1802 <filteredset
1802 <filteredset
1803 <spanset- 0:5>, set([0])>
1803 <spanset- 0:5>, set([0])>
1804 $ testlog a b
1804 $ testlog a b
1805 []
1805 []
1806 (or
1806 (or
1807 (list
1807 (list
1808 (func
1808 (func
1809 (symbol 'filelog')
1809 (symbol 'filelog')
1810 (string 'a'))
1810 (string 'a'))
1811 (func
1811 (func
1812 (symbol 'filelog')
1812 (symbol 'filelog')
1813 (string 'b'))))
1813 (string 'b'))))
1814 <filteredset
1814 <filteredset
1815 <spanset- 0:5>,
1815 <spanset- 0:5>,
1816 <addset
1816 <addset
1817 <baseset+ [0]>,
1817 <baseset+ [0]>,
1818 <baseset+ [1]>>>
1818 <baseset+ [1]>>>
1819
1819
1820 Test falling back to slow path for non-existing files
1820 Test falling back to slow path for non-existing files
1821
1821
1822 $ testlog a c
1822 $ testlog a c
1823 []
1823 []
1824 (func
1824 (func
1825 (symbol '_matchfiles')
1825 (symbol '_matchfiles')
1826 (list
1826 (list
1827 (string 'r:')
1827 (string 'r:')
1828 (string 'd:relpath')
1828 (string 'd:relpath')
1829 (string 'p:a')
1829 (string 'p:a')
1830 (string 'p:c')))
1830 (string 'p:c')))
1831 <filteredset
1831 <filteredset
1832 <spanset- 0:5>,
1832 <spanset- 0:5>,
1833 <matchfiles patterns=['a', 'c'], include=[] exclude=[], default='relpath', rev=2147483647>>
1833 <matchfiles patterns=['a', 'c'], include=[] exclude=[], default='relpath', rev=2147483647>>
1834
1834
1835 Test multiple --include/--exclude/paths
1835 Test multiple --include/--exclude/paths
1836
1836
1837 $ testlog --include a --include e --exclude b --exclude e a e
1837 $ testlog --include a --include e --exclude b --exclude e a e
1838 []
1838 []
1839 (func
1839 (func
1840 (symbol '_matchfiles')
1840 (symbol '_matchfiles')
1841 (list
1841 (list
1842 (string 'r:')
1842 (string 'r:')
1843 (string 'd:relpath')
1843 (string 'd:relpath')
1844 (string 'p:a')
1844 (string 'p:a')
1845 (string 'p:e')
1845 (string 'p:e')
1846 (string 'i:a')
1846 (string 'i:a')
1847 (string 'i:e')
1847 (string 'i:e')
1848 (string 'x:b')
1848 (string 'x:b')
1849 (string 'x:e')))
1849 (string 'x:e')))
1850 <filteredset
1850 <filteredset
1851 <spanset- 0:5>,
1851 <spanset- 0:5>,
1852 <matchfiles patterns=['a', 'e'], include=['a', 'e'] exclude=['b', 'e'], default='relpath', rev=2147483647>>
1852 <matchfiles patterns=['a', 'e'], include=['a', 'e'] exclude=['b', 'e'], default='relpath', rev=2147483647>>
1853
1853
1854 Test glob expansion of pats
1854 Test glob expansion of pats
1855
1855
1856 $ expandglobs=`$PYTHON -c "import mercurial.util; \
1856 $ expandglobs=`$PYTHON -c "import mercurial.util; \
1857 > print(mercurial.util.expandglobs and 'true' or 'false')"`
1857 > print(mercurial.util.expandglobs and 'true' or 'false')"`
1858 $ if [ $expandglobs = "true" ]; then
1858 $ if [ $expandglobs = "true" ]; then
1859 > testlog 'a*';
1859 > testlog 'a*';
1860 > else
1860 > else
1861 > testlog a*;
1861 > testlog a*;
1862 > fi;
1862 > fi;
1863 []
1863 []
1864 (func
1864 (func
1865 (symbol 'filelog')
1865 (symbol 'filelog')
1866 (string 'aa'))
1866 (string 'aa'))
1867 <filteredset
1867 <filteredset
1868 <spanset- 0:5>, set([0])>
1868 <spanset- 0:5>, set([0])>
1869
1869
1870 Test --follow on a non-existent directory
1870 Test --follow on a non-existent directory
1871
1871
1872 $ testlog -f dir
1872 $ testlog -f dir
1873 abort: cannot follow file not in parent revision: "dir"
1873 abort: cannot follow file not in parent revision: "dir"
1874 abort: cannot follow file not in parent revision: "dir"
1874 abort: cannot follow file not in parent revision: "dir"
1875 abort: cannot follow file not in parent revision: "dir"
1875 abort: cannot follow file not in parent revision: "dir"
1876
1876
1877 Test --follow on a directory
1877 Test --follow on a directory
1878
1878
1879 $ hg up -q '.^'
1879 $ hg up -q '.^'
1880 $ testlog -f dir
1880 $ testlog -f dir
1881 []
1881 []
1882 (func
1882 (func
1883 (symbol '_matchfiles')
1883 (symbol '_matchfiles')
1884 (list
1884 (list
1885 (string 'r:')
1885 (string 'r:')
1886 (string 'd:relpath')
1886 (string 'd:relpath')
1887 (string 'p:dir')))
1887 (string 'p:dir')))
1888 <filteredset
1888 <filteredset
1889 <generatorsetdesc->,
1889 <generatorsetdesc->,
1890 <matchfiles patterns=['dir'], include=[] exclude=[], default='relpath', rev=2147483647>>
1890 <matchfiles patterns=['dir'], include=[] exclude=[], default='relpath', rev=2147483647>>
1891 $ hg up -q tip
1891 $ hg up -q tip
1892
1892
1893 Test --follow on file not in parent revision
1893 Test --follow on file not in parent revision
1894
1894
1895 $ testlog -f a
1895 $ testlog -f a
1896 abort: cannot follow file not in parent revision: "a"
1896 abort: cannot follow file not in parent revision: "a"
1897 abort: cannot follow file not in parent revision: "a"
1897 abort: cannot follow file not in parent revision: "a"
1898 abort: cannot follow file not in parent revision: "a"
1898 abort: cannot follow file not in parent revision: "a"
1899
1899
1900 Test --follow and patterns
1900 Test --follow and patterns
1901
1901
1902 $ testlog -f 'glob:*'
1902 $ testlog -f 'glob:*'
1903 []
1903 []
1904 (func
1904 (func
1905 (symbol '_matchfiles')
1905 (symbol '_matchfiles')
1906 (list
1906 (list
1907 (string 'r:')
1907 (string 'r:')
1908 (string 'd:relpath')
1908 (string 'd:relpath')
1909 (string 'p:glob:*')))
1909 (string 'p:glob:*')))
1910 <filteredset
1910 <filteredset
1911 <generatorsetdesc->,
1911 <generatorsetdesc->,
1912 <matchfiles patterns=['glob:*'], include=[] exclude=[], default='relpath', rev=2147483647>>
1912 <matchfiles patterns=['glob:*'], include=[] exclude=[], default='relpath', rev=2147483647>>
1913
1913
1914 Test --follow on a single rename
1914 Test --follow on a single rename
1915
1915
1916 $ hg up -q 2
1916 $ hg up -q 2
1917 $ testlog -f a
1917 $ testlog -f a
1918 []
1918 []
1919 []
1919 []
1920 <generatorsetdesc->
1920 <generatorsetdesc->
1921
1921
1922 Test --follow and multiple renames
1922 Test --follow and multiple renames
1923
1923
1924 $ hg up -q tip
1924 $ hg up -q tip
1925 $ testlog -f e
1925 $ testlog -f e
1926 []
1926 []
1927 []
1927 []
1928 <generatorsetdesc->
1928 <generatorsetdesc->
1929
1929
1930 Test --follow and multiple filelog heads
1930 Test --follow and multiple filelog heads
1931
1931
1932 $ hg up -q 2
1932 $ hg up -q 2
1933 $ testlog -f g
1933 $ testlog -f g
1934 []
1934 []
1935 []
1935 []
1936 <generatorsetdesc->
1936 <generatorsetdesc->
1937 $ cat log.nodes
1937 $ cat log.nodes
1938 nodetag 2
1938 nodetag 2
1939 nodetag 1
1939 nodetag 1
1940 nodetag 0
1940 nodetag 0
1941 $ hg up -q tip
1941 $ hg up -q tip
1942 $ testlog -f g
1942 $ testlog -f g
1943 []
1943 []
1944 []
1944 []
1945 <generatorsetdesc->
1945 <generatorsetdesc->
1946 $ cat log.nodes
1946 $ cat log.nodes
1947 nodetag 3
1947 nodetag 3
1948 nodetag 2
1948 nodetag 2
1949 nodetag 0
1949 nodetag 0
1950
1950
1951 Test --follow and multiple files
1951 Test --follow and multiple files
1952
1952
1953 $ testlog -f g e
1953 $ testlog -f g e
1954 []
1954 []
1955 []
1955 []
1956 <generatorsetdesc->
1956 <generatorsetdesc->
1957 $ cat log.nodes
1957 $ cat log.nodes
1958 nodetag 4
1958 nodetag 4
1959 nodetag 3
1959 nodetag 3
1960 nodetag 2
1960 nodetag 2
1961 nodetag 1
1961 nodetag 1
1962 nodetag 0
1962 nodetag 0
1963
1963
1964 Test --follow null parent
1964 Test --follow null parent
1965
1965
1966 $ hg up -q null
1966 $ hg up -q null
1967 $ testlog -f
1967 $ testlog -f
1968 []
1968 []
1969 []
1969 []
1970 <baseset []>
1970 <baseset []>
1971
1971
1972 Test --follow-first
1972 Test --follow-first
1973
1973
1974 $ hg up -q 3
1974 $ hg up -q 3
1975 $ echo ee > e
1975 $ echo ee > e
1976 $ hg ci -Am "add another e" e
1976 $ hg ci -Am "add another e" e
1977 created new head
1977 created new head
1978 $ hg merge --tool internal:other 4
1978 $ hg merge --tool internal:other 4
1979 0 files updated, 1 files merged, 1 files removed, 0 files unresolved
1979 0 files updated, 1 files merged, 1 files removed, 0 files unresolved
1980 (branch merge, don't forget to commit)
1980 (branch merge, don't forget to commit)
1981 $ echo merge > e
1981 $ echo merge > e
1982 $ hg ci -m "merge 5 and 4"
1982 $ hg ci -m "merge 5 and 4"
1983 $ testlog --follow-first
1983 $ testlog --follow-first
1984 []
1984 []
1985 []
1985 []
1986 <generatorsetdesc->
1986 <generatorsetdesc->
1987
1987
1988 Cannot compare with log --follow-first FILE as it never worked
1988 Cannot compare with log --follow-first FILE as it never worked
1989
1989
1990 $ hg log -G --print-revset --follow-first e
1990 $ hg log -G --print-revset --follow-first e
1991 []
1991 []
1992 []
1992 []
1993 <generatorsetdesc->
1993 <generatorsetdesc->
1994 $ hg log -G --follow-first e --template '{rev} {desc|firstline}\n'
1994 $ hg log -G --follow-first e --template '{rev} {desc|firstline}\n'
1995 \xe2\x97\x8d 6 merge 5 and 4 (esc)
1995 \xe2\x97\x8d 6 merge 5 and 4 (esc)
1996 \xe2\x94\x82\xe2\x95\xb2 (esc)
1996 \xe2\x94\x82\xe2\x95\xb2 (esc)
1997 \xe2\x94\x82 \xe2\x95\xa7 (esc)
1997 \xe2\x94\x82 \xe2\x95\xa7 (esc)
1998 \xe2\x97\x8b 5 add another e (esc)
1998 \xe2\x97\x8b 5 add another e (esc)
1999 \xe2\x94\x82 (esc)
1999 \xe2\x94\x82 (esc)
2000 \xe2\x95\xa7 (esc)
2000 \xe2\x95\xa7 (esc)
2001
2001
2002 Test --copies
2002 Test --copies
2003
2003
2004 $ hg log -G --copies --template "{rev} {desc|firstline} \
2004 $ hg log -G --copies --template "{rev} {desc|firstline} \
2005 > copies: {file_copies_switch}\n"
2005 > copies: {file_copies_switch}\n"
2006 \xe2\x97\x8d 6 merge 5 and 4 copies: (esc)
2006 \xe2\x97\x8d 6 merge 5 and 4 copies: (esc)
2007 \xe2\x94\x82\xe2\x95\xb2 (esc)
2007 \xe2\x94\x82\xe2\x95\xb2 (esc)
2008 \xe2\x94\x82 \xe2\x97\x8b 5 add another e copies: (esc)
2008 \xe2\x94\x82 \xe2\x97\x8b 5 add another e copies: (esc)
2009 \xe2\x94\x82 \xe2\x94\x82 (esc)
2009 \xe2\x94\x82 \xe2\x94\x82 (esc)
2010 \xe2\x97\x8b \xe2\x94\x82 4 mv dir/b e copies: e (dir/b) (esc)
2010 \xe2\x97\x8b \xe2\x94\x82 4 mv dir/b e copies: e (dir/b) (esc)
2011 \xe2\x94\x82\xe2\x95\xb1 (esc)
2011 \xe2\x94\x82\xe2\x95\xb1 (esc)
2012 \xe2\x97\x8b 3 mv a b; add d copies: b (a)g (f) (esc)
2012 \xe2\x97\x8b 3 mv a b; add d copies: b (a)g (f) (esc)
2013 \xe2\x94\x82 (esc)
2013 \xe2\x94\x82 (esc)
2014 \xe2\x97\x8b 2 mv b dir/b copies: dir/b (b) (esc)
2014 \xe2\x97\x8b 2 mv b dir/b copies: dir/b (b) (esc)
2015 \xe2\x94\x82 (esc)
2015 \xe2\x94\x82 (esc)
2016 \xe2\x97\x8b 1 copy a b copies: b (a)g (f) (esc)
2016 \xe2\x97\x8b 1 copy a b copies: b (a)g (f) (esc)
2017 \xe2\x94\x82 (esc)
2017 \xe2\x94\x82 (esc)
2018 \xe2\x97\x8b 0 add a copies: (esc)
2018 \xe2\x97\x8b 0 add a copies: (esc)
2019
2019
2020 Test "set:..." and parent revision
2020 Test "set:..." and parent revision
2021
2021
2022 $ hg up -q 4
2022 $ hg up -q 4
2023 $ testlog "set:copied()"
2023 $ testlog "set:copied()"
2024 []
2024 []
2025 (func
2025 (func
2026 (symbol '_matchfiles')
2026 (symbol 'filelog')
2027 (list
2027 (string 'set:copied()'))
2028 (string 'r:')
2029 (string 'd:relpath')
2030 (string 'p:set:copied()')))
2031 <filteredset
2028 <filteredset
2032 <spanset- 0:7>,
2029 <spanset- 0:7>, set([])>
2033 <matchfiles patterns=['set:copied()'], include=[] exclude=[], default='relpath', rev=2147483647>>
2034 $ testlog --include "set:copied()"
2030 $ testlog --include "set:copied()"
2035 []
2031 []
2036 (func
2032 []
2037 (symbol '_matchfiles')
2033 <spanset- 0:7>
2038 (list
2039 (string 'r:')
2040 (string 'd:relpath')
2041 (string 'i:set:copied()')))
2042 <filteredset
2043 <spanset- 0:7>,
2044 <matchfiles patterns=[], include=['set:copied()'] exclude=[], default='relpath', rev=2147483647>>
2045 $ testlog -r "sort(file('set:copied()'), -rev)"
2034 $ testlog -r "sort(file('set:copied()'), -rev)"
2046 ["sort(file('set:copied()'), -rev)"]
2035 ["sort(file('set:copied()'), -rev)"]
2047 []
2036 []
2048 <filteredset
2037 <filteredset
2049 <fullreposet- 0:7>,
2038 <fullreposet- 0:7>,
2050 <matchfiles patterns=['set:copied()'], include=[] exclude=[], default='glob', rev=None>>
2039 <matchfiles patterns=['set:copied()'], include=[] exclude=[], default='glob', rev=None>>
2051
2040
2052 Test --removed
2041 Test --removed
2053
2042
2054 $ testlog --removed
2043 $ testlog --removed
2055 []
2044 []
2056 []
2045 []
2057 <spanset- 0:7>
2046 <spanset- 0:7>
2058 $ testlog --removed a
2047 $ testlog --removed a
2059 []
2048 []
2060 (func
2049 (func
2061 (symbol '_matchfiles')
2050 (symbol '_matchfiles')
2062 (list
2051 (list
2063 (string 'r:')
2052 (string 'r:')
2064 (string 'd:relpath')
2053 (string 'd:relpath')
2065 (string 'p:a')))
2054 (string 'p:a')))
2066 <filteredset
2055 <filteredset
2067 <spanset- 0:7>,
2056 <spanset- 0:7>,
2068 <matchfiles patterns=['a'], include=[] exclude=[], default='relpath', rev=2147483647>>
2057 <matchfiles patterns=['a'], include=[] exclude=[], default='relpath', rev=2147483647>>
2069 $ testlog --removed --follow a
2058 $ testlog --removed --follow a
2070 []
2059 []
2071 (func
2060 (func
2072 (symbol '_matchfiles')
2061 (symbol '_matchfiles')
2073 (list
2062 (list
2074 (string 'r:')
2063 (string 'r:')
2075 (string 'd:relpath')
2064 (string 'd:relpath')
2076 (string 'p:a')))
2065 (string 'p:a')))
2077 <filteredset
2066 <filteredset
2078 <generatorsetdesc->,
2067 <generatorsetdesc->,
2079 <matchfiles patterns=['a'], include=[] exclude=[], default='relpath', rev=2147483647>>
2068 <matchfiles patterns=['a'], include=[] exclude=[], default='relpath', rev=2147483647>>
2080
2069
2081 Test --patch and --stat with --follow and --follow-first
2070 Test --patch and --stat with --follow and --follow-first
2082
2071
2083 $ hg up -q 3
2072 $ hg up -q 3
2084 $ hg log -G --git --patch b
2073 $ hg log -G --git --patch b
2085 \xe2\x97\x8b changeset: 1:216d4c92cf98 (esc)
2074 \xe2\x97\x8b changeset: 1:216d4c92cf98 (esc)
2086 \xe2\x94\x82 user: test (esc)
2075 \xe2\x94\x82 user: test (esc)
2087 \xe2\x95\xa7 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
2076 \xe2\x95\xa7 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
2088 summary: copy a b
2077 summary: copy a b
2089
2078
2090 diff --git a/a b/b
2079 diff --git a/a b/b
2091 copy from a
2080 copy from a
2092 copy to b
2081 copy to b
2093
2082
2094
2083
2095 $ hg log -G --git --stat b
2084 $ hg log -G --git --stat b
2096 \xe2\x97\x8b changeset: 1:216d4c92cf98 (esc)
2085 \xe2\x97\x8b changeset: 1:216d4c92cf98 (esc)
2097 \xe2\x94\x82 user: test (esc)
2086 \xe2\x94\x82 user: test (esc)
2098 \xe2\x95\xa7 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
2087 \xe2\x95\xa7 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
2099 summary: copy a b
2088 summary: copy a b
2100
2089
2101 b | 0
2090 b | 0
2102 1 files changed, 0 insertions(+), 0 deletions(-)
2091 1 files changed, 0 insertions(+), 0 deletions(-)
2103
2092
2104
2093
2105 $ hg log -G --git --patch --follow b
2094 $ hg log -G --git --patch --follow b
2106 \xe2\x97\x8b changeset: 1:216d4c92cf98 (esc)
2095 \xe2\x97\x8b changeset: 1:216d4c92cf98 (esc)
2107 \xe2\x94\x82 user: test (esc)
2096 \xe2\x94\x82 user: test (esc)
2108 \xe2\x94\x82 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
2097 \xe2\x94\x82 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
2109 \xe2\x94\x82 summary: copy a b (esc)
2098 \xe2\x94\x82 summary: copy a b (esc)
2110 \xe2\x94\x82 (esc)
2099 \xe2\x94\x82 (esc)
2111 \xe2\x94\x82 diff --git a/a b/b (esc)
2100 \xe2\x94\x82 diff --git a/a b/b (esc)
2112 \xe2\x94\x82 copy from a (esc)
2101 \xe2\x94\x82 copy from a (esc)
2113 \xe2\x94\x82 copy to b (esc)
2102 \xe2\x94\x82 copy to b (esc)
2114 \xe2\x94\x82 (esc)
2103 \xe2\x94\x82 (esc)
2115 \xe2\x97\x8b changeset: 0:f8035bb17114 (esc)
2104 \xe2\x97\x8b changeset: 0:f8035bb17114 (esc)
2116 user: test
2105 user: test
2117 date: Thu Jan 01 00:00:00 1970 +0000
2106 date: Thu Jan 01 00:00:00 1970 +0000
2118 summary: add a
2107 summary: add a
2119
2108
2120 diff --git a/a b/a
2109 diff --git a/a b/a
2121 new file mode 100644
2110 new file mode 100644
2122 --- /dev/null
2111 --- /dev/null
2123 +++ b/a
2112 +++ b/a
2124 @@ -0,0 +1,1 @@
2113 @@ -0,0 +1,1 @@
2125 +a
2114 +a
2126
2115
2127
2116
2128 $ hg log -G --git --stat --follow b
2117 $ hg log -G --git --stat --follow b
2129 \xe2\x97\x8b changeset: 1:216d4c92cf98 (esc)
2118 \xe2\x97\x8b changeset: 1:216d4c92cf98 (esc)
2130 \xe2\x94\x82 user: test (esc)
2119 \xe2\x94\x82 user: test (esc)
2131 \xe2\x94\x82 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
2120 \xe2\x94\x82 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
2132 \xe2\x94\x82 summary: copy a b (esc)
2121 \xe2\x94\x82 summary: copy a b (esc)
2133 \xe2\x94\x82 (esc)
2122 \xe2\x94\x82 (esc)
2134 \xe2\x94\x82 b | 0 (esc)
2123 \xe2\x94\x82 b | 0 (esc)
2135 \xe2\x94\x82 1 files changed, 0 insertions(+), 0 deletions(-) (esc)
2124 \xe2\x94\x82 1 files changed, 0 insertions(+), 0 deletions(-) (esc)
2136 \xe2\x94\x82 (esc)
2125 \xe2\x94\x82 (esc)
2137 \xe2\x97\x8b changeset: 0:f8035bb17114 (esc)
2126 \xe2\x97\x8b changeset: 0:f8035bb17114 (esc)
2138 user: test
2127 user: test
2139 date: Thu Jan 01 00:00:00 1970 +0000
2128 date: Thu Jan 01 00:00:00 1970 +0000
2140 summary: add a
2129 summary: add a
2141
2130
2142 a | 1 +
2131 a | 1 +
2143 1 files changed, 1 insertions(+), 0 deletions(-)
2132 1 files changed, 1 insertions(+), 0 deletions(-)
2144
2133
2145
2134
2146 $ hg up -q 6
2135 $ hg up -q 6
2147 $ hg log -G --git --patch --follow-first e
2136 $ hg log -G --git --patch --follow-first e
2148 \xe2\x97\x8d changeset: 6:fc281d8ff18d (esc)
2137 \xe2\x97\x8d changeset: 6:fc281d8ff18d (esc)
2149 \xe2\x94\x82\xe2\x95\xb2 tag: tip (esc)
2138 \xe2\x94\x82\xe2\x95\xb2 tag: tip (esc)
2150 \xe2\x94\x82 \xe2\x95\xa7 parent: 5:99b31f1c2782 (esc)
2139 \xe2\x94\x82 \xe2\x95\xa7 parent: 5:99b31f1c2782 (esc)
2151 \xe2\x94\x82 parent: 4:17d952250a9d (esc)
2140 \xe2\x94\x82 parent: 4:17d952250a9d (esc)
2152 \xe2\x94\x82 user: test (esc)
2141 \xe2\x94\x82 user: test (esc)
2153 \xe2\x94\x82 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
2142 \xe2\x94\x82 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
2154 \xe2\x94\x82 summary: merge 5 and 4 (esc)
2143 \xe2\x94\x82 summary: merge 5 and 4 (esc)
2155 \xe2\x94\x82 (esc)
2144 \xe2\x94\x82 (esc)
2156 \xe2\x94\x82 diff --git a/e b/e (esc)
2145 \xe2\x94\x82 diff --git a/e b/e (esc)
2157 \xe2\x94\x82 --- a/e (esc)
2146 \xe2\x94\x82 --- a/e (esc)
2158 \xe2\x94\x82 +++ b/e (esc)
2147 \xe2\x94\x82 +++ b/e (esc)
2159 \xe2\x94\x82 @@ -1,1 +1,1 @@ (esc)
2148 \xe2\x94\x82 @@ -1,1 +1,1 @@ (esc)
2160 \xe2\x94\x82 -ee (esc)
2149 \xe2\x94\x82 -ee (esc)
2161 \xe2\x94\x82 +merge (esc)
2150 \xe2\x94\x82 +merge (esc)
2162 \xe2\x94\x82 (esc)
2151 \xe2\x94\x82 (esc)
2163 \xe2\x97\x8b changeset: 5:99b31f1c2782 (esc)
2152 \xe2\x97\x8b changeset: 5:99b31f1c2782 (esc)
2164 \xe2\x94\x82 parent: 3:5918b8d165d1 (esc)
2153 \xe2\x94\x82 parent: 3:5918b8d165d1 (esc)
2165 \xe2\x95\xa7 user: test (esc)
2154 \xe2\x95\xa7 user: test (esc)
2166 date: Thu Jan 01 00:00:00 1970 +0000
2155 date: Thu Jan 01 00:00:00 1970 +0000
2167 summary: add another e
2156 summary: add another e
2168
2157
2169 diff --git a/e b/e
2158 diff --git a/e b/e
2170 new file mode 100644
2159 new file mode 100644
2171 --- /dev/null
2160 --- /dev/null
2172 +++ b/e
2161 +++ b/e
2173 @@ -0,0 +1,1 @@
2162 @@ -0,0 +1,1 @@
2174 +ee
2163 +ee
2175
2164
2176
2165
2177 Test old-style --rev
2166 Test old-style --rev
2178
2167
2179 $ hg tag 'foo-bar'
2168 $ hg tag 'foo-bar'
2180 $ testlog -r 'foo-bar'
2169 $ testlog -r 'foo-bar'
2181 ['foo-bar']
2170 ['foo-bar']
2182 []
2171 []
2183 <baseset [6]>
2172 <baseset [6]>
2184
2173
2185 Test --follow and forward --rev
2174 Test --follow and forward --rev
2186
2175
2187 $ hg up -q 6
2176 $ hg up -q 6
2188 $ echo g > g
2177 $ echo g > g
2189 $ hg ci -Am 'add g' g
2178 $ hg ci -Am 'add g' g
2190 created new head
2179 created new head
2191 $ hg up -q 2
2180 $ hg up -q 2
2192 $ hg log -G --template "{rev} {desc|firstline}\n"
2181 $ hg log -G --template "{rev} {desc|firstline}\n"
2193 \xe2\x97\x8b 8 add g (esc)
2182 \xe2\x97\x8b 8 add g (esc)
2194 \xe2\x94\x82 (esc)
2183 \xe2\x94\x82 (esc)
2195 \xe2\x94\x82 \xe2\x97\x8b 7 Added tag foo-bar for changeset fc281d8ff18d (esc)
2184 \xe2\x94\x82 \xe2\x97\x8b 7 Added tag foo-bar for changeset fc281d8ff18d (esc)
2196 \xe2\x94\x82\xe2\x95\xb1 (esc)
2185 \xe2\x94\x82\xe2\x95\xb1 (esc)
2197 \xe2\x97\x8b 6 merge 5 and 4 (esc)
2186 \xe2\x97\x8b 6 merge 5 and 4 (esc)
2198 \xe2\x94\x82\xe2\x95\xb2 (esc)
2187 \xe2\x94\x82\xe2\x95\xb2 (esc)
2199 \xe2\x94\x82 \xe2\x97\x8b 5 add another e (esc)
2188 \xe2\x94\x82 \xe2\x97\x8b 5 add another e (esc)
2200 \xe2\x94\x82 \xe2\x94\x82 (esc)
2189 \xe2\x94\x82 \xe2\x94\x82 (esc)
2201 \xe2\x97\x8b \xe2\x94\x82 4 mv dir/b e (esc)
2190 \xe2\x97\x8b \xe2\x94\x82 4 mv dir/b e (esc)
2202 \xe2\x94\x82\xe2\x95\xb1 (esc)
2191 \xe2\x94\x82\xe2\x95\xb1 (esc)
2203 \xe2\x97\x8b 3 mv a b; add d (esc)
2192 \xe2\x97\x8b 3 mv a b; add d (esc)
2204 \xe2\x94\x82 (esc)
2193 \xe2\x94\x82 (esc)
2205 \xe2\x97\x8d 2 mv b dir/b (esc)
2194 \xe2\x97\x8d 2 mv b dir/b (esc)
2206 \xe2\x94\x82 (esc)
2195 \xe2\x94\x82 (esc)
2207 \xe2\x97\x8b 1 copy a b (esc)
2196 \xe2\x97\x8b 1 copy a b (esc)
2208 \xe2\x94\x82 (esc)
2197 \xe2\x94\x82 (esc)
2209 \xe2\x97\x8b 0 add a (esc)
2198 \xe2\x97\x8b 0 add a (esc)
2210
2199
2211 $ hg archive -r 7 archive
2200 $ hg archive -r 7 archive
2212 $ grep changessincelatesttag archive/.hg_archival.txt
2201 $ grep changessincelatesttag archive/.hg_archival.txt
2213 changessincelatesttag: 1
2202 changessincelatesttag: 1
2214 $ rm -r archive
2203 $ rm -r archive
2215
2204
2216 changessincelatesttag with no prior tag
2205 changessincelatesttag with no prior tag
2217 $ hg archive -r 4 archive
2206 $ hg archive -r 4 archive
2218 $ grep changessincelatesttag archive/.hg_archival.txt
2207 $ grep changessincelatesttag archive/.hg_archival.txt
2219 changessincelatesttag: 5
2208 changessincelatesttag: 5
2220
2209
2221 $ hg export 'all()'
2210 $ hg export 'all()'
2222 # HG changeset patch
2211 # HG changeset patch
2223 # User test
2212 # User test
2224 # Date 0 0
2213 # Date 0 0
2225 # Thu Jan 01 00:00:00 1970 +0000
2214 # Thu Jan 01 00:00:00 1970 +0000
2226 # Node ID f8035bb17114da16215af3436ec5222428ace8ee
2215 # Node ID f8035bb17114da16215af3436ec5222428ace8ee
2227 # Parent 0000000000000000000000000000000000000000
2216 # Parent 0000000000000000000000000000000000000000
2228 add a
2217 add a
2229
2218
2230 diff -r 000000000000 -r f8035bb17114 a
2219 diff -r 000000000000 -r f8035bb17114 a
2231 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2220 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2232 +++ b/a Thu Jan 01 00:00:00 1970 +0000
2221 +++ b/a Thu Jan 01 00:00:00 1970 +0000
2233 @@ -0,0 +1,1 @@
2222 @@ -0,0 +1,1 @@
2234 +a
2223 +a
2235 diff -r 000000000000 -r f8035bb17114 aa
2224 diff -r 000000000000 -r f8035bb17114 aa
2236 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2225 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2237 +++ b/aa Thu Jan 01 00:00:00 1970 +0000
2226 +++ b/aa Thu Jan 01 00:00:00 1970 +0000
2238 @@ -0,0 +1,1 @@
2227 @@ -0,0 +1,1 @@
2239 +aa
2228 +aa
2240 diff -r 000000000000 -r f8035bb17114 f
2229 diff -r 000000000000 -r f8035bb17114 f
2241 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2230 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2242 +++ b/f Thu Jan 01 00:00:00 1970 +0000
2231 +++ b/f Thu Jan 01 00:00:00 1970 +0000
2243 @@ -0,0 +1,1 @@
2232 @@ -0,0 +1,1 @@
2244 +f
2233 +f
2245 # HG changeset patch
2234 # HG changeset patch
2246 # User test
2235 # User test
2247 # Date 0 0
2236 # Date 0 0
2248 # Thu Jan 01 00:00:00 1970 +0000
2237 # Thu Jan 01 00:00:00 1970 +0000
2249 # Node ID 216d4c92cf98ff2b4641d508b76b529f3d424c92
2238 # Node ID 216d4c92cf98ff2b4641d508b76b529f3d424c92
2250 # Parent f8035bb17114da16215af3436ec5222428ace8ee
2239 # Parent f8035bb17114da16215af3436ec5222428ace8ee
2251 copy a b
2240 copy a b
2252
2241
2253 diff -r f8035bb17114 -r 216d4c92cf98 b
2242 diff -r f8035bb17114 -r 216d4c92cf98 b
2254 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2243 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2255 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2244 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2256 @@ -0,0 +1,1 @@
2245 @@ -0,0 +1,1 @@
2257 +a
2246 +a
2258 diff -r f8035bb17114 -r 216d4c92cf98 g
2247 diff -r f8035bb17114 -r 216d4c92cf98 g
2259 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2248 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2260 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2249 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2261 @@ -0,0 +1,1 @@
2250 @@ -0,0 +1,1 @@
2262 +f
2251 +f
2263 # HG changeset patch
2252 # HG changeset patch
2264 # User test
2253 # User test
2265 # Date 0 0
2254 # Date 0 0
2266 # Thu Jan 01 00:00:00 1970 +0000
2255 # Thu Jan 01 00:00:00 1970 +0000
2267 # Node ID bb573313a9e8349099b6ea2b2fb1fc7f424446f3
2256 # Node ID bb573313a9e8349099b6ea2b2fb1fc7f424446f3
2268 # Parent 216d4c92cf98ff2b4641d508b76b529f3d424c92
2257 # Parent 216d4c92cf98ff2b4641d508b76b529f3d424c92
2269 mv b dir/b
2258 mv b dir/b
2270
2259
2271 diff -r 216d4c92cf98 -r bb573313a9e8 b
2260 diff -r 216d4c92cf98 -r bb573313a9e8 b
2272 --- a/b Thu Jan 01 00:00:00 1970 +0000
2261 --- a/b Thu Jan 01 00:00:00 1970 +0000
2273 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2262 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2274 @@ -1,1 +0,0 @@
2263 @@ -1,1 +0,0 @@
2275 -a
2264 -a
2276 diff -r 216d4c92cf98 -r bb573313a9e8 dir/b
2265 diff -r 216d4c92cf98 -r bb573313a9e8 dir/b
2277 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2266 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2278 +++ b/dir/b Thu Jan 01 00:00:00 1970 +0000
2267 +++ b/dir/b Thu Jan 01 00:00:00 1970 +0000
2279 @@ -0,0 +1,1 @@
2268 @@ -0,0 +1,1 @@
2280 +a
2269 +a
2281 diff -r 216d4c92cf98 -r bb573313a9e8 f
2270 diff -r 216d4c92cf98 -r bb573313a9e8 f
2282 --- a/f Thu Jan 01 00:00:00 1970 +0000
2271 --- a/f Thu Jan 01 00:00:00 1970 +0000
2283 +++ b/f Thu Jan 01 00:00:00 1970 +0000
2272 +++ b/f Thu Jan 01 00:00:00 1970 +0000
2284 @@ -1,1 +1,2 @@
2273 @@ -1,1 +1,2 @@
2285 f
2274 f
2286 +f
2275 +f
2287 diff -r 216d4c92cf98 -r bb573313a9e8 g
2276 diff -r 216d4c92cf98 -r bb573313a9e8 g
2288 --- a/g Thu Jan 01 00:00:00 1970 +0000
2277 --- a/g Thu Jan 01 00:00:00 1970 +0000
2289 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2278 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2290 @@ -1,1 +1,2 @@
2279 @@ -1,1 +1,2 @@
2291 f
2280 f
2292 +g
2281 +g
2293 # HG changeset patch
2282 # HG changeset patch
2294 # User test
2283 # User test
2295 # Date 0 0
2284 # Date 0 0
2296 # Thu Jan 01 00:00:00 1970 +0000
2285 # Thu Jan 01 00:00:00 1970 +0000
2297 # Node ID 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2286 # Node ID 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2298 # Parent bb573313a9e8349099b6ea2b2fb1fc7f424446f3
2287 # Parent bb573313a9e8349099b6ea2b2fb1fc7f424446f3
2299 mv a b; add d
2288 mv a b; add d
2300
2289
2301 diff -r bb573313a9e8 -r 5918b8d165d1 a
2290 diff -r bb573313a9e8 -r 5918b8d165d1 a
2302 --- a/a Thu Jan 01 00:00:00 1970 +0000
2291 --- a/a Thu Jan 01 00:00:00 1970 +0000
2303 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2292 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2304 @@ -1,1 +0,0 @@
2293 @@ -1,1 +0,0 @@
2305 -a
2294 -a
2306 diff -r bb573313a9e8 -r 5918b8d165d1 b
2295 diff -r bb573313a9e8 -r 5918b8d165d1 b
2307 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2296 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2308 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2297 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2309 @@ -0,0 +1,1 @@
2298 @@ -0,0 +1,1 @@
2310 +a
2299 +a
2311 diff -r bb573313a9e8 -r 5918b8d165d1 d
2300 diff -r bb573313a9e8 -r 5918b8d165d1 d
2312 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2301 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2313 +++ b/d Thu Jan 01 00:00:00 1970 +0000
2302 +++ b/d Thu Jan 01 00:00:00 1970 +0000
2314 @@ -0,0 +1,1 @@
2303 @@ -0,0 +1,1 @@
2315 +a
2304 +a
2316 diff -r bb573313a9e8 -r 5918b8d165d1 g
2305 diff -r bb573313a9e8 -r 5918b8d165d1 g
2317 --- a/g Thu Jan 01 00:00:00 1970 +0000
2306 --- a/g Thu Jan 01 00:00:00 1970 +0000
2318 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2307 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2319 @@ -1,2 +1,2 @@
2308 @@ -1,2 +1,2 @@
2320 f
2309 f
2321 -g
2310 -g
2322 +f
2311 +f
2323 # HG changeset patch
2312 # HG changeset patch
2324 # User test
2313 # User test
2325 # Date 0 0
2314 # Date 0 0
2326 # Thu Jan 01 00:00:00 1970 +0000
2315 # Thu Jan 01 00:00:00 1970 +0000
2327 # Node ID 17d952250a9d03cc3dc77b199ab60e959b9b0260
2316 # Node ID 17d952250a9d03cc3dc77b199ab60e959b9b0260
2328 # Parent 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2317 # Parent 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2329 mv dir/b e
2318 mv dir/b e
2330
2319
2331 diff -r 5918b8d165d1 -r 17d952250a9d dir/b
2320 diff -r 5918b8d165d1 -r 17d952250a9d dir/b
2332 --- a/dir/b Thu Jan 01 00:00:00 1970 +0000
2321 --- a/dir/b Thu Jan 01 00:00:00 1970 +0000
2333 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2322 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2334 @@ -1,1 +0,0 @@
2323 @@ -1,1 +0,0 @@
2335 -a
2324 -a
2336 diff -r 5918b8d165d1 -r 17d952250a9d e
2325 diff -r 5918b8d165d1 -r 17d952250a9d e
2337 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2326 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2338 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2327 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2339 @@ -0,0 +1,1 @@
2328 @@ -0,0 +1,1 @@
2340 +a
2329 +a
2341 # HG changeset patch
2330 # HG changeset patch
2342 # User test
2331 # User test
2343 # Date 0 0
2332 # Date 0 0
2344 # Thu Jan 01 00:00:00 1970 +0000
2333 # Thu Jan 01 00:00:00 1970 +0000
2345 # Node ID 99b31f1c2782e2deb1723cef08930f70fc84b37b
2334 # Node ID 99b31f1c2782e2deb1723cef08930f70fc84b37b
2346 # Parent 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2335 # Parent 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2347 add another e
2336 add another e
2348
2337
2349 diff -r 5918b8d165d1 -r 99b31f1c2782 e
2338 diff -r 5918b8d165d1 -r 99b31f1c2782 e
2350 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2339 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2351 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2340 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2352 @@ -0,0 +1,1 @@
2341 @@ -0,0 +1,1 @@
2353 +ee
2342 +ee
2354 # HG changeset patch
2343 # HG changeset patch
2355 # User test
2344 # User test
2356 # Date 0 0
2345 # Date 0 0
2357 # Thu Jan 01 00:00:00 1970 +0000
2346 # Thu Jan 01 00:00:00 1970 +0000
2358 # Node ID fc281d8ff18d999ad6497b3d27390bcd695dcc73
2347 # Node ID fc281d8ff18d999ad6497b3d27390bcd695dcc73
2359 # Parent 99b31f1c2782e2deb1723cef08930f70fc84b37b
2348 # Parent 99b31f1c2782e2deb1723cef08930f70fc84b37b
2360 # Parent 17d952250a9d03cc3dc77b199ab60e959b9b0260
2349 # Parent 17d952250a9d03cc3dc77b199ab60e959b9b0260
2361 merge 5 and 4
2350 merge 5 and 4
2362
2351
2363 diff -r 99b31f1c2782 -r fc281d8ff18d dir/b
2352 diff -r 99b31f1c2782 -r fc281d8ff18d dir/b
2364 --- a/dir/b Thu Jan 01 00:00:00 1970 +0000
2353 --- a/dir/b Thu Jan 01 00:00:00 1970 +0000
2365 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2354 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2366 @@ -1,1 +0,0 @@
2355 @@ -1,1 +0,0 @@
2367 -a
2356 -a
2368 diff -r 99b31f1c2782 -r fc281d8ff18d e
2357 diff -r 99b31f1c2782 -r fc281d8ff18d e
2369 --- a/e Thu Jan 01 00:00:00 1970 +0000
2358 --- a/e Thu Jan 01 00:00:00 1970 +0000
2370 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2359 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2371 @@ -1,1 +1,1 @@
2360 @@ -1,1 +1,1 @@
2372 -ee
2361 -ee
2373 +merge
2362 +merge
2374 # HG changeset patch
2363 # HG changeset patch
2375 # User test
2364 # User test
2376 # Date 0 0
2365 # Date 0 0
2377 # Thu Jan 01 00:00:00 1970 +0000
2366 # Thu Jan 01 00:00:00 1970 +0000
2378 # Node ID 02dbb8e276b8ab7abfd07cab50c901647e75c2dd
2367 # Node ID 02dbb8e276b8ab7abfd07cab50c901647e75c2dd
2379 # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73
2368 # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73
2380 Added tag foo-bar for changeset fc281d8ff18d
2369 Added tag foo-bar for changeset fc281d8ff18d
2381
2370
2382 diff -r fc281d8ff18d -r 02dbb8e276b8 .hgtags
2371 diff -r fc281d8ff18d -r 02dbb8e276b8 .hgtags
2383 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2372 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2384 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
2373 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
2385 @@ -0,0 +1,1 @@
2374 @@ -0,0 +1,1 @@
2386 +fc281d8ff18d999ad6497b3d27390bcd695dcc73 foo-bar
2375 +fc281d8ff18d999ad6497b3d27390bcd695dcc73 foo-bar
2387 # HG changeset patch
2376 # HG changeset patch
2388 # User test
2377 # User test
2389 # Date 0 0
2378 # Date 0 0
2390 # Thu Jan 01 00:00:00 1970 +0000
2379 # Thu Jan 01 00:00:00 1970 +0000
2391 # Node ID 24c2e826ddebf80f9dcd60b856bdb8e6715c5449
2380 # Node ID 24c2e826ddebf80f9dcd60b856bdb8e6715c5449
2392 # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73
2381 # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73
2393 add g
2382 add g
2394
2383
2395 diff -r fc281d8ff18d -r 24c2e826ddeb g
2384 diff -r fc281d8ff18d -r 24c2e826ddeb g
2396 --- a/g Thu Jan 01 00:00:00 1970 +0000
2385 --- a/g Thu Jan 01 00:00:00 1970 +0000
2397 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2386 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2398 @@ -1,2 +1,1 @@
2387 @@ -1,2 +1,1 @@
2399 -f
2388 -f
2400 -f
2389 -f
2401 +g
2390 +g
2402 $ testlog --follow -r6 -r8 -r5 -r7 -r4
2391 $ testlog --follow -r6 -r8 -r5 -r7 -r4
2403 ['6', '8', '5', '7', '4']
2392 ['6', '8', '5', '7', '4']
2404 []
2393 []
2405 <generatorsetdesc->
2394 <generatorsetdesc->
2406
2395
2407 Test --follow-first and forward --rev
2396 Test --follow-first and forward --rev
2408
2397
2409 $ testlog --follow-first -r6 -r8 -r5 -r7 -r4
2398 $ testlog --follow-first -r6 -r8 -r5 -r7 -r4
2410 ['6', '8', '5', '7', '4']
2399 ['6', '8', '5', '7', '4']
2411 []
2400 []
2412 <generatorsetdesc->
2401 <generatorsetdesc->
2413
2402
2414 Test --follow and backward --rev
2403 Test --follow and backward --rev
2415
2404
2416 $ testlog --follow -r6 -r5 -r7 -r8 -r4
2405 $ testlog --follow -r6 -r5 -r7 -r8 -r4
2417 ['6', '5', '7', '8', '4']
2406 ['6', '5', '7', '8', '4']
2418 []
2407 []
2419 <generatorsetdesc->
2408 <generatorsetdesc->
2420
2409
2421 Test --follow-first and backward --rev
2410 Test --follow-first and backward --rev
2422
2411
2423 $ testlog --follow-first -r6 -r5 -r7 -r8 -r4
2412 $ testlog --follow-first -r6 -r5 -r7 -r8 -r4
2424 ['6', '5', '7', '8', '4']
2413 ['6', '5', '7', '8', '4']
2425 []
2414 []
2426 <generatorsetdesc->
2415 <generatorsetdesc->
2427
2416
2428 Test --follow with --rev of graphlog extension
2417 Test --follow with --rev of graphlog extension
2429
2418
2430 $ hg --config extensions.graphlog= glog -qfr1
2419 $ hg --config extensions.graphlog= glog -qfr1
2431 \xe2\x97\x8b 1:216d4c92cf98 (esc)
2420 \xe2\x97\x8b 1:216d4c92cf98 (esc)
2432 \xe2\x94\x82 (esc)
2421 \xe2\x94\x82 (esc)
2433 \xe2\x97\x8b 0:f8035bb17114 (esc)
2422 \xe2\x97\x8b 0:f8035bb17114 (esc)
2434
2423
2435
2424
2436 Test subdir
2425 Test subdir
2437
2426
2438 $ hg up -q 3
2427 $ hg up -q 3
2439 $ cd dir
2428 $ cd dir
2440 $ testlog .
2429 $ testlog .
2441 []
2430 []
2442 (func
2431 (func
2443 (symbol '_matchfiles')
2432 (symbol '_matchfiles')
2444 (list
2433 (list
2445 (string 'r:')
2434 (string 'r:')
2446 (string 'd:relpath')
2435 (string 'd:relpath')
2447 (string 'p:.')))
2436 (string 'p:.')))
2448 <filteredset
2437 <filteredset
2449 <spanset- 0:9>,
2438 <spanset- 0:9>,
2450 <matchfiles patterns=['.'], include=[] exclude=[], default='relpath', rev=2147483647>>
2439 <matchfiles patterns=['.'], include=[] exclude=[], default='relpath', rev=2147483647>>
2451 $ testlog ../b
2440 $ testlog ../b
2452 []
2441 []
2453 (func
2442 (func
2454 (symbol 'filelog')
2443 (symbol 'filelog')
2455 (string '../b'))
2444 (string '../b'))
2456 <filteredset
2445 <filteredset
2457 <spanset- 0:9>, set([1])>
2446 <spanset- 0:9>, set([1])>
2458 $ testlog -f ../b
2447 $ testlog -f ../b
2459 []
2448 []
2460 []
2449 []
2461 <generatorsetdesc->
2450 <generatorsetdesc->
2462 $ cd ..
2451 $ cd ..
2463
2452
2464 Test --hidden
2453 Test --hidden
2465 (enable obsolete)
2454 (enable obsolete)
2466
2455
2467 $ cat >> $HGRCPATH << EOF
2456 $ cat >> $HGRCPATH << EOF
2468 > [experimental]
2457 > [experimental]
2469 > evolution.createmarkers=True
2458 > evolution.createmarkers=True
2470 > EOF
2459 > EOF
2471
2460
2472 $ hg debugobsolete `hg id --debug -i -r 8`
2461 $ hg debugobsolete `hg id --debug -i -r 8`
2473 obsoleted 1 changesets
2462 obsoleted 1 changesets
2474 $ testlog
2463 $ testlog
2475 []
2464 []
2476 []
2465 []
2477 <spanset- 0:9>
2466 <spanset- 0:9>
2478 $ testlog --hidden
2467 $ testlog --hidden
2479 []
2468 []
2480 []
2469 []
2481 <spanset- 0:9>
2470 <spanset- 0:9>
2482 $ hg log -G --template '{rev} {desc}\n'
2471 $ hg log -G --template '{rev} {desc}\n'
2483 \xe2\x97\x8b 7 Added tag foo-bar for changeset fc281d8ff18d (esc)
2472 \xe2\x97\x8b 7 Added tag foo-bar for changeset fc281d8ff18d (esc)
2484 \xe2\x94\x82 (esc)
2473 \xe2\x94\x82 (esc)
2485 \xe2\x97\x8b 6 merge 5 and 4 (esc)
2474 \xe2\x97\x8b 6 merge 5 and 4 (esc)
2486 \xe2\x94\x82\xe2\x95\xb2 (esc)
2475 \xe2\x94\x82\xe2\x95\xb2 (esc)
2487 \xe2\x94\x82 \xe2\x97\x8b 5 add another e (esc)
2476 \xe2\x94\x82 \xe2\x97\x8b 5 add another e (esc)
2488 \xe2\x94\x82 \xe2\x94\x82 (esc)
2477 \xe2\x94\x82 \xe2\x94\x82 (esc)
2489 \xe2\x97\x8b \xe2\x94\x82 4 mv dir/b e (esc)
2478 \xe2\x97\x8b \xe2\x94\x82 4 mv dir/b e (esc)
2490 \xe2\x94\x82\xe2\x95\xb1 (esc)
2479 \xe2\x94\x82\xe2\x95\xb1 (esc)
2491 \xe2\x97\x8d 3 mv a b; add d (esc)
2480 \xe2\x97\x8d 3 mv a b; add d (esc)
2492 \xe2\x94\x82 (esc)
2481 \xe2\x94\x82 (esc)
2493 \xe2\x97\x8b 2 mv b dir/b (esc)
2482 \xe2\x97\x8b 2 mv b dir/b (esc)
2494 \xe2\x94\x82 (esc)
2483 \xe2\x94\x82 (esc)
2495 \xe2\x97\x8b 1 copy a b (esc)
2484 \xe2\x97\x8b 1 copy a b (esc)
2496 \xe2\x94\x82 (esc)
2485 \xe2\x94\x82 (esc)
2497 \xe2\x97\x8b 0 add a (esc)
2486 \xe2\x97\x8b 0 add a (esc)
2498
2487
2499
2488
2500 A template without trailing newline should do something sane
2489 A template without trailing newline should do something sane
2501
2490
2502 $ hg log -G -r ::2 --template '{rev} {desc}'
2491 $ hg log -G -r ::2 --template '{rev} {desc}'
2503 \xe2\x97\x8b 2 mv b dir/b (esc)
2492 \xe2\x97\x8b 2 mv b dir/b (esc)
2504 \xe2\x94\x82 (esc)
2493 \xe2\x94\x82 (esc)
2505 \xe2\x97\x8b 1 copy a b (esc)
2494 \xe2\x97\x8b 1 copy a b (esc)
2506 \xe2\x94\x82 (esc)
2495 \xe2\x94\x82 (esc)
2507 \xe2\x97\x8b 0 add a (esc)
2496 \xe2\x97\x8b 0 add a (esc)
2508
2497
2509
2498
2510 Extra newlines must be preserved
2499 Extra newlines must be preserved
2511
2500
2512 $ hg log -G -r ::2 --template '\n{rev} {desc}\n\n'
2501 $ hg log -G -r ::2 --template '\n{rev} {desc}\n\n'
2513 \xe2\x97\x8b (esc)
2502 \xe2\x97\x8b (esc)
2514 \xe2\x94\x82 2 mv b dir/b (esc)
2503 \xe2\x94\x82 2 mv b dir/b (esc)
2515 \xe2\x94\x82 (esc)
2504 \xe2\x94\x82 (esc)
2516 \xe2\x97\x8b (esc)
2505 \xe2\x97\x8b (esc)
2517 \xe2\x94\x82 1 copy a b (esc)
2506 \xe2\x94\x82 1 copy a b (esc)
2518 \xe2\x94\x82 (esc)
2507 \xe2\x94\x82 (esc)
2519 \xe2\x97\x8b (esc)
2508 \xe2\x97\x8b (esc)
2520 0 add a
2509 0 add a
2521
2510
2522
2511
2523 The almost-empty template should do something sane too ...
2512 The almost-empty template should do something sane too ...
2524
2513
2525 $ hg log -G -r ::2 --template '\n'
2514 $ hg log -G -r ::2 --template '\n'
2526 \xe2\x97\x8b (esc)
2515 \xe2\x97\x8b (esc)
2527 \xe2\x94\x82 (esc)
2516 \xe2\x94\x82 (esc)
2528 \xe2\x97\x8b (esc)
2517 \xe2\x97\x8b (esc)
2529 \xe2\x94\x82 (esc)
2518 \xe2\x94\x82 (esc)
2530 \xe2\x97\x8b (esc)
2519 \xe2\x97\x8b (esc)
2531
2520
2532
2521
2533 issue3772
2522 issue3772
2534
2523
2535 $ hg log -G -r :null
2524 $ hg log -G -r :null
2536 \xe2\x97\x8b changeset: 0:f8035bb17114 (esc)
2525 \xe2\x97\x8b changeset: 0:f8035bb17114 (esc)
2537 \xe2\x94\x82 user: test (esc)
2526 \xe2\x94\x82 user: test (esc)
2538 \xe2\x94\x82 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
2527 \xe2\x94\x82 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
2539 \xe2\x94\x82 summary: add a (esc)
2528 \xe2\x94\x82 summary: add a (esc)
2540 \xe2\x94\x82 (esc)
2529 \xe2\x94\x82 (esc)
2541 \xe2\x97\x8b changeset: -1:000000000000 (esc)
2530 \xe2\x97\x8b changeset: -1:000000000000 (esc)
2542 user:
2531 user:
2543 date: Thu Jan 01 00:00:00 1970 +0000
2532 date: Thu Jan 01 00:00:00 1970 +0000
2544
2533
2545 $ hg log -G -r null:null
2534 $ hg log -G -r null:null
2546 \xe2\x97\x8b changeset: -1:000000000000 (esc)
2535 \xe2\x97\x8b changeset: -1:000000000000 (esc)
2547 user:
2536 user:
2548 date: Thu Jan 01 00:00:00 1970 +0000
2537 date: Thu Jan 01 00:00:00 1970 +0000
2549
2538
2550
2539
2551 should not draw line down to null due to the magic of fullreposet
2540 should not draw line down to null due to the magic of fullreposet
2552
2541
2553 $ hg log -G -r 'all()' | tail -6
2542 $ hg log -G -r 'all()' | tail -6
2554 \xe2\x94\x82 (esc)
2543 \xe2\x94\x82 (esc)
2555 \xe2\x97\x8b changeset: 0:f8035bb17114 (esc)
2544 \xe2\x97\x8b changeset: 0:f8035bb17114 (esc)
2556 user: test
2545 user: test
2557 date: Thu Jan 01 00:00:00 1970 +0000
2546 date: Thu Jan 01 00:00:00 1970 +0000
2558 summary: add a
2547 summary: add a
2559
2548
2560
2549
2561 $ hg log -G -r 'branch(default)' | tail -6
2550 $ hg log -G -r 'branch(default)' | tail -6
2562 \xe2\x94\x82 (esc)
2551 \xe2\x94\x82 (esc)
2563 \xe2\x97\x8b changeset: 0:f8035bb17114 (esc)
2552 \xe2\x97\x8b changeset: 0:f8035bb17114 (esc)
2564 user: test
2553 user: test
2565 date: Thu Jan 01 00:00:00 1970 +0000
2554 date: Thu Jan 01 00:00:00 1970 +0000
2566 summary: add a
2555 summary: add a
2567
2556
2568
2557
2569 working-directory revision
2558 working-directory revision
2570
2559
2571 $ hg log -G -qr '. + wdir()'
2560 $ hg log -G -qr '. + wdir()'
2572 \xe2\x97\x8b 2147483647:ffffffffffff (esc)
2561 \xe2\x97\x8b 2147483647:ffffffffffff (esc)
2573 \xe2\x94\x82 (esc)
2562 \xe2\x94\x82 (esc)
2574 \xe2\x97\x8d 3:5918b8d165d1 (esc)
2563 \xe2\x97\x8d 3:5918b8d165d1 (esc)
2575 \xe2\x94\x82 (esc)
2564 \xe2\x94\x82 (esc)
2576 \xe2\x95\xa7 (esc)
2565 \xe2\x95\xa7 (esc)
2577
2566
2578 node template with changesetprinter:
2567 node template with changesetprinter:
2579
2568
2580 $ hg log -Gqr 5:7 --config ui.graphnodetemplate='"{rev}"'
2569 $ hg log -Gqr 5:7 --config ui.graphnodetemplate='"{rev}"'
2581 7 7:02dbb8e276b8
2570 7 7:02dbb8e276b8
2582 \xe2\x94\x82 (esc)
2571 \xe2\x94\x82 (esc)
2583 6 6:fc281d8ff18d
2572 6 6:fc281d8ff18d
2584 \xe2\x94\x82\xe2\x95\xb2 (esc)
2573 \xe2\x94\x82\xe2\x95\xb2 (esc)
2585 \xe2\x94\x82 \xe2\x95\xa7 (esc)
2574 \xe2\x94\x82 \xe2\x95\xa7 (esc)
2586 5 5:99b31f1c2782
2575 5 5:99b31f1c2782
2587 \xe2\x94\x82 (esc)
2576 \xe2\x94\x82 (esc)
2588 \xe2\x95\xa7 (esc)
2577 \xe2\x95\xa7 (esc)
2589
2578
2590 node template with changesettemplater (shared cache variable):
2579 node template with changesettemplater (shared cache variable):
2591
2580
2592 $ hg log -Gr 5:7 -T '{latesttag % "{rev} {tag}+{distance}"}\n' \
2581 $ hg log -Gr 5:7 -T '{latesttag % "{rev} {tag}+{distance}"}\n' \
2593 > --config ui.graphnodetemplate='{ifeq(latesttagdistance, 0, "#", graphnode)}'
2582 > --config ui.graphnodetemplate='{ifeq(latesttagdistance, 0, "#", graphnode)}'
2594 \xe2\x97\x8b 7 foo-bar+1 (esc)
2583 \xe2\x97\x8b 7 foo-bar+1 (esc)
2595 \xe2\x94\x82 (esc)
2584 \xe2\x94\x82 (esc)
2596 # 6 foo-bar+0
2585 # 6 foo-bar+0
2597 \xe2\x94\x82\xe2\x95\xb2 (esc)
2586 \xe2\x94\x82\xe2\x95\xb2 (esc)
2598 \xe2\x94\x82 \xe2\x95\xa7 (esc)
2587 \xe2\x94\x82 \xe2\x95\xa7 (esc)
2599 \xe2\x97\x8b 5 null+5 (esc)
2588 \xe2\x97\x8b 5 null+5 (esc)
2600 \xe2\x94\x82 (esc)
2589 \xe2\x94\x82 (esc)
2601 \xe2\x95\xa7 (esc)
2590 \xe2\x95\xa7 (esc)
2602
2591
2603 label() should just work in node template:
2592 label() should just work in node template:
2604
2593
2605 $ hg log -Gqr 7 --config extensions.color= --color=debug \
2594 $ hg log -Gqr 7 --config extensions.color= --color=debug \
2606 > --config ui.graphnodetemplate='{label("branch.{branch}", rev)}'
2595 > --config ui.graphnodetemplate='{label("branch.{branch}", rev)}'
2607 [branch.default\xe2\x94\x827] [log.node|7:02dbb8e276b8] (esc)
2596 [branch.default\xe2\x94\x827] [log.node|7:02dbb8e276b8] (esc)
2608 \xe2\x94\x82 (esc)
2597 \xe2\x94\x82 (esc)
2609 \xe2\x95\xa7 (esc)
2598 \xe2\x95\xa7 (esc)
2610
2599
2611 $ cd ..
2600 $ cd ..
2612
2601
2613 change graph edge styling
2602 change graph edge styling
2614
2603
2615 $ cd repo
2604 $ cd repo
2616
2605
2617 Setting HGPLAIN ignores graphmod styling:
2606 Setting HGPLAIN ignores graphmod styling:
2618
2607
2619 $ HGPLAIN=1 hg log -G -r 'file("a")' -m
2608 $ HGPLAIN=1 hg log -G -r 'file("a")' -m
2620 @ changeset: 36:08a19a744424
2609 @ changeset: 36:08a19a744424
2621 | branch: branch
2610 | branch: branch
2622 | tag: tip
2611 | tag: tip
2623 | parent: 35:9159c3644c5e
2612 | parent: 35:9159c3644c5e
2624 | parent: 35:9159c3644c5e
2613 | parent: 35:9159c3644c5e
2625 | user: test
2614 | user: test
2626 | date: Thu Jan 01 00:00:36 1970 +0000
2615 | date: Thu Jan 01 00:00:36 1970 +0000
2627 | summary: (36) buggy merge: identical parents
2616 | summary: (36) buggy merge: identical parents
2628 |
2617 |
2629 o changeset: 32:d06dffa21a31
2618 o changeset: 32:d06dffa21a31
2630 |\ parent: 27:886ed638191b
2619 |\ parent: 27:886ed638191b
2631 | | parent: 31:621d83e11f67
2620 | | parent: 31:621d83e11f67
2632 | | user: test
2621 | | user: test
2633 | | date: Thu Jan 01 00:00:32 1970 +0000
2622 | | date: Thu Jan 01 00:00:32 1970 +0000
2634 | | summary: (32) expand
2623 | | summary: (32) expand
2635 | |
2624 | |
2636 o | changeset: 31:621d83e11f67
2625 o | changeset: 31:621d83e11f67
2637 |\| parent: 21:d42a756af44d
2626 |\| parent: 21:d42a756af44d
2638 | | parent: 30:6e11cd4b648f
2627 | | parent: 30:6e11cd4b648f
2639 | | user: test
2628 | | user: test
2640 | | date: Thu Jan 01 00:00:31 1970 +0000
2629 | | date: Thu Jan 01 00:00:31 1970 +0000
2641 | | summary: (31) expand
2630 | | summary: (31) expand
2642 | |
2631 | |
2643 o | changeset: 30:6e11cd4b648f
2632 o | changeset: 30:6e11cd4b648f
2644 |\ \ parent: 28:44ecd0b9ae99
2633 |\ \ parent: 28:44ecd0b9ae99
2645 | | | parent: 29:cd9bb2be7593
2634 | | | parent: 29:cd9bb2be7593
2646 | | | user: test
2635 | | | user: test
2647 | | | date: Thu Jan 01 00:00:30 1970 +0000
2636 | | | date: Thu Jan 01 00:00:30 1970 +0000
2648 | | | summary: (30) expand
2637 | | | summary: (30) expand
2649 | | |
2638 | | |
2650 o | | changeset: 28:44ecd0b9ae99
2639 o | | changeset: 28:44ecd0b9ae99
2651 |\ \ \ parent: 1:6db2ef61d156
2640 |\ \ \ parent: 1:6db2ef61d156
2652 | | | | parent: 26:7f25b6c2f0b9
2641 | | | | parent: 26:7f25b6c2f0b9
2653 | | | | user: test
2642 | | | | user: test
2654 | | | | date: Thu Jan 01 00:00:28 1970 +0000
2643 | | | | date: Thu Jan 01 00:00:28 1970 +0000
2655 | | | | summary: (28) merge zero known
2644 | | | | summary: (28) merge zero known
2656 | | | |
2645 | | | |
2657 o | | | changeset: 26:7f25b6c2f0b9
2646 o | | | changeset: 26:7f25b6c2f0b9
2658 |\ \ \ \ parent: 18:1aa84d96232a
2647 |\ \ \ \ parent: 18:1aa84d96232a
2659 | | | | | parent: 25:91da8ed57247
2648 | | | | | parent: 25:91da8ed57247
2660 | | | | | user: test
2649 | | | | | user: test
2661 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
2650 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
2662 | | | | | summary: (26) merge one known; far right
2651 | | | | | summary: (26) merge one known; far right
2663 | | | | |
2652 | | | | |
2664 | o-----+ changeset: 25:91da8ed57247
2653 | o-----+ changeset: 25:91da8ed57247
2665 | | | | | parent: 21:d42a756af44d
2654 | | | | | parent: 21:d42a756af44d
2666 | | | | | parent: 24:a9c19a3d96b7
2655 | | | | | parent: 24:a9c19a3d96b7
2667 | | | | | user: test
2656 | | | | | user: test
2668 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
2657 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
2669 | | | | | summary: (25) merge one known; far left
2658 | | | | | summary: (25) merge one known; far left
2670 | | | | |
2659 | | | | |
2671 | o | | | changeset: 24:a9c19a3d96b7
2660 | o | | | changeset: 24:a9c19a3d96b7
2672 | |\ \ \ \ parent: 0:e6eb3150255d
2661 | |\ \ \ \ parent: 0:e6eb3150255d
2673 | | | | | | parent: 23:a01cddf0766d
2662 | | | | | | parent: 23:a01cddf0766d
2674 | | | | | | user: test
2663 | | | | | | user: test
2675 | | | | | | date: Thu Jan 01 00:00:24 1970 +0000
2664 | | | | | | date: Thu Jan 01 00:00:24 1970 +0000
2676 | | | | | | summary: (24) merge one known; immediate right
2665 | | | | | | summary: (24) merge one known; immediate right
2677 | | | | | |
2666 | | | | | |
2678 | o---+ | | changeset: 23:a01cddf0766d
2667 | o---+ | | changeset: 23:a01cddf0766d
2679 | | | | | | parent: 1:6db2ef61d156
2668 | | | | | | parent: 1:6db2ef61d156
2680 | | | | | | parent: 22:e0d9cccacb5d
2669 | | | | | | parent: 22:e0d9cccacb5d
2681 | | | | | | user: test
2670 | | | | | | user: test
2682 | | | | | | date: Thu Jan 01 00:00:23 1970 +0000
2671 | | | | | | date: Thu Jan 01 00:00:23 1970 +0000
2683 | | | | | | summary: (23) merge one known; immediate left
2672 | | | | | | summary: (23) merge one known; immediate left
2684 | | | | | |
2673 | | | | | |
2685 | o-------+ changeset: 22:e0d9cccacb5d
2674 | o-------+ changeset: 22:e0d9cccacb5d
2686 | | | | | | parent: 18:1aa84d96232a
2675 | | | | | | parent: 18:1aa84d96232a
2687 |/ / / / / parent: 21:d42a756af44d
2676 |/ / / / / parent: 21:d42a756af44d
2688 | | | | | user: test
2677 | | | | | user: test
2689 | | | | | date: Thu Jan 01 00:00:22 1970 +0000
2678 | | | | | date: Thu Jan 01 00:00:22 1970 +0000
2690 | | | | | summary: (22) merge two known; one far left, one far right
2679 | | | | | summary: (22) merge two known; one far left, one far right
2691 | | | | |
2680 | | | | |
2692 | | | | o changeset: 21:d42a756af44d
2681 | | | | o changeset: 21:d42a756af44d
2693 | | | | |\ parent: 19:31ddc2c1573b
2682 | | | | |\ parent: 19:31ddc2c1573b
2694 | | | | | | parent: 20:d30ed6450e32
2683 | | | | | | parent: 20:d30ed6450e32
2695 | | | | | | user: test
2684 | | | | | | user: test
2696 | | | | | | date: Thu Jan 01 00:00:21 1970 +0000
2685 | | | | | | date: Thu Jan 01 00:00:21 1970 +0000
2697 | | | | | | summary: (21) expand
2686 | | | | | | summary: (21) expand
2698 | | | | | |
2687 | | | | | |
2699 +-+-------o changeset: 20:d30ed6450e32
2688 +-+-------o changeset: 20:d30ed6450e32
2700 | | | | | parent: 0:e6eb3150255d
2689 | | | | | parent: 0:e6eb3150255d
2701 | | | | | parent: 18:1aa84d96232a
2690 | | | | | parent: 18:1aa84d96232a
2702 | | | | | user: test
2691 | | | | | user: test
2703 | | | | | date: Thu Jan 01 00:00:20 1970 +0000
2692 | | | | | date: Thu Jan 01 00:00:20 1970 +0000
2704 | | | | | summary: (20) merge two known; two far right
2693 | | | | | summary: (20) merge two known; two far right
2705 | | | | |
2694 | | | | |
2706 | | | | o changeset: 19:31ddc2c1573b
2695 | | | | o changeset: 19:31ddc2c1573b
2707 | | | | |\ parent: 15:1dda3f72782d
2696 | | | | |\ parent: 15:1dda3f72782d
2708 | | | | | | parent: 17:44765d7c06e0
2697 | | | | | | parent: 17:44765d7c06e0
2709 | | | | | | user: test
2698 | | | | | | user: test
2710 | | | | | | date: Thu Jan 01 00:00:19 1970 +0000
2699 | | | | | | date: Thu Jan 01 00:00:19 1970 +0000
2711 | | | | | | summary: (19) expand
2700 | | | | | | summary: (19) expand
2712 | | | | | |
2701 | | | | | |
2713 o---+---+ | changeset: 18:1aa84d96232a
2702 o---+---+ | changeset: 18:1aa84d96232a
2714 | | | | | parent: 1:6db2ef61d156
2703 | | | | | parent: 1:6db2ef61d156
2715 / / / / / parent: 15:1dda3f72782d
2704 / / / / / parent: 15:1dda3f72782d
2716 | | | | | user: test
2705 | | | | | user: test
2717 | | | | | date: Thu Jan 01 00:00:18 1970 +0000
2706 | | | | | date: Thu Jan 01 00:00:18 1970 +0000
2718 | | | | | summary: (18) merge two known; two far left
2707 | | | | | summary: (18) merge two known; two far left
2719 | | | | |
2708 | | | | |
2720 | | | | o changeset: 17:44765d7c06e0
2709 | | | | o changeset: 17:44765d7c06e0
2721 | | | | |\ parent: 12:86b91144a6e9
2710 | | | | |\ parent: 12:86b91144a6e9
2722 | | | | | | parent: 16:3677d192927d
2711 | | | | | | parent: 16:3677d192927d
2723 | | | | | | user: test
2712 | | | | | | user: test
2724 | | | | | | date: Thu Jan 01 00:00:17 1970 +0000
2713 | | | | | | date: Thu Jan 01 00:00:17 1970 +0000
2725 | | | | | | summary: (17) expand
2714 | | | | | | summary: (17) expand
2726 | | | | | |
2715 | | | | | |
2727 +-+-------o changeset: 16:3677d192927d
2716 +-+-------o changeset: 16:3677d192927d
2728 | | | | | parent: 0:e6eb3150255d
2717 | | | | | parent: 0:e6eb3150255d
2729 | | | | | parent: 1:6db2ef61d156
2718 | | | | | parent: 1:6db2ef61d156
2730 | | | | | user: test
2719 | | | | | user: test
2731 | | | | | date: Thu Jan 01 00:00:16 1970 +0000
2720 | | | | | date: Thu Jan 01 00:00:16 1970 +0000
2732 | | | | | summary: (16) merge two known; one immediate right, one near right
2721 | | | | | summary: (16) merge two known; one immediate right, one near right
2733 | | | | |
2722 | | | | |
2734 | | | o | changeset: 15:1dda3f72782d
2723 | | | o | changeset: 15:1dda3f72782d
2735 | | | |\ \ parent: 13:22d8966a97e3
2724 | | | |\ \ parent: 13:22d8966a97e3
2736 | | | | | | parent: 14:8eac370358ef
2725 | | | | | | parent: 14:8eac370358ef
2737 | | | | | | user: test
2726 | | | | | | user: test
2738 | | | | | | date: Thu Jan 01 00:00:15 1970 +0000
2727 | | | | | | date: Thu Jan 01 00:00:15 1970 +0000
2739 | | | | | | summary: (15) expand
2728 | | | | | | summary: (15) expand
2740 | | | | | |
2729 | | | | | |
2741 +-------o | changeset: 14:8eac370358ef
2730 +-------o | changeset: 14:8eac370358ef
2742 | | | | |/ parent: 0:e6eb3150255d
2731 | | | | |/ parent: 0:e6eb3150255d
2743 | | | | | parent: 12:86b91144a6e9
2732 | | | | | parent: 12:86b91144a6e9
2744 | | | | | user: test
2733 | | | | | user: test
2745 | | | | | date: Thu Jan 01 00:00:14 1970 +0000
2734 | | | | | date: Thu Jan 01 00:00:14 1970 +0000
2746 | | | | | summary: (14) merge two known; one immediate right, one far right
2735 | | | | | summary: (14) merge two known; one immediate right, one far right
2747 | | | | |
2736 | | | | |
2748 | | | o | changeset: 13:22d8966a97e3
2737 | | | o | changeset: 13:22d8966a97e3
2749 | | | |\ \ parent: 9:7010c0af0a35
2738 | | | |\ \ parent: 9:7010c0af0a35
2750 | | | | | | parent: 11:832d76e6bdf2
2739 | | | | | | parent: 11:832d76e6bdf2
2751 | | | | | | user: test
2740 | | | | | | user: test
2752 | | | | | | date: Thu Jan 01 00:00:13 1970 +0000
2741 | | | | | | date: Thu Jan 01 00:00:13 1970 +0000
2753 | | | | | | summary: (13) expand
2742 | | | | | | summary: (13) expand
2754 | | | | | |
2743 | | | | | |
2755 | +---+---o changeset: 12:86b91144a6e9
2744 | +---+---o changeset: 12:86b91144a6e9
2756 | | | | | parent: 1:6db2ef61d156
2745 | | | | | parent: 1:6db2ef61d156
2757 | | | | | parent: 9:7010c0af0a35
2746 | | | | | parent: 9:7010c0af0a35
2758 | | | | | user: test
2747 | | | | | user: test
2759 | | | | | date: Thu Jan 01 00:00:12 1970 +0000
2748 | | | | | date: Thu Jan 01 00:00:12 1970 +0000
2760 | | | | | summary: (12) merge two known; one immediate right, one far left
2749 | | | | | summary: (12) merge two known; one immediate right, one far left
2761 | | | | |
2750 | | | | |
2762 | | | | o changeset: 11:832d76e6bdf2
2751 | | | | o changeset: 11:832d76e6bdf2
2763 | | | | |\ parent: 6:b105a072e251
2752 | | | | |\ parent: 6:b105a072e251
2764 | | | | | | parent: 10:74c64d036d72
2753 | | | | | | parent: 10:74c64d036d72
2765 | | | | | | user: test
2754 | | | | | | user: test
2766 | | | | | | date: Thu Jan 01 00:00:11 1970 +0000
2755 | | | | | | date: Thu Jan 01 00:00:11 1970 +0000
2767 | | | | | | summary: (11) expand
2756 | | | | | | summary: (11) expand
2768 | | | | | |
2757 | | | | | |
2769 +---------o changeset: 10:74c64d036d72
2758 +---------o changeset: 10:74c64d036d72
2770 | | | | |/ parent: 0:e6eb3150255d
2759 | | | | |/ parent: 0:e6eb3150255d
2771 | | | | | parent: 6:b105a072e251
2760 | | | | | parent: 6:b105a072e251
2772 | | | | | user: test
2761 | | | | | user: test
2773 | | | | | date: Thu Jan 01 00:00:10 1970 +0000
2762 | | | | | date: Thu Jan 01 00:00:10 1970 +0000
2774 | | | | | summary: (10) merge two known; one immediate left, one near right
2763 | | | | | summary: (10) merge two known; one immediate left, one near right
2775 | | | | |
2764 | | | | |
2776 | | | o | changeset: 9:7010c0af0a35
2765 | | | o | changeset: 9:7010c0af0a35
2777 | | | |\ \ parent: 7:b632bb1b1224
2766 | | | |\ \ parent: 7:b632bb1b1224
2778 | | | | | | parent: 8:7a0b11f71937
2767 | | | | | | parent: 8:7a0b11f71937
2779 | | | | | | user: test
2768 | | | | | | user: test
2780 | | | | | | date: Thu Jan 01 00:00:09 1970 +0000
2769 | | | | | | date: Thu Jan 01 00:00:09 1970 +0000
2781 | | | | | | summary: (9) expand
2770 | | | | | | summary: (9) expand
2782 | | | | | |
2771 | | | | | |
2783 +-------o | changeset: 8:7a0b11f71937
2772 +-------o | changeset: 8:7a0b11f71937
2784 | | | |/ / parent: 0:e6eb3150255d
2773 | | | |/ / parent: 0:e6eb3150255d
2785 | | | | | parent: 7:b632bb1b1224
2774 | | | | | parent: 7:b632bb1b1224
2786 | | | | | user: test
2775 | | | | | user: test
2787 | | | | | date: Thu Jan 01 00:00:08 1970 +0000
2776 | | | | | date: Thu Jan 01 00:00:08 1970 +0000
2788 | | | | | summary: (8) merge two known; one immediate left, one far right
2777 | | | | | summary: (8) merge two known; one immediate left, one far right
2789 | | | | |
2778 | | | | |
2790 | | | o | changeset: 7:b632bb1b1224
2779 | | | o | changeset: 7:b632bb1b1224
2791 | | | |\ \ parent: 2:3d9a33b8d1e1
2780 | | | |\ \ parent: 2:3d9a33b8d1e1
2792 | | | | | | parent: 5:4409d547b708
2781 | | | | | | parent: 5:4409d547b708
2793 | | | | | | user: test
2782 | | | | | | user: test
2794 | | | | | | date: Thu Jan 01 00:00:07 1970 +0000
2783 | | | | | | date: Thu Jan 01 00:00:07 1970 +0000
2795 | | | | | | summary: (7) expand
2784 | | | | | | summary: (7) expand
2796 | | | | | |
2785 | | | | | |
2797 | | | +---o changeset: 6:b105a072e251
2786 | | | +---o changeset: 6:b105a072e251
2798 | | | | |/ parent: 2:3d9a33b8d1e1
2787 | | | | |/ parent: 2:3d9a33b8d1e1
2799 | | | | | parent: 5:4409d547b708
2788 | | | | | parent: 5:4409d547b708
2800 | | | | | user: test
2789 | | | | | user: test
2801 | | | | | date: Thu Jan 01 00:00:06 1970 +0000
2790 | | | | | date: Thu Jan 01 00:00:06 1970 +0000
2802 | | | | | summary: (6) merge two known; one immediate left, one far left
2791 | | | | | summary: (6) merge two known; one immediate left, one far left
2803 | | | | |
2792 | | | | |
2804 | | | o | changeset: 5:4409d547b708
2793 | | | o | changeset: 5:4409d547b708
2805 | | | |\ \ parent: 3:27eef8ed80b4
2794 | | | |\ \ parent: 3:27eef8ed80b4
2806 | | | | | | parent: 4:26a8bac39d9f
2795 | | | | | | parent: 4:26a8bac39d9f
2807 | | | | | | user: test
2796 | | | | | | user: test
2808 | | | | | | date: Thu Jan 01 00:00:05 1970 +0000
2797 | | | | | | date: Thu Jan 01 00:00:05 1970 +0000
2809 | | | | | | summary: (5) expand
2798 | | | | | | summary: (5) expand
2810 | | | | | |
2799 | | | | | |
2811 | +---o | | changeset: 4:26a8bac39d9f
2800 | +---o | | changeset: 4:26a8bac39d9f
2812 | | | |/ / parent: 1:6db2ef61d156
2801 | | | |/ / parent: 1:6db2ef61d156
2813 | | | | | parent: 3:27eef8ed80b4
2802 | | | | | parent: 3:27eef8ed80b4
2814 | | | | | user: test
2803 | | | | | user: test
2815 | | | | | date: Thu Jan 01 00:00:04 1970 +0000
2804 | | | | | date: Thu Jan 01 00:00:04 1970 +0000
2816 | | | | | summary: (4) merge two known; one immediate left, one immediate right
2805 | | | | | summary: (4) merge two known; one immediate left, one immediate right
2817 | | | | |
2806 | | | | |
2818
2807
2819 .. unless HGPLAINEXCEPT=graph is set:
2808 .. unless HGPLAINEXCEPT=graph is set:
2820
2809
2821 $ HGPLAIN=1 HGPLAINEXCEPT=graph hg log -G -r 'file("a")' -m
2810 $ HGPLAIN=1 HGPLAINEXCEPT=graph hg log -G -r 'file("a")' -m
2822 \xe2\x97\x8d changeset: 36:08a19a744424 (esc)
2811 \xe2\x97\x8d changeset: 36:08a19a744424 (esc)
2823 \xe2\x94\x86 branch: branch (esc)
2812 \xe2\x94\x86 branch: branch (esc)
2824 \xe2\x94\x86 tag: tip (esc)
2813 \xe2\x94\x86 tag: tip (esc)
2825 \xe2\x94\x86 parent: 35:9159c3644c5e (esc)
2814 \xe2\x94\x86 parent: 35:9159c3644c5e (esc)
2826 \xe2\x94\x86 parent: 35:9159c3644c5e (esc)
2815 \xe2\x94\x86 parent: 35:9159c3644c5e (esc)
2827 \xe2\x94\x86 user: test (esc)
2816 \xe2\x94\x86 user: test (esc)
2828 \xe2\x94\x86 date: Thu Jan 01 00:00:36 1970 +0000 (esc)
2817 \xe2\x94\x86 date: Thu Jan 01 00:00:36 1970 +0000 (esc)
2829 \xe2\x94\x86 summary: (36) buggy merge: identical parents (esc)
2818 \xe2\x94\x86 summary: (36) buggy merge: identical parents (esc)
2830 \xe2\x94\x86 (esc)
2819 \xe2\x94\x86 (esc)
2831 \xe2\x97\x8b changeset: 32:d06dffa21a31 (esc)
2820 \xe2\x97\x8b changeset: 32:d06dffa21a31 (esc)
2832 \xe2\x94\x82\xe2\x95\xb2 parent: 27:886ed638191b (esc)
2821 \xe2\x94\x82\xe2\x95\xb2 parent: 27:886ed638191b (esc)
2833 \xe2\x94\x82 \xe2\x94\x86 parent: 31:621d83e11f67 (esc)
2822 \xe2\x94\x82 \xe2\x94\x86 parent: 31:621d83e11f67 (esc)
2834 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2823 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2835 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:32 1970 +0000 (esc)
2824 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:32 1970 +0000 (esc)
2836 \xe2\x94\x82 \xe2\x94\x86 summary: (32) expand (esc)
2825 \xe2\x94\x82 \xe2\x94\x86 summary: (32) expand (esc)
2837 \xe2\x94\x82 \xe2\x94\x86 (esc)
2826 \xe2\x94\x82 \xe2\x94\x86 (esc)
2838 \xe2\x97\x8b \xe2\x94\x86 changeset: 31:621d83e11f67 (esc)
2827 \xe2\x97\x8b \xe2\x94\x86 changeset: 31:621d83e11f67 (esc)
2839 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x86 parent: 21:d42a756af44d (esc)
2828 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x86 parent: 21:d42a756af44d (esc)
2840 \xe2\x94\x82 \xe2\x94\x86 parent: 30:6e11cd4b648f (esc)
2829 \xe2\x94\x82 \xe2\x94\x86 parent: 30:6e11cd4b648f (esc)
2841 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2830 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2842 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:31 1970 +0000 (esc)
2831 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:31 1970 +0000 (esc)
2843 \xe2\x94\x82 \xe2\x94\x86 summary: (31) expand (esc)
2832 \xe2\x94\x82 \xe2\x94\x86 summary: (31) expand (esc)
2844 \xe2\x94\x82 \xe2\x94\x86 (esc)
2833 \xe2\x94\x82 \xe2\x94\x86 (esc)
2845 \xe2\x97\x8b \xe2\x94\x86 changeset: 30:6e11cd4b648f (esc)
2834 \xe2\x97\x8b \xe2\x94\x86 changeset: 30:6e11cd4b648f (esc)
2846 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 28:44ecd0b9ae99 (esc)
2835 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 28:44ecd0b9ae99 (esc)
2847 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x86 parent: 29:cd9bb2be7593 (esc)
2836 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x86 parent: 29:cd9bb2be7593 (esc)
2848 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2837 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2849 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:30 1970 +0000 (esc)
2838 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:30 1970 +0000 (esc)
2850 \xe2\x94\x82 \xe2\x94\x86 summary: (30) expand (esc)
2839 \xe2\x94\x82 \xe2\x94\x86 summary: (30) expand (esc)
2851 \xe2\x94\x82 \xe2\x95\xb1 (esc)
2840 \xe2\x94\x82 \xe2\x95\xb1 (esc)
2852 \xe2\x97\x8b \xe2\x94\x86 changeset: 28:44ecd0b9ae99 (esc)
2841 \xe2\x97\x8b \xe2\x94\x86 changeset: 28:44ecd0b9ae99 (esc)
2853 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
2842 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
2854 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x86 parent: 26:7f25b6c2f0b9 (esc)
2843 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x86 parent: 26:7f25b6c2f0b9 (esc)
2855 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2844 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2856 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:28 1970 +0000 (esc)
2845 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:28 1970 +0000 (esc)
2857 \xe2\x94\x82 \xe2\x94\x86 summary: (28) merge zero known (esc)
2846 \xe2\x94\x82 \xe2\x94\x86 summary: (28) merge zero known (esc)
2858 \xe2\x94\x82 \xe2\x95\xb1 (esc)
2847 \xe2\x94\x82 \xe2\x95\xb1 (esc)
2859 \xe2\x97\x8b \xe2\x94\x86 changeset: 26:7f25b6c2f0b9 (esc)
2848 \xe2\x97\x8b \xe2\x94\x86 changeset: 26:7f25b6c2f0b9 (esc)
2860 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 18:1aa84d96232a (esc)
2849 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 18:1aa84d96232a (esc)
2861 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 parent: 25:91da8ed57247 (esc)
2850 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 parent: 25:91da8ed57247 (esc)
2862 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2851 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2863 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:26 1970 +0000 (esc)
2852 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:26 1970 +0000 (esc)
2864 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 summary: (26) merge one known; far right (esc)
2853 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 summary: (26) merge one known; far right (esc)
2865 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 (esc)
2854 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 (esc)
2866 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x86 changeset: 25:91da8ed57247 (esc)
2855 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x86 changeset: 25:91da8ed57247 (esc)
2867 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x86 parent: 21:d42a756af44d (esc)
2856 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x86 parent: 21:d42a756af44d (esc)
2868 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 parent: 24:a9c19a3d96b7 (esc)
2857 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 parent: 24:a9c19a3d96b7 (esc)
2869 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2858 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2870 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:25 1970 +0000 (esc)
2859 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:25 1970 +0000 (esc)
2871 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 summary: (25) merge one known; far left (esc)
2860 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 summary: (25) merge one known; far left (esc)
2872 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 (esc)
2861 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 (esc)
2873 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x86 changeset: 24:a9c19a3d96b7 (esc)
2862 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x86 changeset: 24:a9c19a3d96b7 (esc)
2874 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 0:e6eb3150255d (esc)
2863 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 0:e6eb3150255d (esc)
2875 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x86 parent: 23:a01cddf0766d (esc)
2864 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x86 parent: 23:a01cddf0766d (esc)
2876 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2865 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2877 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:24 1970 +0000 (esc)
2866 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:24 1970 +0000 (esc)
2878 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 summary: (24) merge one known; immediate right (esc)
2867 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 summary: (24) merge one known; immediate right (esc)
2879 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xb1 (esc)
2868 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xb1 (esc)
2880 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x86 changeset: 23:a01cddf0766d (esc)
2869 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x86 changeset: 23:a01cddf0766d (esc)
2881 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
2870 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
2882 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x86 parent: 22:e0d9cccacb5d (esc)
2871 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x86 parent: 22:e0d9cccacb5d (esc)
2883 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2872 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2884 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:23 1970 +0000 (esc)
2873 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:23 1970 +0000 (esc)
2885 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 summary: (23) merge one known; immediate left (esc)
2874 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x86 summary: (23) merge one known; immediate left (esc)
2886 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xb1 (esc)
2875 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xb1 (esc)
2887 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x86 changeset: 22:e0d9cccacb5d (esc)
2876 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x86 changeset: 22:e0d9cccacb5d (esc)
2888 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x86\xe2\x95\xb1 parent: 18:1aa84d96232a (esc)
2877 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x86\xe2\x95\xb1 parent: 18:1aa84d96232a (esc)
2889 \xe2\x94\x82 \xe2\x94\x86 parent: 21:d42a756af44d (esc)
2878 \xe2\x94\x82 \xe2\x94\x86 parent: 21:d42a756af44d (esc)
2890 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2879 \xe2\x94\x82 \xe2\x94\x86 user: test (esc)
2891 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:22 1970 +0000 (esc)
2880 \xe2\x94\x82 \xe2\x94\x86 date: Thu Jan 01 00:00:22 1970 +0000 (esc)
2892 \xe2\x94\x82 \xe2\x94\x86 summary: (22) merge two known; one far left, one far right (esc)
2881 \xe2\x94\x82 \xe2\x94\x86 summary: (22) merge two known; one far left, one far right (esc)
2893 \xe2\x94\x82 \xe2\x94\x86 (esc)
2882 \xe2\x94\x82 \xe2\x94\x86 (esc)
2894 \xe2\x94\x82 \xe2\x97\x8b changeset: 21:d42a756af44d (esc)
2883 \xe2\x94\x82 \xe2\x97\x8b changeset: 21:d42a756af44d (esc)
2895 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 19:31ddc2c1573b (esc)
2884 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 19:31ddc2c1573b (esc)
2896 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 20:d30ed6450e32 (esc)
2885 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 20:d30ed6450e32 (esc)
2897 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2886 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2898 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:21 1970 +0000 (esc)
2887 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:21 1970 +0000 (esc)
2899 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (21) expand (esc)
2888 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (21) expand (esc)
2900 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
2889 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
2901 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b changeset: 20:d30ed6450e32 (esc)
2890 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b changeset: 20:d30ed6450e32 (esc)
2902 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
2891 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
2903 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 parent: 18:1aa84d96232a (esc)
2892 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 parent: 18:1aa84d96232a (esc)
2904 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2893 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2905 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:20 1970 +0000 (esc)
2894 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:20 1970 +0000 (esc)
2906 \xe2\x94\x82 \xe2\x94\x82 summary: (20) merge two known; two far right (esc)
2895 \xe2\x94\x82 \xe2\x94\x82 summary: (20) merge two known; two far right (esc)
2907 \xe2\x94\x82 \xe2\x94\x82 (esc)
2896 \xe2\x94\x82 \xe2\x94\x82 (esc)
2908 \xe2\x94\x82 \xe2\x97\x8b changeset: 19:31ddc2c1573b (esc)
2897 \xe2\x94\x82 \xe2\x97\x8b changeset: 19:31ddc2c1573b (esc)
2909 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 15:1dda3f72782d (esc)
2898 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 15:1dda3f72782d (esc)
2910 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 17:44765d7c06e0 (esc)
2899 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 17:44765d7c06e0 (esc)
2911 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2900 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2912 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:19 1970 +0000 (esc)
2901 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:19 1970 +0000 (esc)
2913 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (19) expand (esc)
2902 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (19) expand (esc)
2914 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
2903 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
2915 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 18:1aa84d96232a (esc)
2904 \xe2\x97\x8b \xe2\x94\x82 \xe2\x94\x82 changeset: 18:1aa84d96232a (esc)
2916 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
2905 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
2917 \xe2\x95\xa7 \xe2\x94\x82 \xe2\x94\x82 parent: 15:1dda3f72782d (esc)
2906 \xe2\x95\xa7 \xe2\x94\x82 \xe2\x94\x82 parent: 15:1dda3f72782d (esc)
2918 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2907 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2919 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:18 1970 +0000 (esc)
2908 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:18 1970 +0000 (esc)
2920 \xe2\x94\x82 \xe2\x94\x82 summary: (18) merge two known; two far left (esc)
2909 \xe2\x94\x82 \xe2\x94\x82 summary: (18) merge two known; two far left (esc)
2921 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
2910 \xe2\x95\xb1 \xe2\x95\xb1 (esc)
2922 \xe2\x94\x82 \xe2\x97\x8b changeset: 17:44765d7c06e0 (esc)
2911 \xe2\x94\x82 \xe2\x97\x8b changeset: 17:44765d7c06e0 (esc)
2923 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 12:86b91144a6e9 (esc)
2912 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 12:86b91144a6e9 (esc)
2924 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 16:3677d192927d (esc)
2913 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 16:3677d192927d (esc)
2925 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2914 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2926 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:17 1970 +0000 (esc)
2915 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:17 1970 +0000 (esc)
2927 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (17) expand (esc)
2916 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (17) expand (esc)
2928 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
2917 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
2929 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b changeset: 16:3677d192927d (esc)
2918 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b changeset: 16:3677d192927d (esc)
2930 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 0:e6eb3150255d (esc)
2919 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 0:e6eb3150255d (esc)
2931 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x95\xa7 parent: 1:6db2ef61d156 (esc)
2920 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x95\xa7 parent: 1:6db2ef61d156 (esc)
2932 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2921 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2933 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:16 1970 +0000 (esc)
2922 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:16 1970 +0000 (esc)
2934 \xe2\x94\x82 \xe2\x94\x82 summary: (16) merge two known; one immediate right, one near right (esc)
2923 \xe2\x94\x82 \xe2\x94\x82 summary: (16) merge two known; one immediate right, one near right (esc)
2935 \xe2\x94\x82 \xe2\x94\x82 (esc)
2924 \xe2\x94\x82 \xe2\x94\x82 (esc)
2936 \xe2\x97\x8b \xe2\x94\x82 changeset: 15:1dda3f72782d (esc)
2925 \xe2\x97\x8b \xe2\x94\x82 changeset: 15:1dda3f72782d (esc)
2937 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 13:22d8966a97e3 (esc)
2926 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 13:22d8966a97e3 (esc)
2938 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 14:8eac370358ef (esc)
2927 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 14:8eac370358ef (esc)
2939 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2928 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2940 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:15 1970 +0000 (esc)
2929 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:15 1970 +0000 (esc)
2941 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (15) expand (esc)
2930 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (15) expand (esc)
2942 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
2931 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
2943 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 14:8eac370358ef (esc)
2932 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 14:8eac370358ef (esc)
2944 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x82 parent: 0:e6eb3150255d (esc)
2933 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2\xe2\x94\x82 parent: 0:e6eb3150255d (esc)
2945 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x82 parent: 12:86b91144a6e9 (esc)
2934 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x82 parent: 12:86b91144a6e9 (esc)
2946 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2935 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2947 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:14 1970 +0000 (esc)
2936 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:14 1970 +0000 (esc)
2948 \xe2\x94\x82 \xe2\x94\x82 summary: (14) merge two known; one immediate right, one far right (esc)
2937 \xe2\x94\x82 \xe2\x94\x82 summary: (14) merge two known; one immediate right, one far right (esc)
2949 \xe2\x94\x82 \xe2\x95\xb1 (esc)
2938 \xe2\x94\x82 \xe2\x95\xb1 (esc)
2950 \xe2\x97\x8b \xe2\x94\x82 changeset: 13:22d8966a97e3 (esc)
2939 \xe2\x97\x8b \xe2\x94\x82 changeset: 13:22d8966a97e3 (esc)
2951 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 9:7010c0af0a35 (esc)
2940 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 9:7010c0af0a35 (esc)
2952 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 11:832d76e6bdf2 (esc)
2941 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 11:832d76e6bdf2 (esc)
2953 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2942 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2954 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:13 1970 +0000 (esc)
2943 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:13 1970 +0000 (esc)
2955 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (13) expand (esc)
2944 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (13) expand (esc)
2956 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
2945 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
2957 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b changeset: 12:86b91144a6e9 (esc)
2946 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x97\x8b changeset: 12:86b91144a6e9 (esc)
2958 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
2947 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 1:6db2ef61d156 (esc)
2959 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 parent: 9:7010c0af0a35 (esc)
2948 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 parent: 9:7010c0af0a35 (esc)
2960 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2949 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2961 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:12 1970 +0000 (esc)
2950 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:12 1970 +0000 (esc)
2962 \xe2\x94\x82 \xe2\x94\x82 summary: (12) merge two known; one immediate right, one far left (esc)
2951 \xe2\x94\x82 \xe2\x94\x82 summary: (12) merge two known; one immediate right, one far left (esc)
2963 \xe2\x94\x82 \xe2\x94\x82 (esc)
2952 \xe2\x94\x82 \xe2\x94\x82 (esc)
2964 \xe2\x94\x82 \xe2\x97\x8b changeset: 11:832d76e6bdf2 (esc)
2953 \xe2\x94\x82 \xe2\x97\x8b changeset: 11:832d76e6bdf2 (esc)
2965 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 6:b105a072e251 (esc)
2954 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb2 parent: 6:b105a072e251 (esc)
2966 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 10:74c64d036d72 (esc)
2955 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 10:74c64d036d72 (esc)
2967 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2956 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2968 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:11 1970 +0000 (esc)
2957 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:11 1970 +0000 (esc)
2969 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (11) expand (esc)
2958 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (11) expand (esc)
2970 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
2959 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
2971 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b changeset: 10:74c64d036d72 (esc)
2960 \xe2\x94\x82 \xe2\x94\x82 \xe2\x97\x8b changeset: 10:74c64d036d72 (esc)
2972 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 parent: 0:e6eb3150255d (esc)
2961 \xe2\x94\x82 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 parent: 0:e6eb3150255d (esc)
2973 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 parent: 6:b105a072e251 (esc)
2962 \xe2\x94\x82 \xe2\x94\x82 \xe2\x95\xa7 parent: 6:b105a072e251 (esc)
2974 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2963 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2975 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:10 1970 +0000 (esc)
2964 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:10 1970 +0000 (esc)
2976 \xe2\x94\x82 \xe2\x94\x82 summary: (10) merge two known; one immediate left, one near right (esc)
2965 \xe2\x94\x82 \xe2\x94\x82 summary: (10) merge two known; one immediate left, one near right (esc)
2977 \xe2\x94\x82 \xe2\x94\x82 (esc)
2966 \xe2\x94\x82 \xe2\x94\x82 (esc)
2978 \xe2\x97\x8b \xe2\x94\x82 changeset: 9:7010c0af0a35 (esc)
2967 \xe2\x97\x8b \xe2\x94\x82 changeset: 9:7010c0af0a35 (esc)
2979 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 7:b632bb1b1224 (esc)
2968 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 7:b632bb1b1224 (esc)
2980 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 8:7a0b11f71937 (esc)
2969 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 parent: 8:7a0b11f71937 (esc)
2981 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2970 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2982 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:09 1970 +0000 (esc)
2971 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:09 1970 +0000 (esc)
2983 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (9) expand (esc)
2972 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 summary: (9) expand (esc)
2984 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
2973 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 (esc)
2985 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 8:7a0b11f71937 (esc)
2974 \xe2\x94\x82 \xe2\x97\x8b \xe2\x94\x82 changeset: 8:7a0b11f71937 (esc)
2986 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
2975 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 \xe2\x94\x82 parent: 0:e6eb3150255d (esc)
2987 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x82 parent: 7:b632bb1b1224 (esc)
2976 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x82 parent: 7:b632bb1b1224 (esc)
2988 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2977 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2989 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:08 1970 +0000 (esc)
2978 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:08 1970 +0000 (esc)
2990 \xe2\x94\x82 \xe2\x94\x82 summary: (8) merge two known; one immediate left, one far right (esc)
2979 \xe2\x94\x82 \xe2\x94\x82 summary: (8) merge two known; one immediate left, one far right (esc)
2991 \xe2\x94\x82 \xe2\x95\xb1 (esc)
2980 \xe2\x94\x82 \xe2\x95\xb1 (esc)
2992 \xe2\x97\x8b \xe2\x94\x82 changeset: 7:b632bb1b1224 (esc)
2981 \xe2\x97\x8b \xe2\x94\x82 changeset: 7:b632bb1b1224 (esc)
2993 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 2:3d9a33b8d1e1 (esc)
2982 \xe2\x94\x82\xe2\x95\xb2 \xe2\x95\xb2 parent: 2:3d9a33b8d1e1 (esc)
2994 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x82 parent: 5:4409d547b708 (esc)
2983 \xe2\x94\x82 \xe2\x95\xa7 \xe2\x94\x82 parent: 5:4409d547b708 (esc)
2995 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2984 \xe2\x94\x82 \xe2\x94\x82 user: test (esc)
2996 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:07 1970 +0000 (esc)
2985 \xe2\x94\x82 \xe2\x94\x82 date: Thu Jan 01 00:00:07 1970 +0000 (esc)
2997 \xe2\x94\x82 \xe2\x94\x82 summary: (7) expand (esc)
2986 \xe2\x94\x82 \xe2\x94\x82 summary: (7) expand (esc)
2998 \xe2\x94\x82 \xe2\x95\xb1 (esc)
2987 \xe2\x94\x82 \xe2\x95\xb1 (esc)
2999 \xe2\x94\x82 \xe2\x97\x8b changeset: 6:b105a072e251 (esc)
2988 \xe2\x94\x82 \xe2\x97\x8b changeset: 6:b105a072e251 (esc)
3000 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 parent: 2:3d9a33b8d1e1 (esc)
2989 \xe2\x94\x82\xe2\x95\xb1\xe2\x94\x82 parent: 2:3d9a33b8d1e1 (esc)
3001 \xe2\x94\x82 \xe2\x95\xa7 parent: 5:4409d547b708 (esc)
2990 \xe2\x94\x82 \xe2\x95\xa7 parent: 5:4409d547b708 (esc)
3002 \xe2\x94\x82 user: test (esc)
2991 \xe2\x94\x82 user: test (esc)
3003 \xe2\x94\x82 date: Thu Jan 01 00:00:06 1970 +0000 (esc)
2992 \xe2\x94\x82 date: Thu Jan 01 00:00:06 1970 +0000 (esc)
3004 \xe2\x94\x82 summary: (6) merge two known; one immediate left, one far left (esc)
2993 \xe2\x94\x82 summary: (6) merge two known; one immediate left, one far left (esc)
3005 \xe2\x94\x82 (esc)
2994 \xe2\x94\x82 (esc)
3006 \xe2\x97\x8b changeset: 5:4409d547b708 (esc)
2995 \xe2\x97\x8b changeset: 5:4409d547b708 (esc)
3007 \xe2\x94\x82\xe2\x95\xb2 parent: 3:27eef8ed80b4 (esc)
2996 \xe2\x94\x82\xe2\x95\xb2 parent: 3:27eef8ed80b4 (esc)
3008 \xe2\x94\x82 \xe2\x95\xa7 parent: 4:26a8bac39d9f (esc)
2997 \xe2\x94\x82 \xe2\x95\xa7 parent: 4:26a8bac39d9f (esc)
3009 \xe2\x94\x82 user: test (esc)
2998 \xe2\x94\x82 user: test (esc)
3010 \xe2\x94\x82 date: Thu Jan 01 00:00:05 1970 +0000 (esc)
2999 \xe2\x94\x82 date: Thu Jan 01 00:00:05 1970 +0000 (esc)
3011 \xe2\x94\x82 summary: (5) expand (esc)
3000 \xe2\x94\x82 summary: (5) expand (esc)
3012 \xe2\x94\x82 (esc)
3001 \xe2\x94\x82 (esc)
3013 \xe2\x97\x8b changeset: 4:26a8bac39d9f (esc)
3002 \xe2\x97\x8b changeset: 4:26a8bac39d9f (esc)
3014 \xe2\x94\x82\xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
3003 \xe2\x94\x82\xe2\x95\xb2 parent: 1:6db2ef61d156 (esc)
3015 \xe2\x95\xa7 \xe2\x95\xa7 parent: 3:27eef8ed80b4 (esc)
3004 \xe2\x95\xa7 \xe2\x95\xa7 parent: 3:27eef8ed80b4 (esc)
3016 user: test
3005 user: test
3017 date: Thu Jan 01 00:00:04 1970 +0000
3006 date: Thu Jan 01 00:00:04 1970 +0000
3018 summary: (4) merge two known; one immediate left, one immediate right
3007 summary: (4) merge two known; one immediate left, one immediate right
3019
3008
3020 $ cd ..
3009 $ cd ..
3021 $ cd repo
3010 $ cd repo
3022
3011
3023 behavior with newlines
3012 behavior with newlines
3024
3013
3025 $ hg log -G -r ::2 -T '{rev} {desc}'
3014 $ hg log -G -r ::2 -T '{rev} {desc}'
3026 \xe2\x97\x8b 2 (2) collapse (esc)
3015 \xe2\x97\x8b 2 (2) collapse (esc)
3027 \xe2\x94\x82 (esc)
3016 \xe2\x94\x82 (esc)
3028 \xe2\x97\x8b 1 (1) collapse (esc)
3017 \xe2\x97\x8b 1 (1) collapse (esc)
3029 \xe2\x94\x82 (esc)
3018 \xe2\x94\x82 (esc)
3030 \xe2\x97\x8b 0 (0) root (esc)
3019 \xe2\x97\x8b 0 (0) root (esc)
3031
3020
3032
3021
3033 $ hg log -G -r ::2 -T '{rev} {desc}\n'
3022 $ hg log -G -r ::2 -T '{rev} {desc}\n'
3034 \xe2\x97\x8b 2 (2) collapse (esc)
3023 \xe2\x97\x8b 2 (2) collapse (esc)
3035 \xe2\x94\x82 (esc)
3024 \xe2\x94\x82 (esc)
3036 \xe2\x97\x8b 1 (1) collapse (esc)
3025 \xe2\x97\x8b 1 (1) collapse (esc)
3037 \xe2\x94\x82 (esc)
3026 \xe2\x94\x82 (esc)
3038 \xe2\x97\x8b 0 (0) root (esc)
3027 \xe2\x97\x8b 0 (0) root (esc)
3039
3028
3040
3029
3041 $ hg log -G -r ::2 -T '{rev} {desc}\n\n'
3030 $ hg log -G -r ::2 -T '{rev} {desc}\n\n'
3042 \xe2\x97\x8b 2 (2) collapse (esc)
3031 \xe2\x97\x8b 2 (2) collapse (esc)
3043 \xe2\x94\x82 (esc)
3032 \xe2\x94\x82 (esc)
3044 \xe2\x97\x8b 1 (1) collapse (esc)
3033 \xe2\x97\x8b 1 (1) collapse (esc)
3045 \xe2\x94\x82 (esc)
3034 \xe2\x94\x82 (esc)
3046 \xe2\x97\x8b 0 (0) root (esc)
3035 \xe2\x97\x8b 0 (0) root (esc)
3047
3036
3048
3037
3049 $ hg log -G -r ::2 -T '\n{rev} {desc}'
3038 $ hg log -G -r ::2 -T '\n{rev} {desc}'
3050 \xe2\x97\x8b (esc)
3039 \xe2\x97\x8b (esc)
3051 \xe2\x94\x82 2 (2) collapse (esc)
3040 \xe2\x94\x82 2 (2) collapse (esc)
3052 \xe2\x97\x8b (esc)
3041 \xe2\x97\x8b (esc)
3053 \xe2\x94\x82 1 (1) collapse (esc)
3042 \xe2\x94\x82 1 (1) collapse (esc)
3054 \xe2\x97\x8b (esc)
3043 \xe2\x97\x8b (esc)
3055 0 (0) root
3044 0 (0) root
3056
3045
3057 $ hg log -G -r ::2 -T '{rev} {desc}\n\n\n'
3046 $ hg log -G -r ::2 -T '{rev} {desc}\n\n\n'
3058 \xe2\x97\x8b 2 (2) collapse (esc)
3047 \xe2\x97\x8b 2 (2) collapse (esc)
3059 \xe2\x94\x82 (esc)
3048 \xe2\x94\x82 (esc)
3060 \xe2\x94\x82 (esc)
3049 \xe2\x94\x82 (esc)
3061 \xe2\x97\x8b 1 (1) collapse (esc)
3050 \xe2\x97\x8b 1 (1) collapse (esc)
3062 \xe2\x94\x82 (esc)
3051 \xe2\x94\x82 (esc)
3063 \xe2\x94\x82 (esc)
3052 \xe2\x94\x82 (esc)
3064 \xe2\x97\x8b 0 (0) root (esc)
3053 \xe2\x97\x8b 0 (0) root (esc)
3065
3054
3066
3055
3067 $ cd ..
3056 $ cd ..
3068
3057
3069 When inserting extra line nodes to handle more than 2 parents, ensure that
3058 When inserting extra line nodes to handle more than 2 parents, ensure that
3070 the right node styles are used (issue5174):
3059 the right node styles are used (issue5174):
3071
3060
3072 $ hg init repo-issue5174
3061 $ hg init repo-issue5174
3073 $ cd repo-issue5174
3062 $ cd repo-issue5174
3074 $ echo a > f0
3063 $ echo a > f0
3075 $ hg ci -Aqm 0
3064 $ hg ci -Aqm 0
3076 $ echo a > f1
3065 $ echo a > f1
3077 $ hg ci -Aqm 1
3066 $ hg ci -Aqm 1
3078 $ echo a > f2
3067 $ echo a > f2
3079 $ hg ci -Aqm 2
3068 $ hg ci -Aqm 2
3080 $ hg co ".^"
3069 $ hg co ".^"
3081 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
3070 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
3082 $ echo a > f3
3071 $ echo a > f3
3083 $ hg ci -Aqm 3
3072 $ hg ci -Aqm 3
3084 $ hg co ".^^"
3073 $ hg co ".^^"
3085 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
3074 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
3086 $ echo a > f4
3075 $ echo a > f4
3087 $ hg ci -Aqm 4
3076 $ hg ci -Aqm 4
3088 $ hg merge -r 2
3077 $ hg merge -r 2
3089 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
3078 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
3090 (branch merge, don't forget to commit)
3079 (branch merge, don't forget to commit)
3091 $ hg ci -qm 5
3080 $ hg ci -qm 5
3092 $ hg merge -r 3
3081 $ hg merge -r 3
3093 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
3082 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
3094 (branch merge, don't forget to commit)
3083 (branch merge, don't forget to commit)
3095 $ hg ci -qm 6
3084 $ hg ci -qm 6
3096 $ hg log -G -r '0 | 1 | 2 | 6'
3085 $ hg log -G -r '0 | 1 | 2 | 6'
3097 \xe2\x97\x8d changeset: 6:851fe89689ad (esc)
3086 \xe2\x97\x8d changeset: 6:851fe89689ad (esc)
3098 \xe2\x94\x86\xe2\x95\xb2 tag: tip (esc)
3087 \xe2\x94\x86\xe2\x95\xb2 tag: tip (esc)
3099 \xe2\x94\x86 \xe2\x94\x86 parent: 5:4f1e3cf15f5d (esc)
3088 \xe2\x94\x86 \xe2\x94\x86 parent: 5:4f1e3cf15f5d (esc)
3100 \xe2\x94\x86 \xe2\x94\x86 parent: 3:b74ba7084d2d (esc)
3089 \xe2\x94\x86 \xe2\x94\x86 parent: 3:b74ba7084d2d (esc)
3101 \xe2\x94\x86 \xe2\x94\x86 user: test (esc)
3090 \xe2\x94\x86 \xe2\x94\x86 user: test (esc)
3102 \xe2\x94\x86 \xe2\x94\x86 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
3091 \xe2\x94\x86 \xe2\x94\x86 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
3103 \xe2\x94\x86 \xe2\x94\x86 summary: 6 (esc)
3092 \xe2\x94\x86 \xe2\x94\x86 summary: 6 (esc)
3104 \xe2\x94\x86 \xe2\x94\x86 (esc)
3093 \xe2\x94\x86 \xe2\x94\x86 (esc)
3105 \xe2\x94\x86 \xe2\x95\xb2 (esc)
3094 \xe2\x94\x86 \xe2\x95\xb2 (esc)
3106 \xe2\x94\x86 \xe2\x94\x86\xe2\x95\xb2 (esc)
3095 \xe2\x94\x86 \xe2\x94\x86\xe2\x95\xb2 (esc)
3107 \xe2\x94\x86 \xe2\x97\x8b \xe2\x94\x86 changeset: 2:3e6599df4cce (esc)
3096 \xe2\x94\x86 \xe2\x97\x8b \xe2\x94\x86 changeset: 2:3e6599df4cce (esc)
3108 \xe2\x94\x86 \xe2\x94\x86\xe2\x95\xb1 user: test (esc)
3097 \xe2\x94\x86 \xe2\x94\x86\xe2\x95\xb1 user: test (esc)
3109 \xe2\x94\x86 \xe2\x94\x86 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
3098 \xe2\x94\x86 \xe2\x94\x86 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
3110 \xe2\x94\x86 \xe2\x94\x86 summary: 2 (esc)
3099 \xe2\x94\x86 \xe2\x94\x86 summary: 2 (esc)
3111 \xe2\x94\x86 \xe2\x94\x86 (esc)
3100 \xe2\x94\x86 \xe2\x94\x86 (esc)
3112 \xe2\x94\x86 \xe2\x97\x8b changeset: 1:bd9a55143933 (esc)
3101 \xe2\x94\x86 \xe2\x97\x8b changeset: 1:bd9a55143933 (esc)
3113 \xe2\x94\x86\xe2\x95\xb1 user: test (esc)
3102 \xe2\x94\x86\xe2\x95\xb1 user: test (esc)
3114 \xe2\x94\x86 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
3103 \xe2\x94\x86 date: Thu Jan 01 00:00:00 1970 +0000 (esc)
3115 \xe2\x94\x86 summary: 1 (esc)
3104 \xe2\x94\x86 summary: 1 (esc)
3116 \xe2\x94\x86 (esc)
3105 \xe2\x94\x86 (esc)
3117 \xe2\x97\x8b changeset: 0:870a5edc339c (esc)
3106 \xe2\x97\x8b changeset: 0:870a5edc339c (esc)
3118 user: test
3107 user: test
3119 date: Thu Jan 01 00:00:00 1970 +0000
3108 date: Thu Jan 01 00:00:00 1970 +0000
3120 summary: 0
3109 summary: 0
3121
3110
3122
3111
3123 $ cd ..
3112 $ cd ..
3124
3113
3125 Multiple roots (issue5440):
3114 Multiple roots (issue5440):
3126
3115
3127 $ hg init multiroots
3116 $ hg init multiroots
3128 $ cd multiroots
3117 $ cd multiroots
3129 $ cat <<EOF > .hg/hgrc
3118 $ cat <<EOF > .hg/hgrc
3130 > [ui]
3119 > [ui]
3131 > logtemplate = '{rev} {desc}\n\n'
3120 > logtemplate = '{rev} {desc}\n\n'
3132 > EOF
3121 > EOF
3133
3122
3134 $ touch foo
3123 $ touch foo
3135 $ hg ci -Aqm foo
3124 $ hg ci -Aqm foo
3136 $ hg co -q null
3125 $ hg co -q null
3137 $ touch bar
3126 $ touch bar
3138 $ hg ci -Aqm bar
3127 $ hg ci -Aqm bar
3139
3128
3140 $ hg log -Gr null:
3129 $ hg log -Gr null:
3141 \xe2\x97\x8d 1 bar (esc)
3130 \xe2\x97\x8d 1 bar (esc)
3142 \xe2\x94\x82 (esc)
3131 \xe2\x94\x82 (esc)
3143 \xe2\x94\x82 \xe2\x97\x8b 0 foo (esc)
3132 \xe2\x94\x82 \xe2\x97\x8b 0 foo (esc)
3144 \xe2\x94\x82\xe2\x95\xb1 (esc)
3133 \xe2\x94\x82\xe2\x95\xb1 (esc)
3145 \xe2\x97\x8b -1 (esc)
3134 \xe2\x97\x8b -1 (esc)
3146
3135
3147 $ hg log -Gr null+0
3136 $ hg log -Gr null+0
3148 \xe2\x97\x8b 0 foo (esc)
3137 \xe2\x97\x8b 0 foo (esc)
3149 \xe2\x94\x82 (esc)
3138 \xe2\x94\x82 (esc)
3150 \xe2\x97\x8b -1 (esc)
3139 \xe2\x97\x8b -1 (esc)
3151
3140
3152 $ hg log -Gr null+1
3141 $ hg log -Gr null+1
3153 \xe2\x97\x8d 1 bar (esc)
3142 \xe2\x97\x8d 1 bar (esc)
3154 \xe2\x94\x82 (esc)
3143 \xe2\x94\x82 (esc)
3155 \xe2\x97\x8b -1 (esc)
3144 \xe2\x97\x8b -1 (esc)
3156
3145
3157
3146
3158 $ cd ..
3147 $ cd ..
@@ -1,3488 +1,3477 b''
1 @ (34) head
1 @ (34) head
2 |
2 |
3 | o (33) head
3 | o (33) head
4 | |
4 | |
5 o | (32) expand
5 o | (32) expand
6 |\ \
6 |\ \
7 | o \ (31) expand
7 | o \ (31) expand
8 | |\ \
8 | |\ \
9 | | o \ (30) expand
9 | | o \ (30) expand
10 | | |\ \
10 | | |\ \
11 | | | o | (29) regular commit
11 | | | o | (29) regular commit
12 | | | | |
12 | | | | |
13 | | o | | (28) merge zero known
13 | | o | | (28) merge zero known
14 | | |\ \ \
14 | | |\ \ \
15 o | | | | | (27) collapse
15 o | | | | | (27) collapse
16 |/ / / / /
16 |/ / / / /
17 | | o---+ (26) merge one known; far right
17 | | o---+ (26) merge one known; far right
18 | | | | |
18 | | | | |
19 +---o | | (25) merge one known; far left
19 +---o | | (25) merge one known; far left
20 | | | | |
20 | | | | |
21 | | o | | (24) merge one known; immediate right
21 | | o | | (24) merge one known; immediate right
22 | | |\| |
22 | | |\| |
23 | | o | | (23) merge one known; immediate left
23 | | o | | (23) merge one known; immediate left
24 | |/| | |
24 | |/| | |
25 +---o---+ (22) merge two known; one far left, one far right
25 +---o---+ (22) merge two known; one far left, one far right
26 | | / /
26 | | / /
27 o | | | (21) expand
27 o | | | (21) expand
28 |\ \ \ \
28 |\ \ \ \
29 | o---+-+ (20) merge two known; two far right
29 | o---+-+ (20) merge two known; two far right
30 | / / /
30 | / / /
31 o | | | (19) expand
31 o | | | (19) expand
32 |\ \ \ \
32 |\ \ \ \
33 +---+---o (18) merge two known; two far left
33 +---+---o (18) merge two known; two far left
34 | | | |
34 | | | |
35 | o | | (17) expand
35 | o | | (17) expand
36 | |\ \ \
36 | |\ \ \
37 | | o---+ (16) merge two known; one immediate right, one near right
37 | | o---+ (16) merge two known; one immediate right, one near right
38 | | |/ /
38 | | |/ /
39 o | | | (15) expand
39 o | | | (15) expand
40 |\ \ \ \
40 |\ \ \ \
41 | o-----+ (14) merge two known; one immediate right, one far right
41 | o-----+ (14) merge two known; one immediate right, one far right
42 | |/ / /
42 | |/ / /
43 o | | | (13) expand
43 o | | | (13) expand
44 |\ \ \ \
44 |\ \ \ \
45 +---o | | (12) merge two known; one immediate right, one far left
45 +---o | | (12) merge two known; one immediate right, one far left
46 | | |/ /
46 | | |/ /
47 | o | | (11) expand
47 | o | | (11) expand
48 | |\ \ \
48 | |\ \ \
49 | | o---+ (10) merge two known; one immediate left, one near right
49 | | o---+ (10) merge two known; one immediate left, one near right
50 | |/ / /
50 | |/ / /
51 o | | | (9) expand
51 o | | | (9) expand
52 |\ \ \ \
52 |\ \ \ \
53 | o-----+ (8) merge two known; one immediate left, one far right
53 | o-----+ (8) merge two known; one immediate left, one far right
54 |/ / / /
54 |/ / / /
55 o | | | (7) expand
55 o | | | (7) expand
56 |\ \ \ \
56 |\ \ \ \
57 +---o | | (6) merge two known; one immediate left, one far left
57 +---o | | (6) merge two known; one immediate left, one far left
58 | |/ / /
58 | |/ / /
59 | o | | (5) expand
59 | o | | (5) expand
60 | |\ \ \
60 | |\ \ \
61 | | o | | (4) merge two known; one immediate left, one immediate right
61 | | o | | (4) merge two known; one immediate left, one immediate right
62 | |/|/ /
62 | |/|/ /
63 | o / / (3) collapse
63 | o / / (3) collapse
64 |/ / /
64 |/ / /
65 o / / (2) collapse
65 o / / (2) collapse
66 |/ /
66 |/ /
67 o / (1) collapse
67 o / (1) collapse
68 |/
68 |/
69 o (0) root
69 o (0) root
70
70
71
71
72 $ commit()
72 $ commit()
73 > {
73 > {
74 > rev=$1
74 > rev=$1
75 > msg=$2
75 > msg=$2
76 > shift 2
76 > shift 2
77 > if [ "$#" -gt 0 ]; then
77 > if [ "$#" -gt 0 ]; then
78 > hg debugsetparents "$@"
78 > hg debugsetparents "$@"
79 > fi
79 > fi
80 > echo $rev > a
80 > echo $rev > a
81 > hg commit -Aqd "$rev 0" -m "($rev) $msg"
81 > hg commit -Aqd "$rev 0" -m "($rev) $msg"
82 > }
82 > }
83
83
84 $ cat > printrevset.py <<EOF
84 $ cat > printrevset.py <<EOF
85 > from __future__ import absolute_import
85 > from __future__ import absolute_import
86 > from mercurial import (
86 > from mercurial import (
87 > cmdutil,
87 > cmdutil,
88 > commands,
88 > commands,
89 > extensions,
89 > extensions,
90 > logcmdutil,
90 > logcmdutil,
91 > revsetlang,
91 > revsetlang,
92 > smartset,
92 > smartset,
93 > )
93 > )
94 > from mercurial.utils import stringutil
94 > from mercurial.utils import stringutil
95 >
95 >
96 > def logrevset(repo, pats, opts):
96 > def logrevset(repo, pats, opts):
97 > revs = logcmdutil._initialrevs(repo, opts)
97 > revs = logcmdutil._initialrevs(repo, opts)
98 > if not revs:
98 > if not revs:
99 > return None
99 > return None
100 > match, pats, slowpath = logcmdutil._makematcher(repo, revs, pats, opts)
100 > match, pats, slowpath = logcmdutil._makematcher(repo, revs, pats, opts)
101 > return logcmdutil._makerevset(repo, match, pats, slowpath, opts)
101 > return logcmdutil._makerevset(repo, match, pats, slowpath, opts)
102 >
102 >
103 > def uisetup(ui):
103 > def uisetup(ui):
104 > def printrevset(orig, repo, pats, opts):
104 > def printrevset(orig, repo, pats, opts):
105 > revs, filematcher = orig(repo, pats, opts)
105 > revs, filematcher = orig(repo, pats, opts)
106 > if opts.get(b'print_revset'):
106 > if opts.get(b'print_revset'):
107 > expr = logrevset(repo, pats, opts)
107 > expr = logrevset(repo, pats, opts)
108 > if expr:
108 > if expr:
109 > tree = revsetlang.parse(expr)
109 > tree = revsetlang.parse(expr)
110 > tree = revsetlang.analyze(tree)
110 > tree = revsetlang.analyze(tree)
111 > else:
111 > else:
112 > tree = []
112 > tree = []
113 > ui = repo.ui
113 > ui = repo.ui
114 > ui.write(b'%r\n' % (opts.get(b'rev', []),))
114 > ui.write(b'%r\n' % (opts.get(b'rev', []),))
115 > ui.write(revsetlang.prettyformat(tree) + b'\n')
115 > ui.write(revsetlang.prettyformat(tree) + b'\n')
116 > ui.write(stringutil.prettyrepr(revs) + b'\n')
116 > ui.write(stringutil.prettyrepr(revs) + b'\n')
117 > revs = smartset.baseset() # display no revisions
117 > revs = smartset.baseset() # display no revisions
118 > return revs, filematcher
118 > return revs, filematcher
119 > extensions.wrapfunction(logcmdutil, 'getrevs', printrevset)
119 > extensions.wrapfunction(logcmdutil, 'getrevs', printrevset)
120 > aliases, entry = cmdutil.findcmd(b'log', commands.table)
120 > aliases, entry = cmdutil.findcmd(b'log', commands.table)
121 > entry[1].append((b'', b'print-revset', False,
121 > entry[1].append((b'', b'print-revset', False,
122 > b'print generated revset and exit (DEPRECATED)'))
122 > b'print generated revset and exit (DEPRECATED)'))
123 > EOF
123 > EOF
124
124
125 $ echo "[extensions]" >> $HGRCPATH
125 $ echo "[extensions]" >> $HGRCPATH
126 $ echo "printrevset=`pwd`/printrevset.py" >> $HGRCPATH
126 $ echo "printrevset=`pwd`/printrevset.py" >> $HGRCPATH
127
127
128 $ hg init repo
128 $ hg init repo
129 $ cd repo
129 $ cd repo
130
130
131 Empty repo:
131 Empty repo:
132
132
133 $ hg log -G
133 $ hg log -G
134
134
135
135
136 Building DAG:
136 Building DAG:
137
137
138 $ commit 0 "root"
138 $ commit 0 "root"
139 $ commit 1 "collapse" 0
139 $ commit 1 "collapse" 0
140 $ commit 2 "collapse" 1
140 $ commit 2 "collapse" 1
141 $ commit 3 "collapse" 2
141 $ commit 3 "collapse" 2
142 $ commit 4 "merge two known; one immediate left, one immediate right" 1 3
142 $ commit 4 "merge two known; one immediate left, one immediate right" 1 3
143 $ commit 5 "expand" 3 4
143 $ commit 5 "expand" 3 4
144 $ commit 6 "merge two known; one immediate left, one far left" 2 5
144 $ commit 6 "merge two known; one immediate left, one far left" 2 5
145 $ commit 7 "expand" 2 5
145 $ commit 7 "expand" 2 5
146 $ commit 8 "merge two known; one immediate left, one far right" 0 7
146 $ commit 8 "merge two known; one immediate left, one far right" 0 7
147 $ commit 9 "expand" 7 8
147 $ commit 9 "expand" 7 8
148 $ commit 10 "merge two known; one immediate left, one near right" 0 6
148 $ commit 10 "merge two known; one immediate left, one near right" 0 6
149 $ commit 11 "expand" 6 10
149 $ commit 11 "expand" 6 10
150 $ commit 12 "merge two known; one immediate right, one far left" 1 9
150 $ commit 12 "merge two known; one immediate right, one far left" 1 9
151 $ commit 13 "expand" 9 11
151 $ commit 13 "expand" 9 11
152 $ commit 14 "merge two known; one immediate right, one far right" 0 12
152 $ commit 14 "merge two known; one immediate right, one far right" 0 12
153 $ commit 15 "expand" 13 14
153 $ commit 15 "expand" 13 14
154 $ commit 16 "merge two known; one immediate right, one near right" 0 1
154 $ commit 16 "merge two known; one immediate right, one near right" 0 1
155 $ commit 17 "expand" 12 16
155 $ commit 17 "expand" 12 16
156 $ commit 18 "merge two known; two far left" 1 15
156 $ commit 18 "merge two known; two far left" 1 15
157 $ commit 19 "expand" 15 17
157 $ commit 19 "expand" 15 17
158 $ commit 20 "merge two known; two far right" 0 18
158 $ commit 20 "merge two known; two far right" 0 18
159 $ commit 21 "expand" 19 20
159 $ commit 21 "expand" 19 20
160 $ commit 22 "merge two known; one far left, one far right" 18 21
160 $ commit 22 "merge two known; one far left, one far right" 18 21
161 $ commit 23 "merge one known; immediate left" 1 22
161 $ commit 23 "merge one known; immediate left" 1 22
162 $ commit 24 "merge one known; immediate right" 0 23
162 $ commit 24 "merge one known; immediate right" 0 23
163 $ commit 25 "merge one known; far left" 21 24
163 $ commit 25 "merge one known; far left" 21 24
164 $ commit 26 "merge one known; far right" 18 25
164 $ commit 26 "merge one known; far right" 18 25
165 $ commit 27 "collapse" 21
165 $ commit 27 "collapse" 21
166 $ commit 28 "merge zero known" 1 26
166 $ commit 28 "merge zero known" 1 26
167 $ commit 29 "regular commit" 0
167 $ commit 29 "regular commit" 0
168 $ commit 30 "expand" 28 29
168 $ commit 30 "expand" 28 29
169 $ commit 31 "expand" 21 30
169 $ commit 31 "expand" 21 30
170 $ commit 32 "expand" 27 31
170 $ commit 32 "expand" 27 31
171 $ commit 33 "head" 18
171 $ commit 33 "head" 18
172 $ commit 34 "head" 32
172 $ commit 34 "head" 32
173
173
174
174
175 $ hg log -G -q
175 $ hg log -G -q
176 @ 34:fea3ac5810e0
176 @ 34:fea3ac5810e0
177 |
177 |
178 | o 33:68608f5145f9
178 | o 33:68608f5145f9
179 | |
179 | |
180 o | 32:d06dffa21a31
180 o | 32:d06dffa21a31
181 |\ \
181 |\ \
182 | o \ 31:621d83e11f67
182 | o \ 31:621d83e11f67
183 | |\ \
183 | |\ \
184 | | o \ 30:6e11cd4b648f
184 | | o \ 30:6e11cd4b648f
185 | | |\ \
185 | | |\ \
186 | | | o | 29:cd9bb2be7593
186 | | | o | 29:cd9bb2be7593
187 | | | | |
187 | | | | |
188 | | o | | 28:44ecd0b9ae99
188 | | o | | 28:44ecd0b9ae99
189 | | |\ \ \
189 | | |\ \ \
190 o | | | | | 27:886ed638191b
190 o | | | | | 27:886ed638191b
191 |/ / / / /
191 |/ / / / /
192 | | o---+ 26:7f25b6c2f0b9
192 | | o---+ 26:7f25b6c2f0b9
193 | | | | |
193 | | | | |
194 +---o | | 25:91da8ed57247
194 +---o | | 25:91da8ed57247
195 | | | | |
195 | | | | |
196 | | o | | 24:a9c19a3d96b7
196 | | o | | 24:a9c19a3d96b7
197 | | |\| |
197 | | |\| |
198 | | o | | 23:a01cddf0766d
198 | | o | | 23:a01cddf0766d
199 | |/| | |
199 | |/| | |
200 +---o---+ 22:e0d9cccacb5d
200 +---o---+ 22:e0d9cccacb5d
201 | | / /
201 | | / /
202 o | | | 21:d42a756af44d
202 o | | | 21:d42a756af44d
203 |\ \ \ \
203 |\ \ \ \
204 | o---+-+ 20:d30ed6450e32
204 | o---+-+ 20:d30ed6450e32
205 | / / /
205 | / / /
206 o | | | 19:31ddc2c1573b
206 o | | | 19:31ddc2c1573b
207 |\ \ \ \
207 |\ \ \ \
208 +---+---o 18:1aa84d96232a
208 +---+---o 18:1aa84d96232a
209 | | | |
209 | | | |
210 | o | | 17:44765d7c06e0
210 | o | | 17:44765d7c06e0
211 | |\ \ \
211 | |\ \ \
212 | | o---+ 16:3677d192927d
212 | | o---+ 16:3677d192927d
213 | | |/ /
213 | | |/ /
214 o | | | 15:1dda3f72782d
214 o | | | 15:1dda3f72782d
215 |\ \ \ \
215 |\ \ \ \
216 | o-----+ 14:8eac370358ef
216 | o-----+ 14:8eac370358ef
217 | |/ / /
217 | |/ / /
218 o | | | 13:22d8966a97e3
218 o | | | 13:22d8966a97e3
219 |\ \ \ \
219 |\ \ \ \
220 +---o | | 12:86b91144a6e9
220 +---o | | 12:86b91144a6e9
221 | | |/ /
221 | | |/ /
222 | o | | 11:832d76e6bdf2
222 | o | | 11:832d76e6bdf2
223 | |\ \ \
223 | |\ \ \
224 | | o---+ 10:74c64d036d72
224 | | o---+ 10:74c64d036d72
225 | |/ / /
225 | |/ / /
226 o | | | 9:7010c0af0a35
226 o | | | 9:7010c0af0a35
227 |\ \ \ \
227 |\ \ \ \
228 | o-----+ 8:7a0b11f71937
228 | o-----+ 8:7a0b11f71937
229 |/ / / /
229 |/ / / /
230 o | | | 7:b632bb1b1224
230 o | | | 7:b632bb1b1224
231 |\ \ \ \
231 |\ \ \ \
232 +---o | | 6:b105a072e251
232 +---o | | 6:b105a072e251
233 | |/ / /
233 | |/ / /
234 | o | | 5:4409d547b708
234 | o | | 5:4409d547b708
235 | |\ \ \
235 | |\ \ \
236 | | o | | 4:26a8bac39d9f
236 | | o | | 4:26a8bac39d9f
237 | |/|/ /
237 | |/|/ /
238 | o / / 3:27eef8ed80b4
238 | o / / 3:27eef8ed80b4
239 |/ / /
239 |/ / /
240 o / / 2:3d9a33b8d1e1
240 o / / 2:3d9a33b8d1e1
241 |/ /
241 |/ /
242 o / 1:6db2ef61d156
242 o / 1:6db2ef61d156
243 |/
243 |/
244 o 0:e6eb3150255d
244 o 0:e6eb3150255d
245
245
246
246
247 $ hg log -G
247 $ hg log -G
248 @ changeset: 34:fea3ac5810e0
248 @ changeset: 34:fea3ac5810e0
249 | tag: tip
249 | tag: tip
250 | parent: 32:d06dffa21a31
250 | parent: 32:d06dffa21a31
251 | user: test
251 | user: test
252 | date: Thu Jan 01 00:00:34 1970 +0000
252 | date: Thu Jan 01 00:00:34 1970 +0000
253 | summary: (34) head
253 | summary: (34) head
254 |
254 |
255 | o changeset: 33:68608f5145f9
255 | o changeset: 33:68608f5145f9
256 | | parent: 18:1aa84d96232a
256 | | parent: 18:1aa84d96232a
257 | | user: test
257 | | user: test
258 | | date: Thu Jan 01 00:00:33 1970 +0000
258 | | date: Thu Jan 01 00:00:33 1970 +0000
259 | | summary: (33) head
259 | | summary: (33) head
260 | |
260 | |
261 o | changeset: 32:d06dffa21a31
261 o | changeset: 32:d06dffa21a31
262 |\ \ parent: 27:886ed638191b
262 |\ \ parent: 27:886ed638191b
263 | | | parent: 31:621d83e11f67
263 | | | parent: 31:621d83e11f67
264 | | | user: test
264 | | | user: test
265 | | | date: Thu Jan 01 00:00:32 1970 +0000
265 | | | date: Thu Jan 01 00:00:32 1970 +0000
266 | | | summary: (32) expand
266 | | | summary: (32) expand
267 | | |
267 | | |
268 | o | changeset: 31:621d83e11f67
268 | o | changeset: 31:621d83e11f67
269 | |\ \ parent: 21:d42a756af44d
269 | |\ \ parent: 21:d42a756af44d
270 | | | | parent: 30:6e11cd4b648f
270 | | | | parent: 30:6e11cd4b648f
271 | | | | user: test
271 | | | | user: test
272 | | | | date: Thu Jan 01 00:00:31 1970 +0000
272 | | | | date: Thu Jan 01 00:00:31 1970 +0000
273 | | | | summary: (31) expand
273 | | | | summary: (31) expand
274 | | | |
274 | | | |
275 | | o | changeset: 30:6e11cd4b648f
275 | | o | changeset: 30:6e11cd4b648f
276 | | |\ \ parent: 28:44ecd0b9ae99
276 | | |\ \ parent: 28:44ecd0b9ae99
277 | | | | | parent: 29:cd9bb2be7593
277 | | | | | parent: 29:cd9bb2be7593
278 | | | | | user: test
278 | | | | | user: test
279 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
279 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
280 | | | | | summary: (30) expand
280 | | | | | summary: (30) expand
281 | | | | |
281 | | | | |
282 | | | o | changeset: 29:cd9bb2be7593
282 | | | o | changeset: 29:cd9bb2be7593
283 | | | | | parent: 0:e6eb3150255d
283 | | | | | parent: 0:e6eb3150255d
284 | | | | | user: test
284 | | | | | user: test
285 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
285 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
286 | | | | | summary: (29) regular commit
286 | | | | | summary: (29) regular commit
287 | | | | |
287 | | | | |
288 | | o | | changeset: 28:44ecd0b9ae99
288 | | o | | changeset: 28:44ecd0b9ae99
289 | | |\ \ \ parent: 1:6db2ef61d156
289 | | |\ \ \ parent: 1:6db2ef61d156
290 | | | | | | parent: 26:7f25b6c2f0b9
290 | | | | | | parent: 26:7f25b6c2f0b9
291 | | | | | | user: test
291 | | | | | | user: test
292 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
292 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
293 | | | | | | summary: (28) merge zero known
293 | | | | | | summary: (28) merge zero known
294 | | | | | |
294 | | | | | |
295 o | | | | | changeset: 27:886ed638191b
295 o | | | | | changeset: 27:886ed638191b
296 |/ / / / / parent: 21:d42a756af44d
296 |/ / / / / parent: 21:d42a756af44d
297 | | | | | user: test
297 | | | | | user: test
298 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
298 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
299 | | | | | summary: (27) collapse
299 | | | | | summary: (27) collapse
300 | | | | |
300 | | | | |
301 | | o---+ changeset: 26:7f25b6c2f0b9
301 | | o---+ changeset: 26:7f25b6c2f0b9
302 | | | | | parent: 18:1aa84d96232a
302 | | | | | parent: 18:1aa84d96232a
303 | | | | | parent: 25:91da8ed57247
303 | | | | | parent: 25:91da8ed57247
304 | | | | | user: test
304 | | | | | user: test
305 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
305 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
306 | | | | | summary: (26) merge one known; far right
306 | | | | | summary: (26) merge one known; far right
307 | | | | |
307 | | | | |
308 +---o | | changeset: 25:91da8ed57247
308 +---o | | changeset: 25:91da8ed57247
309 | | | | | parent: 21:d42a756af44d
309 | | | | | parent: 21:d42a756af44d
310 | | | | | parent: 24:a9c19a3d96b7
310 | | | | | parent: 24:a9c19a3d96b7
311 | | | | | user: test
311 | | | | | user: test
312 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
312 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
313 | | | | | summary: (25) merge one known; far left
313 | | | | | summary: (25) merge one known; far left
314 | | | | |
314 | | | | |
315 | | o | | changeset: 24:a9c19a3d96b7
315 | | o | | changeset: 24:a9c19a3d96b7
316 | | |\| | parent: 0:e6eb3150255d
316 | | |\| | parent: 0:e6eb3150255d
317 | | | | | parent: 23:a01cddf0766d
317 | | | | | parent: 23:a01cddf0766d
318 | | | | | user: test
318 | | | | | user: test
319 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
319 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
320 | | | | | summary: (24) merge one known; immediate right
320 | | | | | summary: (24) merge one known; immediate right
321 | | | | |
321 | | | | |
322 | | o | | changeset: 23:a01cddf0766d
322 | | o | | changeset: 23:a01cddf0766d
323 | |/| | | parent: 1:6db2ef61d156
323 | |/| | | parent: 1:6db2ef61d156
324 | | | | | parent: 22:e0d9cccacb5d
324 | | | | | parent: 22:e0d9cccacb5d
325 | | | | | user: test
325 | | | | | user: test
326 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
326 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
327 | | | | | summary: (23) merge one known; immediate left
327 | | | | | summary: (23) merge one known; immediate left
328 | | | | |
328 | | | | |
329 +---o---+ changeset: 22:e0d9cccacb5d
329 +---o---+ changeset: 22:e0d9cccacb5d
330 | | | | parent: 18:1aa84d96232a
330 | | | | parent: 18:1aa84d96232a
331 | | / / parent: 21:d42a756af44d
331 | | / / parent: 21:d42a756af44d
332 | | | | user: test
332 | | | | user: test
333 | | | | date: Thu Jan 01 00:00:22 1970 +0000
333 | | | | date: Thu Jan 01 00:00:22 1970 +0000
334 | | | | summary: (22) merge two known; one far left, one far right
334 | | | | summary: (22) merge two known; one far left, one far right
335 | | | |
335 | | | |
336 o | | | changeset: 21:d42a756af44d
336 o | | | changeset: 21:d42a756af44d
337 |\ \ \ \ parent: 19:31ddc2c1573b
337 |\ \ \ \ parent: 19:31ddc2c1573b
338 | | | | | parent: 20:d30ed6450e32
338 | | | | | parent: 20:d30ed6450e32
339 | | | | | user: test
339 | | | | | user: test
340 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
340 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
341 | | | | | summary: (21) expand
341 | | | | | summary: (21) expand
342 | | | | |
342 | | | | |
343 | o---+-+ changeset: 20:d30ed6450e32
343 | o---+-+ changeset: 20:d30ed6450e32
344 | | | | parent: 0:e6eb3150255d
344 | | | | parent: 0:e6eb3150255d
345 | / / / parent: 18:1aa84d96232a
345 | / / / parent: 18:1aa84d96232a
346 | | | | user: test
346 | | | | user: test
347 | | | | date: Thu Jan 01 00:00:20 1970 +0000
347 | | | | date: Thu Jan 01 00:00:20 1970 +0000
348 | | | | summary: (20) merge two known; two far right
348 | | | | summary: (20) merge two known; two far right
349 | | | |
349 | | | |
350 o | | | changeset: 19:31ddc2c1573b
350 o | | | changeset: 19:31ddc2c1573b
351 |\ \ \ \ parent: 15:1dda3f72782d
351 |\ \ \ \ parent: 15:1dda3f72782d
352 | | | | | parent: 17:44765d7c06e0
352 | | | | | parent: 17:44765d7c06e0
353 | | | | | user: test
353 | | | | | user: test
354 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
354 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
355 | | | | | summary: (19) expand
355 | | | | | summary: (19) expand
356 | | | | |
356 | | | | |
357 +---+---o changeset: 18:1aa84d96232a
357 +---+---o changeset: 18:1aa84d96232a
358 | | | | parent: 1:6db2ef61d156
358 | | | | parent: 1:6db2ef61d156
359 | | | | parent: 15:1dda3f72782d
359 | | | | parent: 15:1dda3f72782d
360 | | | | user: test
360 | | | | user: test
361 | | | | date: Thu Jan 01 00:00:18 1970 +0000
361 | | | | date: Thu Jan 01 00:00:18 1970 +0000
362 | | | | summary: (18) merge two known; two far left
362 | | | | summary: (18) merge two known; two far left
363 | | | |
363 | | | |
364 | o | | changeset: 17:44765d7c06e0
364 | o | | changeset: 17:44765d7c06e0
365 | |\ \ \ parent: 12:86b91144a6e9
365 | |\ \ \ parent: 12:86b91144a6e9
366 | | | | | parent: 16:3677d192927d
366 | | | | | parent: 16:3677d192927d
367 | | | | | user: test
367 | | | | | user: test
368 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
368 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
369 | | | | | summary: (17) expand
369 | | | | | summary: (17) expand
370 | | | | |
370 | | | | |
371 | | o---+ changeset: 16:3677d192927d
371 | | o---+ changeset: 16:3677d192927d
372 | | | | | parent: 0:e6eb3150255d
372 | | | | | parent: 0:e6eb3150255d
373 | | |/ / parent: 1:6db2ef61d156
373 | | |/ / parent: 1:6db2ef61d156
374 | | | | user: test
374 | | | | user: test
375 | | | | date: Thu Jan 01 00:00:16 1970 +0000
375 | | | | date: Thu Jan 01 00:00:16 1970 +0000
376 | | | | summary: (16) merge two known; one immediate right, one near right
376 | | | | summary: (16) merge two known; one immediate right, one near right
377 | | | |
377 | | | |
378 o | | | changeset: 15:1dda3f72782d
378 o | | | changeset: 15:1dda3f72782d
379 |\ \ \ \ parent: 13:22d8966a97e3
379 |\ \ \ \ parent: 13:22d8966a97e3
380 | | | | | parent: 14:8eac370358ef
380 | | | | | parent: 14:8eac370358ef
381 | | | | | user: test
381 | | | | | user: test
382 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
382 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
383 | | | | | summary: (15) expand
383 | | | | | summary: (15) expand
384 | | | | |
384 | | | | |
385 | o-----+ changeset: 14:8eac370358ef
385 | o-----+ changeset: 14:8eac370358ef
386 | | | | | parent: 0:e6eb3150255d
386 | | | | | parent: 0:e6eb3150255d
387 | |/ / / parent: 12:86b91144a6e9
387 | |/ / / parent: 12:86b91144a6e9
388 | | | | user: test
388 | | | | user: test
389 | | | | date: Thu Jan 01 00:00:14 1970 +0000
389 | | | | date: Thu Jan 01 00:00:14 1970 +0000
390 | | | | summary: (14) merge two known; one immediate right, one far right
390 | | | | summary: (14) merge two known; one immediate right, one far right
391 | | | |
391 | | | |
392 o | | | changeset: 13:22d8966a97e3
392 o | | | changeset: 13:22d8966a97e3
393 |\ \ \ \ parent: 9:7010c0af0a35
393 |\ \ \ \ parent: 9:7010c0af0a35
394 | | | | | parent: 11:832d76e6bdf2
394 | | | | | parent: 11:832d76e6bdf2
395 | | | | | user: test
395 | | | | | user: test
396 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
396 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
397 | | | | | summary: (13) expand
397 | | | | | summary: (13) expand
398 | | | | |
398 | | | | |
399 +---o | | changeset: 12:86b91144a6e9
399 +---o | | changeset: 12:86b91144a6e9
400 | | |/ / parent: 1:6db2ef61d156
400 | | |/ / parent: 1:6db2ef61d156
401 | | | | parent: 9:7010c0af0a35
401 | | | | parent: 9:7010c0af0a35
402 | | | | user: test
402 | | | | user: test
403 | | | | date: Thu Jan 01 00:00:12 1970 +0000
403 | | | | date: Thu Jan 01 00:00:12 1970 +0000
404 | | | | summary: (12) merge two known; one immediate right, one far left
404 | | | | summary: (12) merge two known; one immediate right, one far left
405 | | | |
405 | | | |
406 | o | | changeset: 11:832d76e6bdf2
406 | o | | changeset: 11:832d76e6bdf2
407 | |\ \ \ parent: 6:b105a072e251
407 | |\ \ \ parent: 6:b105a072e251
408 | | | | | parent: 10:74c64d036d72
408 | | | | | parent: 10:74c64d036d72
409 | | | | | user: test
409 | | | | | user: test
410 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
410 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
411 | | | | | summary: (11) expand
411 | | | | | summary: (11) expand
412 | | | | |
412 | | | | |
413 | | o---+ changeset: 10:74c64d036d72
413 | | o---+ changeset: 10:74c64d036d72
414 | | | | | parent: 0:e6eb3150255d
414 | | | | | parent: 0:e6eb3150255d
415 | |/ / / parent: 6:b105a072e251
415 | |/ / / parent: 6:b105a072e251
416 | | | | user: test
416 | | | | user: test
417 | | | | date: Thu Jan 01 00:00:10 1970 +0000
417 | | | | date: Thu Jan 01 00:00:10 1970 +0000
418 | | | | summary: (10) merge two known; one immediate left, one near right
418 | | | | summary: (10) merge two known; one immediate left, one near right
419 | | | |
419 | | | |
420 o | | | changeset: 9:7010c0af0a35
420 o | | | changeset: 9:7010c0af0a35
421 |\ \ \ \ parent: 7:b632bb1b1224
421 |\ \ \ \ parent: 7:b632bb1b1224
422 | | | | | parent: 8:7a0b11f71937
422 | | | | | parent: 8:7a0b11f71937
423 | | | | | user: test
423 | | | | | user: test
424 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
424 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
425 | | | | | summary: (9) expand
425 | | | | | summary: (9) expand
426 | | | | |
426 | | | | |
427 | o-----+ changeset: 8:7a0b11f71937
427 | o-----+ changeset: 8:7a0b11f71937
428 | | | | | parent: 0:e6eb3150255d
428 | | | | | parent: 0:e6eb3150255d
429 |/ / / / parent: 7:b632bb1b1224
429 |/ / / / parent: 7:b632bb1b1224
430 | | | | user: test
430 | | | | user: test
431 | | | | date: Thu Jan 01 00:00:08 1970 +0000
431 | | | | date: Thu Jan 01 00:00:08 1970 +0000
432 | | | | summary: (8) merge two known; one immediate left, one far right
432 | | | | summary: (8) merge two known; one immediate left, one far right
433 | | | |
433 | | | |
434 o | | | changeset: 7:b632bb1b1224
434 o | | | changeset: 7:b632bb1b1224
435 |\ \ \ \ parent: 2:3d9a33b8d1e1
435 |\ \ \ \ parent: 2:3d9a33b8d1e1
436 | | | | | parent: 5:4409d547b708
436 | | | | | parent: 5:4409d547b708
437 | | | | | user: test
437 | | | | | user: test
438 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
438 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
439 | | | | | summary: (7) expand
439 | | | | | summary: (7) expand
440 | | | | |
440 | | | | |
441 +---o | | changeset: 6:b105a072e251
441 +---o | | changeset: 6:b105a072e251
442 | |/ / / parent: 2:3d9a33b8d1e1
442 | |/ / / parent: 2:3d9a33b8d1e1
443 | | | | parent: 5:4409d547b708
443 | | | | parent: 5:4409d547b708
444 | | | | user: test
444 | | | | user: test
445 | | | | date: Thu Jan 01 00:00:06 1970 +0000
445 | | | | date: Thu Jan 01 00:00:06 1970 +0000
446 | | | | summary: (6) merge two known; one immediate left, one far left
446 | | | | summary: (6) merge two known; one immediate left, one far left
447 | | | |
447 | | | |
448 | o | | changeset: 5:4409d547b708
448 | o | | changeset: 5:4409d547b708
449 | |\ \ \ parent: 3:27eef8ed80b4
449 | |\ \ \ parent: 3:27eef8ed80b4
450 | | | | | parent: 4:26a8bac39d9f
450 | | | | | parent: 4:26a8bac39d9f
451 | | | | | user: test
451 | | | | | user: test
452 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
452 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
453 | | | | | summary: (5) expand
453 | | | | | summary: (5) expand
454 | | | | |
454 | | | | |
455 | | o | | changeset: 4:26a8bac39d9f
455 | | o | | changeset: 4:26a8bac39d9f
456 | |/|/ / parent: 1:6db2ef61d156
456 | |/|/ / parent: 1:6db2ef61d156
457 | | | | parent: 3:27eef8ed80b4
457 | | | | parent: 3:27eef8ed80b4
458 | | | | user: test
458 | | | | user: test
459 | | | | date: Thu Jan 01 00:00:04 1970 +0000
459 | | | | date: Thu Jan 01 00:00:04 1970 +0000
460 | | | | summary: (4) merge two known; one immediate left, one immediate right
460 | | | | summary: (4) merge two known; one immediate left, one immediate right
461 | | | |
461 | | | |
462 | o | | changeset: 3:27eef8ed80b4
462 | o | | changeset: 3:27eef8ed80b4
463 |/ / / user: test
463 |/ / / user: test
464 | | | date: Thu Jan 01 00:00:03 1970 +0000
464 | | | date: Thu Jan 01 00:00:03 1970 +0000
465 | | | summary: (3) collapse
465 | | | summary: (3) collapse
466 | | |
466 | | |
467 o | | changeset: 2:3d9a33b8d1e1
467 o | | changeset: 2:3d9a33b8d1e1
468 |/ / user: test
468 |/ / user: test
469 | | date: Thu Jan 01 00:00:02 1970 +0000
469 | | date: Thu Jan 01 00:00:02 1970 +0000
470 | | summary: (2) collapse
470 | | summary: (2) collapse
471 | |
471 | |
472 o | changeset: 1:6db2ef61d156
472 o | changeset: 1:6db2ef61d156
473 |/ user: test
473 |/ user: test
474 | date: Thu Jan 01 00:00:01 1970 +0000
474 | date: Thu Jan 01 00:00:01 1970 +0000
475 | summary: (1) collapse
475 | summary: (1) collapse
476 |
476 |
477 o changeset: 0:e6eb3150255d
477 o changeset: 0:e6eb3150255d
478 user: test
478 user: test
479 date: Thu Jan 01 00:00:00 1970 +0000
479 date: Thu Jan 01 00:00:00 1970 +0000
480 summary: (0) root
480 summary: (0) root
481
481
482
482
483 File glog:
483 File glog:
484 $ hg log -G a
484 $ hg log -G a
485 @ changeset: 34:fea3ac5810e0
485 @ changeset: 34:fea3ac5810e0
486 | tag: tip
486 | tag: tip
487 | parent: 32:d06dffa21a31
487 | parent: 32:d06dffa21a31
488 | user: test
488 | user: test
489 | date: Thu Jan 01 00:00:34 1970 +0000
489 | date: Thu Jan 01 00:00:34 1970 +0000
490 | summary: (34) head
490 | summary: (34) head
491 |
491 |
492 | o changeset: 33:68608f5145f9
492 | o changeset: 33:68608f5145f9
493 | | parent: 18:1aa84d96232a
493 | | parent: 18:1aa84d96232a
494 | | user: test
494 | | user: test
495 | | date: Thu Jan 01 00:00:33 1970 +0000
495 | | date: Thu Jan 01 00:00:33 1970 +0000
496 | | summary: (33) head
496 | | summary: (33) head
497 | |
497 | |
498 o | changeset: 32:d06dffa21a31
498 o | changeset: 32:d06dffa21a31
499 |\ \ parent: 27:886ed638191b
499 |\ \ parent: 27:886ed638191b
500 | | | parent: 31:621d83e11f67
500 | | | parent: 31:621d83e11f67
501 | | | user: test
501 | | | user: test
502 | | | date: Thu Jan 01 00:00:32 1970 +0000
502 | | | date: Thu Jan 01 00:00:32 1970 +0000
503 | | | summary: (32) expand
503 | | | summary: (32) expand
504 | | |
504 | | |
505 | o | changeset: 31:621d83e11f67
505 | o | changeset: 31:621d83e11f67
506 | |\ \ parent: 21:d42a756af44d
506 | |\ \ parent: 21:d42a756af44d
507 | | | | parent: 30:6e11cd4b648f
507 | | | | parent: 30:6e11cd4b648f
508 | | | | user: test
508 | | | | user: test
509 | | | | date: Thu Jan 01 00:00:31 1970 +0000
509 | | | | date: Thu Jan 01 00:00:31 1970 +0000
510 | | | | summary: (31) expand
510 | | | | summary: (31) expand
511 | | | |
511 | | | |
512 | | o | changeset: 30:6e11cd4b648f
512 | | o | changeset: 30:6e11cd4b648f
513 | | |\ \ parent: 28:44ecd0b9ae99
513 | | |\ \ parent: 28:44ecd0b9ae99
514 | | | | | parent: 29:cd9bb2be7593
514 | | | | | parent: 29:cd9bb2be7593
515 | | | | | user: test
515 | | | | | user: test
516 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
516 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
517 | | | | | summary: (30) expand
517 | | | | | summary: (30) expand
518 | | | | |
518 | | | | |
519 | | | o | changeset: 29:cd9bb2be7593
519 | | | o | changeset: 29:cd9bb2be7593
520 | | | | | parent: 0:e6eb3150255d
520 | | | | | parent: 0:e6eb3150255d
521 | | | | | user: test
521 | | | | | user: test
522 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
522 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
523 | | | | | summary: (29) regular commit
523 | | | | | summary: (29) regular commit
524 | | | | |
524 | | | | |
525 | | o | | changeset: 28:44ecd0b9ae99
525 | | o | | changeset: 28:44ecd0b9ae99
526 | | |\ \ \ parent: 1:6db2ef61d156
526 | | |\ \ \ parent: 1:6db2ef61d156
527 | | | | | | parent: 26:7f25b6c2f0b9
527 | | | | | | parent: 26:7f25b6c2f0b9
528 | | | | | | user: test
528 | | | | | | user: test
529 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
529 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
530 | | | | | | summary: (28) merge zero known
530 | | | | | | summary: (28) merge zero known
531 | | | | | |
531 | | | | | |
532 o | | | | | changeset: 27:886ed638191b
532 o | | | | | changeset: 27:886ed638191b
533 |/ / / / / parent: 21:d42a756af44d
533 |/ / / / / parent: 21:d42a756af44d
534 | | | | | user: test
534 | | | | | user: test
535 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
535 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
536 | | | | | summary: (27) collapse
536 | | | | | summary: (27) collapse
537 | | | | |
537 | | | | |
538 | | o---+ changeset: 26:7f25b6c2f0b9
538 | | o---+ changeset: 26:7f25b6c2f0b9
539 | | | | | parent: 18:1aa84d96232a
539 | | | | | parent: 18:1aa84d96232a
540 | | | | | parent: 25:91da8ed57247
540 | | | | | parent: 25:91da8ed57247
541 | | | | | user: test
541 | | | | | user: test
542 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
542 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
543 | | | | | summary: (26) merge one known; far right
543 | | | | | summary: (26) merge one known; far right
544 | | | | |
544 | | | | |
545 +---o | | changeset: 25:91da8ed57247
545 +---o | | changeset: 25:91da8ed57247
546 | | | | | parent: 21:d42a756af44d
546 | | | | | parent: 21:d42a756af44d
547 | | | | | parent: 24:a9c19a3d96b7
547 | | | | | parent: 24:a9c19a3d96b7
548 | | | | | user: test
548 | | | | | user: test
549 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
549 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
550 | | | | | summary: (25) merge one known; far left
550 | | | | | summary: (25) merge one known; far left
551 | | | | |
551 | | | | |
552 | | o | | changeset: 24:a9c19a3d96b7
552 | | o | | changeset: 24:a9c19a3d96b7
553 | | |\| | parent: 0:e6eb3150255d
553 | | |\| | parent: 0:e6eb3150255d
554 | | | | | parent: 23:a01cddf0766d
554 | | | | | parent: 23:a01cddf0766d
555 | | | | | user: test
555 | | | | | user: test
556 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
556 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
557 | | | | | summary: (24) merge one known; immediate right
557 | | | | | summary: (24) merge one known; immediate right
558 | | | | |
558 | | | | |
559 | | o | | changeset: 23:a01cddf0766d
559 | | o | | changeset: 23:a01cddf0766d
560 | |/| | | parent: 1:6db2ef61d156
560 | |/| | | parent: 1:6db2ef61d156
561 | | | | | parent: 22:e0d9cccacb5d
561 | | | | | parent: 22:e0d9cccacb5d
562 | | | | | user: test
562 | | | | | user: test
563 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
563 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
564 | | | | | summary: (23) merge one known; immediate left
564 | | | | | summary: (23) merge one known; immediate left
565 | | | | |
565 | | | | |
566 +---o---+ changeset: 22:e0d9cccacb5d
566 +---o---+ changeset: 22:e0d9cccacb5d
567 | | | | parent: 18:1aa84d96232a
567 | | | | parent: 18:1aa84d96232a
568 | | / / parent: 21:d42a756af44d
568 | | / / parent: 21:d42a756af44d
569 | | | | user: test
569 | | | | user: test
570 | | | | date: Thu Jan 01 00:00:22 1970 +0000
570 | | | | date: Thu Jan 01 00:00:22 1970 +0000
571 | | | | summary: (22) merge two known; one far left, one far right
571 | | | | summary: (22) merge two known; one far left, one far right
572 | | | |
572 | | | |
573 o | | | changeset: 21:d42a756af44d
573 o | | | changeset: 21:d42a756af44d
574 |\ \ \ \ parent: 19:31ddc2c1573b
574 |\ \ \ \ parent: 19:31ddc2c1573b
575 | | | | | parent: 20:d30ed6450e32
575 | | | | | parent: 20:d30ed6450e32
576 | | | | | user: test
576 | | | | | user: test
577 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
577 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
578 | | | | | summary: (21) expand
578 | | | | | summary: (21) expand
579 | | | | |
579 | | | | |
580 | o---+-+ changeset: 20:d30ed6450e32
580 | o---+-+ changeset: 20:d30ed6450e32
581 | | | | parent: 0:e6eb3150255d
581 | | | | parent: 0:e6eb3150255d
582 | / / / parent: 18:1aa84d96232a
582 | / / / parent: 18:1aa84d96232a
583 | | | | user: test
583 | | | | user: test
584 | | | | date: Thu Jan 01 00:00:20 1970 +0000
584 | | | | date: Thu Jan 01 00:00:20 1970 +0000
585 | | | | summary: (20) merge two known; two far right
585 | | | | summary: (20) merge two known; two far right
586 | | | |
586 | | | |
587 o | | | changeset: 19:31ddc2c1573b
587 o | | | changeset: 19:31ddc2c1573b
588 |\ \ \ \ parent: 15:1dda3f72782d
588 |\ \ \ \ parent: 15:1dda3f72782d
589 | | | | | parent: 17:44765d7c06e0
589 | | | | | parent: 17:44765d7c06e0
590 | | | | | user: test
590 | | | | | user: test
591 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
591 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
592 | | | | | summary: (19) expand
592 | | | | | summary: (19) expand
593 | | | | |
593 | | | | |
594 +---+---o changeset: 18:1aa84d96232a
594 +---+---o changeset: 18:1aa84d96232a
595 | | | | parent: 1:6db2ef61d156
595 | | | | parent: 1:6db2ef61d156
596 | | | | parent: 15:1dda3f72782d
596 | | | | parent: 15:1dda3f72782d
597 | | | | user: test
597 | | | | user: test
598 | | | | date: Thu Jan 01 00:00:18 1970 +0000
598 | | | | date: Thu Jan 01 00:00:18 1970 +0000
599 | | | | summary: (18) merge two known; two far left
599 | | | | summary: (18) merge two known; two far left
600 | | | |
600 | | | |
601 | o | | changeset: 17:44765d7c06e0
601 | o | | changeset: 17:44765d7c06e0
602 | |\ \ \ parent: 12:86b91144a6e9
602 | |\ \ \ parent: 12:86b91144a6e9
603 | | | | | parent: 16:3677d192927d
603 | | | | | parent: 16:3677d192927d
604 | | | | | user: test
604 | | | | | user: test
605 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
605 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
606 | | | | | summary: (17) expand
606 | | | | | summary: (17) expand
607 | | | | |
607 | | | | |
608 | | o---+ changeset: 16:3677d192927d
608 | | o---+ changeset: 16:3677d192927d
609 | | | | | parent: 0:e6eb3150255d
609 | | | | | parent: 0:e6eb3150255d
610 | | |/ / parent: 1:6db2ef61d156
610 | | |/ / parent: 1:6db2ef61d156
611 | | | | user: test
611 | | | | user: test
612 | | | | date: Thu Jan 01 00:00:16 1970 +0000
612 | | | | date: Thu Jan 01 00:00:16 1970 +0000
613 | | | | summary: (16) merge two known; one immediate right, one near right
613 | | | | summary: (16) merge two known; one immediate right, one near right
614 | | | |
614 | | | |
615 o | | | changeset: 15:1dda3f72782d
615 o | | | changeset: 15:1dda3f72782d
616 |\ \ \ \ parent: 13:22d8966a97e3
616 |\ \ \ \ parent: 13:22d8966a97e3
617 | | | | | parent: 14:8eac370358ef
617 | | | | | parent: 14:8eac370358ef
618 | | | | | user: test
618 | | | | | user: test
619 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
619 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
620 | | | | | summary: (15) expand
620 | | | | | summary: (15) expand
621 | | | | |
621 | | | | |
622 | o-----+ changeset: 14:8eac370358ef
622 | o-----+ changeset: 14:8eac370358ef
623 | | | | | parent: 0:e6eb3150255d
623 | | | | | parent: 0:e6eb3150255d
624 | |/ / / parent: 12:86b91144a6e9
624 | |/ / / parent: 12:86b91144a6e9
625 | | | | user: test
625 | | | | user: test
626 | | | | date: Thu Jan 01 00:00:14 1970 +0000
626 | | | | date: Thu Jan 01 00:00:14 1970 +0000
627 | | | | summary: (14) merge two known; one immediate right, one far right
627 | | | | summary: (14) merge two known; one immediate right, one far right
628 | | | |
628 | | | |
629 o | | | changeset: 13:22d8966a97e3
629 o | | | changeset: 13:22d8966a97e3
630 |\ \ \ \ parent: 9:7010c0af0a35
630 |\ \ \ \ parent: 9:7010c0af0a35
631 | | | | | parent: 11:832d76e6bdf2
631 | | | | | parent: 11:832d76e6bdf2
632 | | | | | user: test
632 | | | | | user: test
633 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
633 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
634 | | | | | summary: (13) expand
634 | | | | | summary: (13) expand
635 | | | | |
635 | | | | |
636 +---o | | changeset: 12:86b91144a6e9
636 +---o | | changeset: 12:86b91144a6e9
637 | | |/ / parent: 1:6db2ef61d156
637 | | |/ / parent: 1:6db2ef61d156
638 | | | | parent: 9:7010c0af0a35
638 | | | | parent: 9:7010c0af0a35
639 | | | | user: test
639 | | | | user: test
640 | | | | date: Thu Jan 01 00:00:12 1970 +0000
640 | | | | date: Thu Jan 01 00:00:12 1970 +0000
641 | | | | summary: (12) merge two known; one immediate right, one far left
641 | | | | summary: (12) merge two known; one immediate right, one far left
642 | | | |
642 | | | |
643 | o | | changeset: 11:832d76e6bdf2
643 | o | | changeset: 11:832d76e6bdf2
644 | |\ \ \ parent: 6:b105a072e251
644 | |\ \ \ parent: 6:b105a072e251
645 | | | | | parent: 10:74c64d036d72
645 | | | | | parent: 10:74c64d036d72
646 | | | | | user: test
646 | | | | | user: test
647 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
647 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
648 | | | | | summary: (11) expand
648 | | | | | summary: (11) expand
649 | | | | |
649 | | | | |
650 | | o---+ changeset: 10:74c64d036d72
650 | | o---+ changeset: 10:74c64d036d72
651 | | | | | parent: 0:e6eb3150255d
651 | | | | | parent: 0:e6eb3150255d
652 | |/ / / parent: 6:b105a072e251
652 | |/ / / parent: 6:b105a072e251
653 | | | | user: test
653 | | | | user: test
654 | | | | date: Thu Jan 01 00:00:10 1970 +0000
654 | | | | date: Thu Jan 01 00:00:10 1970 +0000
655 | | | | summary: (10) merge two known; one immediate left, one near right
655 | | | | summary: (10) merge two known; one immediate left, one near right
656 | | | |
656 | | | |
657 o | | | changeset: 9:7010c0af0a35
657 o | | | changeset: 9:7010c0af0a35
658 |\ \ \ \ parent: 7:b632bb1b1224
658 |\ \ \ \ parent: 7:b632bb1b1224
659 | | | | | parent: 8:7a0b11f71937
659 | | | | | parent: 8:7a0b11f71937
660 | | | | | user: test
660 | | | | | user: test
661 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
661 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
662 | | | | | summary: (9) expand
662 | | | | | summary: (9) expand
663 | | | | |
663 | | | | |
664 | o-----+ changeset: 8:7a0b11f71937
664 | o-----+ changeset: 8:7a0b11f71937
665 | | | | | parent: 0:e6eb3150255d
665 | | | | | parent: 0:e6eb3150255d
666 |/ / / / parent: 7:b632bb1b1224
666 |/ / / / parent: 7:b632bb1b1224
667 | | | | user: test
667 | | | | user: test
668 | | | | date: Thu Jan 01 00:00:08 1970 +0000
668 | | | | date: Thu Jan 01 00:00:08 1970 +0000
669 | | | | summary: (8) merge two known; one immediate left, one far right
669 | | | | summary: (8) merge two known; one immediate left, one far right
670 | | | |
670 | | | |
671 o | | | changeset: 7:b632bb1b1224
671 o | | | changeset: 7:b632bb1b1224
672 |\ \ \ \ parent: 2:3d9a33b8d1e1
672 |\ \ \ \ parent: 2:3d9a33b8d1e1
673 | | | | | parent: 5:4409d547b708
673 | | | | | parent: 5:4409d547b708
674 | | | | | user: test
674 | | | | | user: test
675 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
675 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
676 | | | | | summary: (7) expand
676 | | | | | summary: (7) expand
677 | | | | |
677 | | | | |
678 +---o | | changeset: 6:b105a072e251
678 +---o | | changeset: 6:b105a072e251
679 | |/ / / parent: 2:3d9a33b8d1e1
679 | |/ / / parent: 2:3d9a33b8d1e1
680 | | | | parent: 5:4409d547b708
680 | | | | parent: 5:4409d547b708
681 | | | | user: test
681 | | | | user: test
682 | | | | date: Thu Jan 01 00:00:06 1970 +0000
682 | | | | date: Thu Jan 01 00:00:06 1970 +0000
683 | | | | summary: (6) merge two known; one immediate left, one far left
683 | | | | summary: (6) merge two known; one immediate left, one far left
684 | | | |
684 | | | |
685 | o | | changeset: 5:4409d547b708
685 | o | | changeset: 5:4409d547b708
686 | |\ \ \ parent: 3:27eef8ed80b4
686 | |\ \ \ parent: 3:27eef8ed80b4
687 | | | | | parent: 4:26a8bac39d9f
687 | | | | | parent: 4:26a8bac39d9f
688 | | | | | user: test
688 | | | | | user: test
689 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
689 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
690 | | | | | summary: (5) expand
690 | | | | | summary: (5) expand
691 | | | | |
691 | | | | |
692 | | o | | changeset: 4:26a8bac39d9f
692 | | o | | changeset: 4:26a8bac39d9f
693 | |/|/ / parent: 1:6db2ef61d156
693 | |/|/ / parent: 1:6db2ef61d156
694 | | | | parent: 3:27eef8ed80b4
694 | | | | parent: 3:27eef8ed80b4
695 | | | | user: test
695 | | | | user: test
696 | | | | date: Thu Jan 01 00:00:04 1970 +0000
696 | | | | date: Thu Jan 01 00:00:04 1970 +0000
697 | | | | summary: (4) merge two known; one immediate left, one immediate right
697 | | | | summary: (4) merge two known; one immediate left, one immediate right
698 | | | |
698 | | | |
699 | o | | changeset: 3:27eef8ed80b4
699 | o | | changeset: 3:27eef8ed80b4
700 |/ / / user: test
700 |/ / / user: test
701 | | | date: Thu Jan 01 00:00:03 1970 +0000
701 | | | date: Thu Jan 01 00:00:03 1970 +0000
702 | | | summary: (3) collapse
702 | | | summary: (3) collapse
703 | | |
703 | | |
704 o | | changeset: 2:3d9a33b8d1e1
704 o | | changeset: 2:3d9a33b8d1e1
705 |/ / user: test
705 |/ / user: test
706 | | date: Thu Jan 01 00:00:02 1970 +0000
706 | | date: Thu Jan 01 00:00:02 1970 +0000
707 | | summary: (2) collapse
707 | | summary: (2) collapse
708 | |
708 | |
709 o | changeset: 1:6db2ef61d156
709 o | changeset: 1:6db2ef61d156
710 |/ user: test
710 |/ user: test
711 | date: Thu Jan 01 00:00:01 1970 +0000
711 | date: Thu Jan 01 00:00:01 1970 +0000
712 | summary: (1) collapse
712 | summary: (1) collapse
713 |
713 |
714 o changeset: 0:e6eb3150255d
714 o changeset: 0:e6eb3150255d
715 user: test
715 user: test
716 date: Thu Jan 01 00:00:00 1970 +0000
716 date: Thu Jan 01 00:00:00 1970 +0000
717 summary: (0) root
717 summary: (0) root
718
718
719
719
720 File glog per revset:
720 File glog per revset:
721
721
722 $ hg log -G -r 'file("a")'
722 $ hg log -G -r 'file("a")'
723 @ changeset: 34:fea3ac5810e0
723 @ changeset: 34:fea3ac5810e0
724 | tag: tip
724 | tag: tip
725 | parent: 32:d06dffa21a31
725 | parent: 32:d06dffa21a31
726 | user: test
726 | user: test
727 | date: Thu Jan 01 00:00:34 1970 +0000
727 | date: Thu Jan 01 00:00:34 1970 +0000
728 | summary: (34) head
728 | summary: (34) head
729 |
729 |
730 | o changeset: 33:68608f5145f9
730 | o changeset: 33:68608f5145f9
731 | | parent: 18:1aa84d96232a
731 | | parent: 18:1aa84d96232a
732 | | user: test
732 | | user: test
733 | | date: Thu Jan 01 00:00:33 1970 +0000
733 | | date: Thu Jan 01 00:00:33 1970 +0000
734 | | summary: (33) head
734 | | summary: (33) head
735 | |
735 | |
736 o | changeset: 32:d06dffa21a31
736 o | changeset: 32:d06dffa21a31
737 |\ \ parent: 27:886ed638191b
737 |\ \ parent: 27:886ed638191b
738 | | | parent: 31:621d83e11f67
738 | | | parent: 31:621d83e11f67
739 | | | user: test
739 | | | user: test
740 | | | date: Thu Jan 01 00:00:32 1970 +0000
740 | | | date: Thu Jan 01 00:00:32 1970 +0000
741 | | | summary: (32) expand
741 | | | summary: (32) expand
742 | | |
742 | | |
743 | o | changeset: 31:621d83e11f67
743 | o | changeset: 31:621d83e11f67
744 | |\ \ parent: 21:d42a756af44d
744 | |\ \ parent: 21:d42a756af44d
745 | | | | parent: 30:6e11cd4b648f
745 | | | | parent: 30:6e11cd4b648f
746 | | | | user: test
746 | | | | user: test
747 | | | | date: Thu Jan 01 00:00:31 1970 +0000
747 | | | | date: Thu Jan 01 00:00:31 1970 +0000
748 | | | | summary: (31) expand
748 | | | | summary: (31) expand
749 | | | |
749 | | | |
750 | | o | changeset: 30:6e11cd4b648f
750 | | o | changeset: 30:6e11cd4b648f
751 | | |\ \ parent: 28:44ecd0b9ae99
751 | | |\ \ parent: 28:44ecd0b9ae99
752 | | | | | parent: 29:cd9bb2be7593
752 | | | | | parent: 29:cd9bb2be7593
753 | | | | | user: test
753 | | | | | user: test
754 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
754 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
755 | | | | | summary: (30) expand
755 | | | | | summary: (30) expand
756 | | | | |
756 | | | | |
757 | | | o | changeset: 29:cd9bb2be7593
757 | | | o | changeset: 29:cd9bb2be7593
758 | | | | | parent: 0:e6eb3150255d
758 | | | | | parent: 0:e6eb3150255d
759 | | | | | user: test
759 | | | | | user: test
760 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
760 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
761 | | | | | summary: (29) regular commit
761 | | | | | summary: (29) regular commit
762 | | | | |
762 | | | | |
763 | | o | | changeset: 28:44ecd0b9ae99
763 | | o | | changeset: 28:44ecd0b9ae99
764 | | |\ \ \ parent: 1:6db2ef61d156
764 | | |\ \ \ parent: 1:6db2ef61d156
765 | | | | | | parent: 26:7f25b6c2f0b9
765 | | | | | | parent: 26:7f25b6c2f0b9
766 | | | | | | user: test
766 | | | | | | user: test
767 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
767 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
768 | | | | | | summary: (28) merge zero known
768 | | | | | | summary: (28) merge zero known
769 | | | | | |
769 | | | | | |
770 o | | | | | changeset: 27:886ed638191b
770 o | | | | | changeset: 27:886ed638191b
771 |/ / / / / parent: 21:d42a756af44d
771 |/ / / / / parent: 21:d42a756af44d
772 | | | | | user: test
772 | | | | | user: test
773 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
773 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
774 | | | | | summary: (27) collapse
774 | | | | | summary: (27) collapse
775 | | | | |
775 | | | | |
776 | | o---+ changeset: 26:7f25b6c2f0b9
776 | | o---+ changeset: 26:7f25b6c2f0b9
777 | | | | | parent: 18:1aa84d96232a
777 | | | | | parent: 18:1aa84d96232a
778 | | | | | parent: 25:91da8ed57247
778 | | | | | parent: 25:91da8ed57247
779 | | | | | user: test
779 | | | | | user: test
780 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
780 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
781 | | | | | summary: (26) merge one known; far right
781 | | | | | summary: (26) merge one known; far right
782 | | | | |
782 | | | | |
783 +---o | | changeset: 25:91da8ed57247
783 +---o | | changeset: 25:91da8ed57247
784 | | | | | parent: 21:d42a756af44d
784 | | | | | parent: 21:d42a756af44d
785 | | | | | parent: 24:a9c19a3d96b7
785 | | | | | parent: 24:a9c19a3d96b7
786 | | | | | user: test
786 | | | | | user: test
787 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
787 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
788 | | | | | summary: (25) merge one known; far left
788 | | | | | summary: (25) merge one known; far left
789 | | | | |
789 | | | | |
790 | | o | | changeset: 24:a9c19a3d96b7
790 | | o | | changeset: 24:a9c19a3d96b7
791 | | |\| | parent: 0:e6eb3150255d
791 | | |\| | parent: 0:e6eb3150255d
792 | | | | | parent: 23:a01cddf0766d
792 | | | | | parent: 23:a01cddf0766d
793 | | | | | user: test
793 | | | | | user: test
794 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
794 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
795 | | | | | summary: (24) merge one known; immediate right
795 | | | | | summary: (24) merge one known; immediate right
796 | | | | |
796 | | | | |
797 | | o | | changeset: 23:a01cddf0766d
797 | | o | | changeset: 23:a01cddf0766d
798 | |/| | | parent: 1:6db2ef61d156
798 | |/| | | parent: 1:6db2ef61d156
799 | | | | | parent: 22:e0d9cccacb5d
799 | | | | | parent: 22:e0d9cccacb5d
800 | | | | | user: test
800 | | | | | user: test
801 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
801 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
802 | | | | | summary: (23) merge one known; immediate left
802 | | | | | summary: (23) merge one known; immediate left
803 | | | | |
803 | | | | |
804 +---o---+ changeset: 22:e0d9cccacb5d
804 +---o---+ changeset: 22:e0d9cccacb5d
805 | | | | parent: 18:1aa84d96232a
805 | | | | parent: 18:1aa84d96232a
806 | | / / parent: 21:d42a756af44d
806 | | / / parent: 21:d42a756af44d
807 | | | | user: test
807 | | | | user: test
808 | | | | date: Thu Jan 01 00:00:22 1970 +0000
808 | | | | date: Thu Jan 01 00:00:22 1970 +0000
809 | | | | summary: (22) merge two known; one far left, one far right
809 | | | | summary: (22) merge two known; one far left, one far right
810 | | | |
810 | | | |
811 o | | | changeset: 21:d42a756af44d
811 o | | | changeset: 21:d42a756af44d
812 |\ \ \ \ parent: 19:31ddc2c1573b
812 |\ \ \ \ parent: 19:31ddc2c1573b
813 | | | | | parent: 20:d30ed6450e32
813 | | | | | parent: 20:d30ed6450e32
814 | | | | | user: test
814 | | | | | user: test
815 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
815 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
816 | | | | | summary: (21) expand
816 | | | | | summary: (21) expand
817 | | | | |
817 | | | | |
818 | o---+-+ changeset: 20:d30ed6450e32
818 | o---+-+ changeset: 20:d30ed6450e32
819 | | | | parent: 0:e6eb3150255d
819 | | | | parent: 0:e6eb3150255d
820 | / / / parent: 18:1aa84d96232a
820 | / / / parent: 18:1aa84d96232a
821 | | | | user: test
821 | | | | user: test
822 | | | | date: Thu Jan 01 00:00:20 1970 +0000
822 | | | | date: Thu Jan 01 00:00:20 1970 +0000
823 | | | | summary: (20) merge two known; two far right
823 | | | | summary: (20) merge two known; two far right
824 | | | |
824 | | | |
825 o | | | changeset: 19:31ddc2c1573b
825 o | | | changeset: 19:31ddc2c1573b
826 |\ \ \ \ parent: 15:1dda3f72782d
826 |\ \ \ \ parent: 15:1dda3f72782d
827 | | | | | parent: 17:44765d7c06e0
827 | | | | | parent: 17:44765d7c06e0
828 | | | | | user: test
828 | | | | | user: test
829 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
829 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
830 | | | | | summary: (19) expand
830 | | | | | summary: (19) expand
831 | | | | |
831 | | | | |
832 +---+---o changeset: 18:1aa84d96232a
832 +---+---o changeset: 18:1aa84d96232a
833 | | | | parent: 1:6db2ef61d156
833 | | | | parent: 1:6db2ef61d156
834 | | | | parent: 15:1dda3f72782d
834 | | | | parent: 15:1dda3f72782d
835 | | | | user: test
835 | | | | user: test
836 | | | | date: Thu Jan 01 00:00:18 1970 +0000
836 | | | | date: Thu Jan 01 00:00:18 1970 +0000
837 | | | | summary: (18) merge two known; two far left
837 | | | | summary: (18) merge two known; two far left
838 | | | |
838 | | | |
839 | o | | changeset: 17:44765d7c06e0
839 | o | | changeset: 17:44765d7c06e0
840 | |\ \ \ parent: 12:86b91144a6e9
840 | |\ \ \ parent: 12:86b91144a6e9
841 | | | | | parent: 16:3677d192927d
841 | | | | | parent: 16:3677d192927d
842 | | | | | user: test
842 | | | | | user: test
843 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
843 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
844 | | | | | summary: (17) expand
844 | | | | | summary: (17) expand
845 | | | | |
845 | | | | |
846 | | o---+ changeset: 16:3677d192927d
846 | | o---+ changeset: 16:3677d192927d
847 | | | | | parent: 0:e6eb3150255d
847 | | | | | parent: 0:e6eb3150255d
848 | | |/ / parent: 1:6db2ef61d156
848 | | |/ / parent: 1:6db2ef61d156
849 | | | | user: test
849 | | | | user: test
850 | | | | date: Thu Jan 01 00:00:16 1970 +0000
850 | | | | date: Thu Jan 01 00:00:16 1970 +0000
851 | | | | summary: (16) merge two known; one immediate right, one near right
851 | | | | summary: (16) merge two known; one immediate right, one near right
852 | | | |
852 | | | |
853 o | | | changeset: 15:1dda3f72782d
853 o | | | changeset: 15:1dda3f72782d
854 |\ \ \ \ parent: 13:22d8966a97e3
854 |\ \ \ \ parent: 13:22d8966a97e3
855 | | | | | parent: 14:8eac370358ef
855 | | | | | parent: 14:8eac370358ef
856 | | | | | user: test
856 | | | | | user: test
857 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
857 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
858 | | | | | summary: (15) expand
858 | | | | | summary: (15) expand
859 | | | | |
859 | | | | |
860 | o-----+ changeset: 14:8eac370358ef
860 | o-----+ changeset: 14:8eac370358ef
861 | | | | | parent: 0:e6eb3150255d
861 | | | | | parent: 0:e6eb3150255d
862 | |/ / / parent: 12:86b91144a6e9
862 | |/ / / parent: 12:86b91144a6e9
863 | | | | user: test
863 | | | | user: test
864 | | | | date: Thu Jan 01 00:00:14 1970 +0000
864 | | | | date: Thu Jan 01 00:00:14 1970 +0000
865 | | | | summary: (14) merge two known; one immediate right, one far right
865 | | | | summary: (14) merge two known; one immediate right, one far right
866 | | | |
866 | | | |
867 o | | | changeset: 13:22d8966a97e3
867 o | | | changeset: 13:22d8966a97e3
868 |\ \ \ \ parent: 9:7010c0af0a35
868 |\ \ \ \ parent: 9:7010c0af0a35
869 | | | | | parent: 11:832d76e6bdf2
869 | | | | | parent: 11:832d76e6bdf2
870 | | | | | user: test
870 | | | | | user: test
871 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
871 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
872 | | | | | summary: (13) expand
872 | | | | | summary: (13) expand
873 | | | | |
873 | | | | |
874 +---o | | changeset: 12:86b91144a6e9
874 +---o | | changeset: 12:86b91144a6e9
875 | | |/ / parent: 1:6db2ef61d156
875 | | |/ / parent: 1:6db2ef61d156
876 | | | | parent: 9:7010c0af0a35
876 | | | | parent: 9:7010c0af0a35
877 | | | | user: test
877 | | | | user: test
878 | | | | date: Thu Jan 01 00:00:12 1970 +0000
878 | | | | date: Thu Jan 01 00:00:12 1970 +0000
879 | | | | summary: (12) merge two known; one immediate right, one far left
879 | | | | summary: (12) merge two known; one immediate right, one far left
880 | | | |
880 | | | |
881 | o | | changeset: 11:832d76e6bdf2
881 | o | | changeset: 11:832d76e6bdf2
882 | |\ \ \ parent: 6:b105a072e251
882 | |\ \ \ parent: 6:b105a072e251
883 | | | | | parent: 10:74c64d036d72
883 | | | | | parent: 10:74c64d036d72
884 | | | | | user: test
884 | | | | | user: test
885 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
885 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
886 | | | | | summary: (11) expand
886 | | | | | summary: (11) expand
887 | | | | |
887 | | | | |
888 | | o---+ changeset: 10:74c64d036d72
888 | | o---+ changeset: 10:74c64d036d72
889 | | | | | parent: 0:e6eb3150255d
889 | | | | | parent: 0:e6eb3150255d
890 | |/ / / parent: 6:b105a072e251
890 | |/ / / parent: 6:b105a072e251
891 | | | | user: test
891 | | | | user: test
892 | | | | date: Thu Jan 01 00:00:10 1970 +0000
892 | | | | date: Thu Jan 01 00:00:10 1970 +0000
893 | | | | summary: (10) merge two known; one immediate left, one near right
893 | | | | summary: (10) merge two known; one immediate left, one near right
894 | | | |
894 | | | |
895 o | | | changeset: 9:7010c0af0a35
895 o | | | changeset: 9:7010c0af0a35
896 |\ \ \ \ parent: 7:b632bb1b1224
896 |\ \ \ \ parent: 7:b632bb1b1224
897 | | | | | parent: 8:7a0b11f71937
897 | | | | | parent: 8:7a0b11f71937
898 | | | | | user: test
898 | | | | | user: test
899 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
899 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
900 | | | | | summary: (9) expand
900 | | | | | summary: (9) expand
901 | | | | |
901 | | | | |
902 | o-----+ changeset: 8:7a0b11f71937
902 | o-----+ changeset: 8:7a0b11f71937
903 | | | | | parent: 0:e6eb3150255d
903 | | | | | parent: 0:e6eb3150255d
904 |/ / / / parent: 7:b632bb1b1224
904 |/ / / / parent: 7:b632bb1b1224
905 | | | | user: test
905 | | | | user: test
906 | | | | date: Thu Jan 01 00:00:08 1970 +0000
906 | | | | date: Thu Jan 01 00:00:08 1970 +0000
907 | | | | summary: (8) merge two known; one immediate left, one far right
907 | | | | summary: (8) merge two known; one immediate left, one far right
908 | | | |
908 | | | |
909 o | | | changeset: 7:b632bb1b1224
909 o | | | changeset: 7:b632bb1b1224
910 |\ \ \ \ parent: 2:3d9a33b8d1e1
910 |\ \ \ \ parent: 2:3d9a33b8d1e1
911 | | | | | parent: 5:4409d547b708
911 | | | | | parent: 5:4409d547b708
912 | | | | | user: test
912 | | | | | user: test
913 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
913 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
914 | | | | | summary: (7) expand
914 | | | | | summary: (7) expand
915 | | | | |
915 | | | | |
916 +---o | | changeset: 6:b105a072e251
916 +---o | | changeset: 6:b105a072e251
917 | |/ / / parent: 2:3d9a33b8d1e1
917 | |/ / / parent: 2:3d9a33b8d1e1
918 | | | | parent: 5:4409d547b708
918 | | | | parent: 5:4409d547b708
919 | | | | user: test
919 | | | | user: test
920 | | | | date: Thu Jan 01 00:00:06 1970 +0000
920 | | | | date: Thu Jan 01 00:00:06 1970 +0000
921 | | | | summary: (6) merge two known; one immediate left, one far left
921 | | | | summary: (6) merge two known; one immediate left, one far left
922 | | | |
922 | | | |
923 | o | | changeset: 5:4409d547b708
923 | o | | changeset: 5:4409d547b708
924 | |\ \ \ parent: 3:27eef8ed80b4
924 | |\ \ \ parent: 3:27eef8ed80b4
925 | | | | | parent: 4:26a8bac39d9f
925 | | | | | parent: 4:26a8bac39d9f
926 | | | | | user: test
926 | | | | | user: test
927 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
927 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
928 | | | | | summary: (5) expand
928 | | | | | summary: (5) expand
929 | | | | |
929 | | | | |
930 | | o | | changeset: 4:26a8bac39d9f
930 | | o | | changeset: 4:26a8bac39d9f
931 | |/|/ / parent: 1:6db2ef61d156
931 | |/|/ / parent: 1:6db2ef61d156
932 | | | | parent: 3:27eef8ed80b4
932 | | | | parent: 3:27eef8ed80b4
933 | | | | user: test
933 | | | | user: test
934 | | | | date: Thu Jan 01 00:00:04 1970 +0000
934 | | | | date: Thu Jan 01 00:00:04 1970 +0000
935 | | | | summary: (4) merge two known; one immediate left, one immediate right
935 | | | | summary: (4) merge two known; one immediate left, one immediate right
936 | | | |
936 | | | |
937 | o | | changeset: 3:27eef8ed80b4
937 | o | | changeset: 3:27eef8ed80b4
938 |/ / / user: test
938 |/ / / user: test
939 | | | date: Thu Jan 01 00:00:03 1970 +0000
939 | | | date: Thu Jan 01 00:00:03 1970 +0000
940 | | | summary: (3) collapse
940 | | | summary: (3) collapse
941 | | |
941 | | |
942 o | | changeset: 2:3d9a33b8d1e1
942 o | | changeset: 2:3d9a33b8d1e1
943 |/ / user: test
943 |/ / user: test
944 | | date: Thu Jan 01 00:00:02 1970 +0000
944 | | date: Thu Jan 01 00:00:02 1970 +0000
945 | | summary: (2) collapse
945 | | summary: (2) collapse
946 | |
946 | |
947 o | changeset: 1:6db2ef61d156
947 o | changeset: 1:6db2ef61d156
948 |/ user: test
948 |/ user: test
949 | date: Thu Jan 01 00:00:01 1970 +0000
949 | date: Thu Jan 01 00:00:01 1970 +0000
950 | summary: (1) collapse
950 | summary: (1) collapse
951 |
951 |
952 o changeset: 0:e6eb3150255d
952 o changeset: 0:e6eb3150255d
953 user: test
953 user: test
954 date: Thu Jan 01 00:00:00 1970 +0000
954 date: Thu Jan 01 00:00:00 1970 +0000
955 summary: (0) root
955 summary: (0) root
956
956
957
957
958
958
959 File glog per revset (only merges):
959 File glog per revset (only merges):
960
960
961 $ hg log -G -r 'file("a")' -m
961 $ hg log -G -r 'file("a")' -m
962 o changeset: 32:d06dffa21a31
962 o changeset: 32:d06dffa21a31
963 |\ parent: 27:886ed638191b
963 |\ parent: 27:886ed638191b
964 | : parent: 31:621d83e11f67
964 | : parent: 31:621d83e11f67
965 | : user: test
965 | : user: test
966 | : date: Thu Jan 01 00:00:32 1970 +0000
966 | : date: Thu Jan 01 00:00:32 1970 +0000
967 | : summary: (32) expand
967 | : summary: (32) expand
968 | :
968 | :
969 o : changeset: 31:621d83e11f67
969 o : changeset: 31:621d83e11f67
970 |\: parent: 21:d42a756af44d
970 |\: parent: 21:d42a756af44d
971 | : parent: 30:6e11cd4b648f
971 | : parent: 30:6e11cd4b648f
972 | : user: test
972 | : user: test
973 | : date: Thu Jan 01 00:00:31 1970 +0000
973 | : date: Thu Jan 01 00:00:31 1970 +0000
974 | : summary: (31) expand
974 | : summary: (31) expand
975 | :
975 | :
976 o : changeset: 30:6e11cd4b648f
976 o : changeset: 30:6e11cd4b648f
977 |\ \ parent: 28:44ecd0b9ae99
977 |\ \ parent: 28:44ecd0b9ae99
978 | ~ : parent: 29:cd9bb2be7593
978 | ~ : parent: 29:cd9bb2be7593
979 | : user: test
979 | : user: test
980 | : date: Thu Jan 01 00:00:30 1970 +0000
980 | : date: Thu Jan 01 00:00:30 1970 +0000
981 | : summary: (30) expand
981 | : summary: (30) expand
982 | /
982 | /
983 o : changeset: 28:44ecd0b9ae99
983 o : changeset: 28:44ecd0b9ae99
984 |\ \ parent: 1:6db2ef61d156
984 |\ \ parent: 1:6db2ef61d156
985 | ~ : parent: 26:7f25b6c2f0b9
985 | ~ : parent: 26:7f25b6c2f0b9
986 | : user: test
986 | : user: test
987 | : date: Thu Jan 01 00:00:28 1970 +0000
987 | : date: Thu Jan 01 00:00:28 1970 +0000
988 | : summary: (28) merge zero known
988 | : summary: (28) merge zero known
989 | /
989 | /
990 o : changeset: 26:7f25b6c2f0b9
990 o : changeset: 26:7f25b6c2f0b9
991 |\ \ parent: 18:1aa84d96232a
991 |\ \ parent: 18:1aa84d96232a
992 | | : parent: 25:91da8ed57247
992 | | : parent: 25:91da8ed57247
993 | | : user: test
993 | | : user: test
994 | | : date: Thu Jan 01 00:00:26 1970 +0000
994 | | : date: Thu Jan 01 00:00:26 1970 +0000
995 | | : summary: (26) merge one known; far right
995 | | : summary: (26) merge one known; far right
996 | | :
996 | | :
997 | o : changeset: 25:91da8ed57247
997 | o : changeset: 25:91da8ed57247
998 | |\: parent: 21:d42a756af44d
998 | |\: parent: 21:d42a756af44d
999 | | : parent: 24:a9c19a3d96b7
999 | | : parent: 24:a9c19a3d96b7
1000 | | : user: test
1000 | | : user: test
1001 | | : date: Thu Jan 01 00:00:25 1970 +0000
1001 | | : date: Thu Jan 01 00:00:25 1970 +0000
1002 | | : summary: (25) merge one known; far left
1002 | | : summary: (25) merge one known; far left
1003 | | :
1003 | | :
1004 | o : changeset: 24:a9c19a3d96b7
1004 | o : changeset: 24:a9c19a3d96b7
1005 | |\ \ parent: 0:e6eb3150255d
1005 | |\ \ parent: 0:e6eb3150255d
1006 | | ~ : parent: 23:a01cddf0766d
1006 | | ~ : parent: 23:a01cddf0766d
1007 | | : user: test
1007 | | : user: test
1008 | | : date: Thu Jan 01 00:00:24 1970 +0000
1008 | | : date: Thu Jan 01 00:00:24 1970 +0000
1009 | | : summary: (24) merge one known; immediate right
1009 | | : summary: (24) merge one known; immediate right
1010 | | /
1010 | | /
1011 | o : changeset: 23:a01cddf0766d
1011 | o : changeset: 23:a01cddf0766d
1012 | |\ \ parent: 1:6db2ef61d156
1012 | |\ \ parent: 1:6db2ef61d156
1013 | | ~ : parent: 22:e0d9cccacb5d
1013 | | ~ : parent: 22:e0d9cccacb5d
1014 | | : user: test
1014 | | : user: test
1015 | | : date: Thu Jan 01 00:00:23 1970 +0000
1015 | | : date: Thu Jan 01 00:00:23 1970 +0000
1016 | | : summary: (23) merge one known; immediate left
1016 | | : summary: (23) merge one known; immediate left
1017 | | /
1017 | | /
1018 | o : changeset: 22:e0d9cccacb5d
1018 | o : changeset: 22:e0d9cccacb5d
1019 |/:/ parent: 18:1aa84d96232a
1019 |/:/ parent: 18:1aa84d96232a
1020 | : parent: 21:d42a756af44d
1020 | : parent: 21:d42a756af44d
1021 | : user: test
1021 | : user: test
1022 | : date: Thu Jan 01 00:00:22 1970 +0000
1022 | : date: Thu Jan 01 00:00:22 1970 +0000
1023 | : summary: (22) merge two known; one far left, one far right
1023 | : summary: (22) merge two known; one far left, one far right
1024 | :
1024 | :
1025 | o changeset: 21:d42a756af44d
1025 | o changeset: 21:d42a756af44d
1026 | |\ parent: 19:31ddc2c1573b
1026 | |\ parent: 19:31ddc2c1573b
1027 | | | parent: 20:d30ed6450e32
1027 | | | parent: 20:d30ed6450e32
1028 | | | user: test
1028 | | | user: test
1029 | | | date: Thu Jan 01 00:00:21 1970 +0000
1029 | | | date: Thu Jan 01 00:00:21 1970 +0000
1030 | | | summary: (21) expand
1030 | | | summary: (21) expand
1031 | | |
1031 | | |
1032 +---o changeset: 20:d30ed6450e32
1032 +---o changeset: 20:d30ed6450e32
1033 | | | parent: 0:e6eb3150255d
1033 | | | parent: 0:e6eb3150255d
1034 | | ~ parent: 18:1aa84d96232a
1034 | | ~ parent: 18:1aa84d96232a
1035 | | user: test
1035 | | user: test
1036 | | date: Thu Jan 01 00:00:20 1970 +0000
1036 | | date: Thu Jan 01 00:00:20 1970 +0000
1037 | | summary: (20) merge two known; two far right
1037 | | summary: (20) merge two known; two far right
1038 | |
1038 | |
1039 | o changeset: 19:31ddc2c1573b
1039 | o changeset: 19:31ddc2c1573b
1040 | |\ parent: 15:1dda3f72782d
1040 | |\ parent: 15:1dda3f72782d
1041 | | | parent: 17:44765d7c06e0
1041 | | | parent: 17:44765d7c06e0
1042 | | | user: test
1042 | | | user: test
1043 | | | date: Thu Jan 01 00:00:19 1970 +0000
1043 | | | date: Thu Jan 01 00:00:19 1970 +0000
1044 | | | summary: (19) expand
1044 | | | summary: (19) expand
1045 | | |
1045 | | |
1046 o | | changeset: 18:1aa84d96232a
1046 o | | changeset: 18:1aa84d96232a
1047 |\| | parent: 1:6db2ef61d156
1047 |\| | parent: 1:6db2ef61d156
1048 ~ | | parent: 15:1dda3f72782d
1048 ~ | | parent: 15:1dda3f72782d
1049 | | user: test
1049 | | user: test
1050 | | date: Thu Jan 01 00:00:18 1970 +0000
1050 | | date: Thu Jan 01 00:00:18 1970 +0000
1051 | | summary: (18) merge two known; two far left
1051 | | summary: (18) merge two known; two far left
1052 / /
1052 / /
1053 | o changeset: 17:44765d7c06e0
1053 | o changeset: 17:44765d7c06e0
1054 | |\ parent: 12:86b91144a6e9
1054 | |\ parent: 12:86b91144a6e9
1055 | | | parent: 16:3677d192927d
1055 | | | parent: 16:3677d192927d
1056 | | | user: test
1056 | | | user: test
1057 | | | date: Thu Jan 01 00:00:17 1970 +0000
1057 | | | date: Thu Jan 01 00:00:17 1970 +0000
1058 | | | summary: (17) expand
1058 | | | summary: (17) expand
1059 | | |
1059 | | |
1060 | | o changeset: 16:3677d192927d
1060 | | o changeset: 16:3677d192927d
1061 | | |\ parent: 0:e6eb3150255d
1061 | | |\ parent: 0:e6eb3150255d
1062 | | ~ ~ parent: 1:6db2ef61d156
1062 | | ~ ~ parent: 1:6db2ef61d156
1063 | | user: test
1063 | | user: test
1064 | | date: Thu Jan 01 00:00:16 1970 +0000
1064 | | date: Thu Jan 01 00:00:16 1970 +0000
1065 | | summary: (16) merge two known; one immediate right, one near right
1065 | | summary: (16) merge two known; one immediate right, one near right
1066 | |
1066 | |
1067 o | changeset: 15:1dda3f72782d
1067 o | changeset: 15:1dda3f72782d
1068 |\ \ parent: 13:22d8966a97e3
1068 |\ \ parent: 13:22d8966a97e3
1069 | | | parent: 14:8eac370358ef
1069 | | | parent: 14:8eac370358ef
1070 | | | user: test
1070 | | | user: test
1071 | | | date: Thu Jan 01 00:00:15 1970 +0000
1071 | | | date: Thu Jan 01 00:00:15 1970 +0000
1072 | | | summary: (15) expand
1072 | | | summary: (15) expand
1073 | | |
1073 | | |
1074 | o | changeset: 14:8eac370358ef
1074 | o | changeset: 14:8eac370358ef
1075 | |\| parent: 0:e6eb3150255d
1075 | |\| parent: 0:e6eb3150255d
1076 | ~ | parent: 12:86b91144a6e9
1076 | ~ | parent: 12:86b91144a6e9
1077 | | user: test
1077 | | user: test
1078 | | date: Thu Jan 01 00:00:14 1970 +0000
1078 | | date: Thu Jan 01 00:00:14 1970 +0000
1079 | | summary: (14) merge two known; one immediate right, one far right
1079 | | summary: (14) merge two known; one immediate right, one far right
1080 | /
1080 | /
1081 o | changeset: 13:22d8966a97e3
1081 o | changeset: 13:22d8966a97e3
1082 |\ \ parent: 9:7010c0af0a35
1082 |\ \ parent: 9:7010c0af0a35
1083 | | | parent: 11:832d76e6bdf2
1083 | | | parent: 11:832d76e6bdf2
1084 | | | user: test
1084 | | | user: test
1085 | | | date: Thu Jan 01 00:00:13 1970 +0000
1085 | | | date: Thu Jan 01 00:00:13 1970 +0000
1086 | | | summary: (13) expand
1086 | | | summary: (13) expand
1087 | | |
1087 | | |
1088 +---o changeset: 12:86b91144a6e9
1088 +---o changeset: 12:86b91144a6e9
1089 | | | parent: 1:6db2ef61d156
1089 | | | parent: 1:6db2ef61d156
1090 | | ~ parent: 9:7010c0af0a35
1090 | | ~ parent: 9:7010c0af0a35
1091 | | user: test
1091 | | user: test
1092 | | date: Thu Jan 01 00:00:12 1970 +0000
1092 | | date: Thu Jan 01 00:00:12 1970 +0000
1093 | | summary: (12) merge two known; one immediate right, one far left
1093 | | summary: (12) merge two known; one immediate right, one far left
1094 | |
1094 | |
1095 | o changeset: 11:832d76e6bdf2
1095 | o changeset: 11:832d76e6bdf2
1096 | |\ parent: 6:b105a072e251
1096 | |\ parent: 6:b105a072e251
1097 | | | parent: 10:74c64d036d72
1097 | | | parent: 10:74c64d036d72
1098 | | | user: test
1098 | | | user: test
1099 | | | date: Thu Jan 01 00:00:11 1970 +0000
1099 | | | date: Thu Jan 01 00:00:11 1970 +0000
1100 | | | summary: (11) expand
1100 | | | summary: (11) expand
1101 | | |
1101 | | |
1102 | | o changeset: 10:74c64d036d72
1102 | | o changeset: 10:74c64d036d72
1103 | |/| parent: 0:e6eb3150255d
1103 | |/| parent: 0:e6eb3150255d
1104 | | ~ parent: 6:b105a072e251
1104 | | ~ parent: 6:b105a072e251
1105 | | user: test
1105 | | user: test
1106 | | date: Thu Jan 01 00:00:10 1970 +0000
1106 | | date: Thu Jan 01 00:00:10 1970 +0000
1107 | | summary: (10) merge two known; one immediate left, one near right
1107 | | summary: (10) merge two known; one immediate left, one near right
1108 | |
1108 | |
1109 o | changeset: 9:7010c0af0a35
1109 o | changeset: 9:7010c0af0a35
1110 |\ \ parent: 7:b632bb1b1224
1110 |\ \ parent: 7:b632bb1b1224
1111 | | | parent: 8:7a0b11f71937
1111 | | | parent: 8:7a0b11f71937
1112 | | | user: test
1112 | | | user: test
1113 | | | date: Thu Jan 01 00:00:09 1970 +0000
1113 | | | date: Thu Jan 01 00:00:09 1970 +0000
1114 | | | summary: (9) expand
1114 | | | summary: (9) expand
1115 | | |
1115 | | |
1116 | o | changeset: 8:7a0b11f71937
1116 | o | changeset: 8:7a0b11f71937
1117 |/| | parent: 0:e6eb3150255d
1117 |/| | parent: 0:e6eb3150255d
1118 | ~ | parent: 7:b632bb1b1224
1118 | ~ | parent: 7:b632bb1b1224
1119 | | user: test
1119 | | user: test
1120 | | date: Thu Jan 01 00:00:08 1970 +0000
1120 | | date: Thu Jan 01 00:00:08 1970 +0000
1121 | | summary: (8) merge two known; one immediate left, one far right
1121 | | summary: (8) merge two known; one immediate left, one far right
1122 | /
1122 | /
1123 o | changeset: 7:b632bb1b1224
1123 o | changeset: 7:b632bb1b1224
1124 |\ \ parent: 2:3d9a33b8d1e1
1124 |\ \ parent: 2:3d9a33b8d1e1
1125 | ~ | parent: 5:4409d547b708
1125 | ~ | parent: 5:4409d547b708
1126 | | user: test
1126 | | user: test
1127 | | date: Thu Jan 01 00:00:07 1970 +0000
1127 | | date: Thu Jan 01 00:00:07 1970 +0000
1128 | | summary: (7) expand
1128 | | summary: (7) expand
1129 | /
1129 | /
1130 | o changeset: 6:b105a072e251
1130 | o changeset: 6:b105a072e251
1131 |/| parent: 2:3d9a33b8d1e1
1131 |/| parent: 2:3d9a33b8d1e1
1132 | ~ parent: 5:4409d547b708
1132 | ~ parent: 5:4409d547b708
1133 | user: test
1133 | user: test
1134 | date: Thu Jan 01 00:00:06 1970 +0000
1134 | date: Thu Jan 01 00:00:06 1970 +0000
1135 | summary: (6) merge two known; one immediate left, one far left
1135 | summary: (6) merge two known; one immediate left, one far left
1136 |
1136 |
1137 o changeset: 5:4409d547b708
1137 o changeset: 5:4409d547b708
1138 |\ parent: 3:27eef8ed80b4
1138 |\ parent: 3:27eef8ed80b4
1139 | ~ parent: 4:26a8bac39d9f
1139 | ~ parent: 4:26a8bac39d9f
1140 | user: test
1140 | user: test
1141 | date: Thu Jan 01 00:00:05 1970 +0000
1141 | date: Thu Jan 01 00:00:05 1970 +0000
1142 | summary: (5) expand
1142 | summary: (5) expand
1143 |
1143 |
1144 o changeset: 4:26a8bac39d9f
1144 o changeset: 4:26a8bac39d9f
1145 |\ parent: 1:6db2ef61d156
1145 |\ parent: 1:6db2ef61d156
1146 ~ ~ parent: 3:27eef8ed80b4
1146 ~ ~ parent: 3:27eef8ed80b4
1147 user: test
1147 user: test
1148 date: Thu Jan 01 00:00:04 1970 +0000
1148 date: Thu Jan 01 00:00:04 1970 +0000
1149 summary: (4) merge two known; one immediate left, one immediate right
1149 summary: (4) merge two known; one immediate left, one immediate right
1150
1150
1151
1151
1152
1152
1153 Empty revision range - display nothing:
1153 Empty revision range - display nothing:
1154 $ hg log -G -r 1..0
1154 $ hg log -G -r 1..0
1155
1155
1156 $ cd ..
1156 $ cd ..
1157
1157
1158 #if no-outer-repo
1158 #if no-outer-repo
1159
1159
1160 From outer space:
1160 From outer space:
1161 $ hg log -G -l1 repo
1161 $ hg log -G -l1 repo
1162 @ changeset: 34:fea3ac5810e0
1162 @ changeset: 34:fea3ac5810e0
1163 | tag: tip
1163 | tag: tip
1164 ~ parent: 32:d06dffa21a31
1164 ~ parent: 32:d06dffa21a31
1165 user: test
1165 user: test
1166 date: Thu Jan 01 00:00:34 1970 +0000
1166 date: Thu Jan 01 00:00:34 1970 +0000
1167 summary: (34) head
1167 summary: (34) head
1168
1168
1169 $ hg log -G -l1 repo/a
1169 $ hg log -G -l1 repo/a
1170 @ changeset: 34:fea3ac5810e0
1170 @ changeset: 34:fea3ac5810e0
1171 | tag: tip
1171 | tag: tip
1172 ~ parent: 32:d06dffa21a31
1172 ~ parent: 32:d06dffa21a31
1173 user: test
1173 user: test
1174 date: Thu Jan 01 00:00:34 1970 +0000
1174 date: Thu Jan 01 00:00:34 1970 +0000
1175 summary: (34) head
1175 summary: (34) head
1176
1176
1177 $ hg log -G -l1 repo/missing
1177 $ hg log -G -l1 repo/missing
1178
1178
1179 #endif
1179 #endif
1180
1180
1181 File log with revs != cset revs:
1181 File log with revs != cset revs:
1182 $ hg init flog
1182 $ hg init flog
1183 $ cd flog
1183 $ cd flog
1184 $ echo one >one
1184 $ echo one >one
1185 $ hg add one
1185 $ hg add one
1186 $ hg commit -mone
1186 $ hg commit -mone
1187 $ echo two >two
1187 $ echo two >two
1188 $ hg add two
1188 $ hg add two
1189 $ hg commit -mtwo
1189 $ hg commit -mtwo
1190 $ echo more >two
1190 $ echo more >two
1191 $ hg commit -mmore
1191 $ hg commit -mmore
1192 $ hg log -G two
1192 $ hg log -G two
1193 @ changeset: 2:12c28321755b
1193 @ changeset: 2:12c28321755b
1194 | tag: tip
1194 | tag: tip
1195 | user: test
1195 | user: test
1196 | date: Thu Jan 01 00:00:00 1970 +0000
1196 | date: Thu Jan 01 00:00:00 1970 +0000
1197 | summary: more
1197 | summary: more
1198 |
1198 |
1199 o changeset: 1:5ac72c0599bf
1199 o changeset: 1:5ac72c0599bf
1200 | user: test
1200 | user: test
1201 ~ date: Thu Jan 01 00:00:00 1970 +0000
1201 ~ date: Thu Jan 01 00:00:00 1970 +0000
1202 summary: two
1202 summary: two
1203
1203
1204
1204
1205 Issue1896: File log with explicit style
1205 Issue1896: File log with explicit style
1206 $ hg log -G --style=default one
1206 $ hg log -G --style=default one
1207 o changeset: 0:3d578b4a1f53
1207 o changeset: 0:3d578b4a1f53
1208 user: test
1208 user: test
1209 date: Thu Jan 01 00:00:00 1970 +0000
1209 date: Thu Jan 01 00:00:00 1970 +0000
1210 summary: one
1210 summary: one
1211
1211
1212 Issue2395: glog --style header and footer
1212 Issue2395: glog --style header and footer
1213 $ hg log -G --style=xml one
1213 $ hg log -G --style=xml one
1214 <?xml version="1.0"?>
1214 <?xml version="1.0"?>
1215 <log>
1215 <log>
1216 o <logentry revision="0" node="3d578b4a1f537d5fcf7301bfa9c0b97adfaa6fb1">
1216 o <logentry revision="0" node="3d578b4a1f537d5fcf7301bfa9c0b97adfaa6fb1">
1217 <author email="test">test</author>
1217 <author email="test">test</author>
1218 <date>1970-01-01T00:00:00+00:00</date>
1218 <date>1970-01-01T00:00:00+00:00</date>
1219 <msg xml:space="preserve">one</msg>
1219 <msg xml:space="preserve">one</msg>
1220 </logentry>
1220 </logentry>
1221 </log>
1221 </log>
1222
1222
1223 $ cd ..
1223 $ cd ..
1224
1224
1225 Incoming and outgoing:
1225 Incoming and outgoing:
1226
1226
1227 $ hg clone -U -r31 repo repo2
1227 $ hg clone -U -r31 repo repo2
1228 adding changesets
1228 adding changesets
1229 adding manifests
1229 adding manifests
1230 adding file changes
1230 adding file changes
1231 added 31 changesets with 31 changes to 1 files
1231 added 31 changesets with 31 changes to 1 files
1232 new changesets e6eb3150255d:621d83e11f67
1232 new changesets e6eb3150255d:621d83e11f67
1233 $ cd repo2
1233 $ cd repo2
1234
1234
1235 $ hg incoming --graph ../repo
1235 $ hg incoming --graph ../repo
1236 comparing with ../repo
1236 comparing with ../repo
1237 searching for changes
1237 searching for changes
1238 o changeset: 34:fea3ac5810e0
1238 o changeset: 34:fea3ac5810e0
1239 | tag: tip
1239 | tag: tip
1240 | parent: 32:d06dffa21a31
1240 | parent: 32:d06dffa21a31
1241 | user: test
1241 | user: test
1242 | date: Thu Jan 01 00:00:34 1970 +0000
1242 | date: Thu Jan 01 00:00:34 1970 +0000
1243 | summary: (34) head
1243 | summary: (34) head
1244 |
1244 |
1245 | o changeset: 33:68608f5145f9
1245 | o changeset: 33:68608f5145f9
1246 | parent: 18:1aa84d96232a
1246 | parent: 18:1aa84d96232a
1247 | user: test
1247 | user: test
1248 | date: Thu Jan 01 00:00:33 1970 +0000
1248 | date: Thu Jan 01 00:00:33 1970 +0000
1249 | summary: (33) head
1249 | summary: (33) head
1250 |
1250 |
1251 o changeset: 32:d06dffa21a31
1251 o changeset: 32:d06dffa21a31
1252 | parent: 27:886ed638191b
1252 | parent: 27:886ed638191b
1253 | parent: 31:621d83e11f67
1253 | parent: 31:621d83e11f67
1254 | user: test
1254 | user: test
1255 | date: Thu Jan 01 00:00:32 1970 +0000
1255 | date: Thu Jan 01 00:00:32 1970 +0000
1256 | summary: (32) expand
1256 | summary: (32) expand
1257 |
1257 |
1258 o changeset: 27:886ed638191b
1258 o changeset: 27:886ed638191b
1259 parent: 21:d42a756af44d
1259 parent: 21:d42a756af44d
1260 user: test
1260 user: test
1261 date: Thu Jan 01 00:00:27 1970 +0000
1261 date: Thu Jan 01 00:00:27 1970 +0000
1262 summary: (27) collapse
1262 summary: (27) collapse
1263
1263
1264 $ cd ..
1264 $ cd ..
1265
1265
1266 $ hg -R repo outgoing --graph repo2
1266 $ hg -R repo outgoing --graph repo2
1267 comparing with repo2
1267 comparing with repo2
1268 searching for changes
1268 searching for changes
1269 @ changeset: 34:fea3ac5810e0
1269 @ changeset: 34:fea3ac5810e0
1270 | tag: tip
1270 | tag: tip
1271 | parent: 32:d06dffa21a31
1271 | parent: 32:d06dffa21a31
1272 | user: test
1272 | user: test
1273 | date: Thu Jan 01 00:00:34 1970 +0000
1273 | date: Thu Jan 01 00:00:34 1970 +0000
1274 | summary: (34) head
1274 | summary: (34) head
1275 |
1275 |
1276 | o changeset: 33:68608f5145f9
1276 | o changeset: 33:68608f5145f9
1277 | parent: 18:1aa84d96232a
1277 | parent: 18:1aa84d96232a
1278 | user: test
1278 | user: test
1279 | date: Thu Jan 01 00:00:33 1970 +0000
1279 | date: Thu Jan 01 00:00:33 1970 +0000
1280 | summary: (33) head
1280 | summary: (33) head
1281 |
1281 |
1282 o changeset: 32:d06dffa21a31
1282 o changeset: 32:d06dffa21a31
1283 | parent: 27:886ed638191b
1283 | parent: 27:886ed638191b
1284 | parent: 31:621d83e11f67
1284 | parent: 31:621d83e11f67
1285 | user: test
1285 | user: test
1286 | date: Thu Jan 01 00:00:32 1970 +0000
1286 | date: Thu Jan 01 00:00:32 1970 +0000
1287 | summary: (32) expand
1287 | summary: (32) expand
1288 |
1288 |
1289 o changeset: 27:886ed638191b
1289 o changeset: 27:886ed638191b
1290 parent: 21:d42a756af44d
1290 parent: 21:d42a756af44d
1291 user: test
1291 user: test
1292 date: Thu Jan 01 00:00:27 1970 +0000
1292 date: Thu Jan 01 00:00:27 1970 +0000
1293 summary: (27) collapse
1293 summary: (27) collapse
1294
1294
1295
1295
1296 File + limit with revs != cset revs:
1296 File + limit with revs != cset revs:
1297 $ cd repo
1297 $ cd repo
1298 $ touch b
1298 $ touch b
1299 $ hg ci -Aqm0
1299 $ hg ci -Aqm0
1300 $ hg log -G -l2 a
1300 $ hg log -G -l2 a
1301 o changeset: 34:fea3ac5810e0
1301 o changeset: 34:fea3ac5810e0
1302 | parent: 32:d06dffa21a31
1302 | parent: 32:d06dffa21a31
1303 ~ user: test
1303 ~ user: test
1304 date: Thu Jan 01 00:00:34 1970 +0000
1304 date: Thu Jan 01 00:00:34 1970 +0000
1305 summary: (34) head
1305 summary: (34) head
1306
1306
1307 o changeset: 33:68608f5145f9
1307 o changeset: 33:68608f5145f9
1308 | parent: 18:1aa84d96232a
1308 | parent: 18:1aa84d96232a
1309 ~ user: test
1309 ~ user: test
1310 date: Thu Jan 01 00:00:33 1970 +0000
1310 date: Thu Jan 01 00:00:33 1970 +0000
1311 summary: (33) head
1311 summary: (33) head
1312
1312
1313
1313
1314 File + limit + -ra:b, (b - a) < limit:
1314 File + limit + -ra:b, (b - a) < limit:
1315 $ hg log -G -l3000 -r32:tip a
1315 $ hg log -G -l3000 -r32:tip a
1316 o changeset: 34:fea3ac5810e0
1316 o changeset: 34:fea3ac5810e0
1317 | parent: 32:d06dffa21a31
1317 | parent: 32:d06dffa21a31
1318 | user: test
1318 | user: test
1319 | date: Thu Jan 01 00:00:34 1970 +0000
1319 | date: Thu Jan 01 00:00:34 1970 +0000
1320 | summary: (34) head
1320 | summary: (34) head
1321 |
1321 |
1322 | o changeset: 33:68608f5145f9
1322 | o changeset: 33:68608f5145f9
1323 | | parent: 18:1aa84d96232a
1323 | | parent: 18:1aa84d96232a
1324 | ~ user: test
1324 | ~ user: test
1325 | date: Thu Jan 01 00:00:33 1970 +0000
1325 | date: Thu Jan 01 00:00:33 1970 +0000
1326 | summary: (33) head
1326 | summary: (33) head
1327 |
1327 |
1328 o changeset: 32:d06dffa21a31
1328 o changeset: 32:d06dffa21a31
1329 |\ parent: 27:886ed638191b
1329 |\ parent: 27:886ed638191b
1330 ~ ~ parent: 31:621d83e11f67
1330 ~ ~ parent: 31:621d83e11f67
1331 user: test
1331 user: test
1332 date: Thu Jan 01 00:00:32 1970 +0000
1332 date: Thu Jan 01 00:00:32 1970 +0000
1333 summary: (32) expand
1333 summary: (32) expand
1334
1334
1335
1335
1336 Point out a common and an uncommon unshown parent
1336 Point out a common and an uncommon unshown parent
1337
1337
1338 $ hg log -G -r 'rev(8) or rev(9)'
1338 $ hg log -G -r 'rev(8) or rev(9)'
1339 o changeset: 9:7010c0af0a35
1339 o changeset: 9:7010c0af0a35
1340 |\ parent: 7:b632bb1b1224
1340 |\ parent: 7:b632bb1b1224
1341 | ~ parent: 8:7a0b11f71937
1341 | ~ parent: 8:7a0b11f71937
1342 | user: test
1342 | user: test
1343 | date: Thu Jan 01 00:00:09 1970 +0000
1343 | date: Thu Jan 01 00:00:09 1970 +0000
1344 | summary: (9) expand
1344 | summary: (9) expand
1345 |
1345 |
1346 o changeset: 8:7a0b11f71937
1346 o changeset: 8:7a0b11f71937
1347 |\ parent: 0:e6eb3150255d
1347 |\ parent: 0:e6eb3150255d
1348 ~ ~ parent: 7:b632bb1b1224
1348 ~ ~ parent: 7:b632bb1b1224
1349 user: test
1349 user: test
1350 date: Thu Jan 01 00:00:08 1970 +0000
1350 date: Thu Jan 01 00:00:08 1970 +0000
1351 summary: (8) merge two known; one immediate left, one far right
1351 summary: (8) merge two known; one immediate left, one far right
1352
1352
1353
1353
1354 File + limit + -ra:b, b < tip:
1354 File + limit + -ra:b, b < tip:
1355
1355
1356 $ hg log -G -l1 -r32:34 a
1356 $ hg log -G -l1 -r32:34 a
1357 o changeset: 34:fea3ac5810e0
1357 o changeset: 34:fea3ac5810e0
1358 | parent: 32:d06dffa21a31
1358 | parent: 32:d06dffa21a31
1359 ~ user: test
1359 ~ user: test
1360 date: Thu Jan 01 00:00:34 1970 +0000
1360 date: Thu Jan 01 00:00:34 1970 +0000
1361 summary: (34) head
1361 summary: (34) head
1362
1362
1363
1363
1364 file(File) + limit + -ra:b, b < tip:
1364 file(File) + limit + -ra:b, b < tip:
1365
1365
1366 $ hg log -G -l1 -r32:34 -r 'file("a")'
1366 $ hg log -G -l1 -r32:34 -r 'file("a")'
1367 o changeset: 34:fea3ac5810e0
1367 o changeset: 34:fea3ac5810e0
1368 | parent: 32:d06dffa21a31
1368 | parent: 32:d06dffa21a31
1369 ~ user: test
1369 ~ user: test
1370 date: Thu Jan 01 00:00:34 1970 +0000
1370 date: Thu Jan 01 00:00:34 1970 +0000
1371 summary: (34) head
1371 summary: (34) head
1372
1372
1373
1373
1374 limit(file(File) and a::b), b < tip:
1374 limit(file(File) and a::b), b < tip:
1375
1375
1376 $ hg log -G -r 'limit(file("a") and 32::34, 1)'
1376 $ hg log -G -r 'limit(file("a") and 32::34, 1)'
1377 o changeset: 32:d06dffa21a31
1377 o changeset: 32:d06dffa21a31
1378 |\ parent: 27:886ed638191b
1378 |\ parent: 27:886ed638191b
1379 ~ ~ parent: 31:621d83e11f67
1379 ~ ~ parent: 31:621d83e11f67
1380 user: test
1380 user: test
1381 date: Thu Jan 01 00:00:32 1970 +0000
1381 date: Thu Jan 01 00:00:32 1970 +0000
1382 summary: (32) expand
1382 summary: (32) expand
1383
1383
1384
1384
1385 File + limit + -ra:b, b < tip:
1385 File + limit + -ra:b, b < tip:
1386
1386
1387 $ hg log -G -r 'limit(file("a") and 34::32, 1)'
1387 $ hg log -G -r 'limit(file("a") and 34::32, 1)'
1388
1388
1389 File + limit + -ra:b, b < tip, (b - a) < limit:
1389 File + limit + -ra:b, b < tip, (b - a) < limit:
1390
1390
1391 $ hg log -G -l10 -r33:34 a
1391 $ hg log -G -l10 -r33:34 a
1392 o changeset: 34:fea3ac5810e0
1392 o changeset: 34:fea3ac5810e0
1393 | parent: 32:d06dffa21a31
1393 | parent: 32:d06dffa21a31
1394 ~ user: test
1394 ~ user: test
1395 date: Thu Jan 01 00:00:34 1970 +0000
1395 date: Thu Jan 01 00:00:34 1970 +0000
1396 summary: (34) head
1396 summary: (34) head
1397
1397
1398 o changeset: 33:68608f5145f9
1398 o changeset: 33:68608f5145f9
1399 | parent: 18:1aa84d96232a
1399 | parent: 18:1aa84d96232a
1400 ~ user: test
1400 ~ user: test
1401 date: Thu Jan 01 00:00:33 1970 +0000
1401 date: Thu Jan 01 00:00:33 1970 +0000
1402 summary: (33) head
1402 summary: (33) head
1403
1403
1404
1404
1405 Do not crash or produce strange graphs if history is buggy
1405 Do not crash or produce strange graphs if history is buggy
1406
1406
1407 $ hg branch branch
1407 $ hg branch branch
1408 marked working directory as branch branch
1408 marked working directory as branch branch
1409 (branches are permanent and global, did you want a bookmark?)
1409 (branches are permanent and global, did you want a bookmark?)
1410 $ commit 36 "buggy merge: identical parents" 35 35
1410 $ commit 36 "buggy merge: identical parents" 35 35
1411 $ hg log -G -l5
1411 $ hg log -G -l5
1412 @ changeset: 36:08a19a744424
1412 @ changeset: 36:08a19a744424
1413 | branch: branch
1413 | branch: branch
1414 | tag: tip
1414 | tag: tip
1415 | parent: 35:9159c3644c5e
1415 | parent: 35:9159c3644c5e
1416 | parent: 35:9159c3644c5e
1416 | parent: 35:9159c3644c5e
1417 | user: test
1417 | user: test
1418 | date: Thu Jan 01 00:00:36 1970 +0000
1418 | date: Thu Jan 01 00:00:36 1970 +0000
1419 | summary: (36) buggy merge: identical parents
1419 | summary: (36) buggy merge: identical parents
1420 |
1420 |
1421 o changeset: 35:9159c3644c5e
1421 o changeset: 35:9159c3644c5e
1422 | user: test
1422 | user: test
1423 | date: Thu Jan 01 00:00:00 1970 +0000
1423 | date: Thu Jan 01 00:00:00 1970 +0000
1424 | summary: 0
1424 | summary: 0
1425 |
1425 |
1426 o changeset: 34:fea3ac5810e0
1426 o changeset: 34:fea3ac5810e0
1427 | parent: 32:d06dffa21a31
1427 | parent: 32:d06dffa21a31
1428 | user: test
1428 | user: test
1429 | date: Thu Jan 01 00:00:34 1970 +0000
1429 | date: Thu Jan 01 00:00:34 1970 +0000
1430 | summary: (34) head
1430 | summary: (34) head
1431 |
1431 |
1432 | o changeset: 33:68608f5145f9
1432 | o changeset: 33:68608f5145f9
1433 | | parent: 18:1aa84d96232a
1433 | | parent: 18:1aa84d96232a
1434 | ~ user: test
1434 | ~ user: test
1435 | date: Thu Jan 01 00:00:33 1970 +0000
1435 | date: Thu Jan 01 00:00:33 1970 +0000
1436 | summary: (33) head
1436 | summary: (33) head
1437 |
1437 |
1438 o changeset: 32:d06dffa21a31
1438 o changeset: 32:d06dffa21a31
1439 |\ parent: 27:886ed638191b
1439 |\ parent: 27:886ed638191b
1440 ~ ~ parent: 31:621d83e11f67
1440 ~ ~ parent: 31:621d83e11f67
1441 user: test
1441 user: test
1442 date: Thu Jan 01 00:00:32 1970 +0000
1442 date: Thu Jan 01 00:00:32 1970 +0000
1443 summary: (32) expand
1443 summary: (32) expand
1444
1444
1445
1445
1446 Test log -G options
1446 Test log -G options
1447
1447
1448 $ testlog() {
1448 $ testlog() {
1449 > hg log -G --print-revset "$@"
1449 > hg log -G --print-revset "$@"
1450 > hg log --template 'nodetag {rev}\n' "$@" | grep nodetag \
1450 > hg log --template 'nodetag {rev}\n' "$@" | grep nodetag \
1451 > | sed 's/.*nodetag/nodetag/' > log.nodes
1451 > | sed 's/.*nodetag/nodetag/' > log.nodes
1452 > hg log -G --template 'nodetag {rev}\n' "$@" | grep nodetag \
1452 > hg log -G --template 'nodetag {rev}\n' "$@" | grep nodetag \
1453 > | sed 's/.*nodetag/nodetag/' > glog.nodes
1453 > | sed 's/.*nodetag/nodetag/' > glog.nodes
1454 > (cmp log.nodes glog.nodes || diff -u log.nodes glog.nodes) \
1454 > (cmp log.nodes glog.nodes || diff -u log.nodes glog.nodes) \
1455 > | grep '^[-+@ ]' || :
1455 > | grep '^[-+@ ]' || :
1456 > }
1456 > }
1457
1457
1458 glog always reorders nodes which explains the difference with log
1458 glog always reorders nodes which explains the difference with log
1459
1459
1460 $ testlog -r 27 -r 25 -r 21 -r 34 -r 32 -r 31
1460 $ testlog -r 27 -r 25 -r 21 -r 34 -r 32 -r 31
1461 ['27', '25', '21', '34', '32', '31']
1461 ['27', '25', '21', '34', '32', '31']
1462 []
1462 []
1463 <baseset- [21, 25, 27, 31, 32, 34]>
1463 <baseset- [21, 25, 27, 31, 32, 34]>
1464 --- log.nodes * (glob)
1464 --- log.nodes * (glob)
1465 +++ glog.nodes * (glob)
1465 +++ glog.nodes * (glob)
1466 @@ -1,6 +1,6 @@
1466 @@ -1,6 +1,6 @@
1467 -nodetag 27
1467 -nodetag 27
1468 -nodetag 25
1468 -nodetag 25
1469 -nodetag 21
1469 -nodetag 21
1470 nodetag 34
1470 nodetag 34
1471 nodetag 32
1471 nodetag 32
1472 nodetag 31
1472 nodetag 31
1473 +nodetag 27
1473 +nodetag 27
1474 +nodetag 25
1474 +nodetag 25
1475 +nodetag 21
1475 +nodetag 21
1476 $ testlog -u test -u not-a-user
1476 $ testlog -u test -u not-a-user
1477 []
1477 []
1478 (or
1478 (or
1479 (list
1479 (list
1480 (func
1480 (func
1481 (symbol 'user')
1481 (symbol 'user')
1482 (string 'test'))
1482 (string 'test'))
1483 (func
1483 (func
1484 (symbol 'user')
1484 (symbol 'user')
1485 (string 'not-a-user'))))
1485 (string 'not-a-user'))))
1486 <filteredset
1486 <filteredset
1487 <spanset- 0:37>,
1487 <spanset- 0:37>,
1488 <addset
1488 <addset
1489 <filteredset
1489 <filteredset
1490 <fullreposet+ 0:37>,
1490 <fullreposet+ 0:37>,
1491 <user 'test'>>,
1491 <user 'test'>>,
1492 <filteredset
1492 <filteredset
1493 <fullreposet+ 0:37>,
1493 <fullreposet+ 0:37>,
1494 <user 'not-a-user'>>>>
1494 <user 'not-a-user'>>>>
1495 $ testlog -b not-a-branch
1495 $ testlog -b not-a-branch
1496 abort: unknown revision 'not-a-branch'!
1496 abort: unknown revision 'not-a-branch'!
1497 abort: unknown revision 'not-a-branch'!
1497 abort: unknown revision 'not-a-branch'!
1498 abort: unknown revision 'not-a-branch'!
1498 abort: unknown revision 'not-a-branch'!
1499 $ testlog -b 35 -b 36 --only-branch branch
1499 $ testlog -b 35 -b 36 --only-branch branch
1500 []
1500 []
1501 (or
1501 (or
1502 (list
1502 (list
1503 (func
1503 (func
1504 (symbol 'branch')
1504 (symbol 'branch')
1505 (string 'default'))
1505 (string 'default'))
1506 (or
1506 (or
1507 (list
1507 (list
1508 (func
1508 (func
1509 (symbol 'branch')
1509 (symbol 'branch')
1510 (string 'branch'))
1510 (string 'branch'))
1511 (func
1511 (func
1512 (symbol 'branch')
1512 (symbol 'branch')
1513 (string 'branch'))))))
1513 (string 'branch'))))))
1514 <filteredset
1514 <filteredset
1515 <spanset- 0:37>,
1515 <spanset- 0:37>,
1516 <addset
1516 <addset
1517 <filteredset
1517 <filteredset
1518 <fullreposet+ 0:37>,
1518 <fullreposet+ 0:37>,
1519 <branch 'default'>>,
1519 <branch 'default'>>,
1520 <addset
1520 <addset
1521 <filteredset
1521 <filteredset
1522 <fullreposet+ 0:37>,
1522 <fullreposet+ 0:37>,
1523 <branch 'branch'>>,
1523 <branch 'branch'>>,
1524 <filteredset
1524 <filteredset
1525 <fullreposet+ 0:37>,
1525 <fullreposet+ 0:37>,
1526 <branch 'branch'>>>>>
1526 <branch 'branch'>>>>>
1527 $ testlog -k expand -k merge
1527 $ testlog -k expand -k merge
1528 []
1528 []
1529 (or
1529 (or
1530 (list
1530 (list
1531 (func
1531 (func
1532 (symbol 'keyword')
1532 (symbol 'keyword')
1533 (string 'expand'))
1533 (string 'expand'))
1534 (func
1534 (func
1535 (symbol 'keyword')
1535 (symbol 'keyword')
1536 (string 'merge'))))
1536 (string 'merge'))))
1537 <filteredset
1537 <filteredset
1538 <spanset- 0:37>,
1538 <spanset- 0:37>,
1539 <addset
1539 <addset
1540 <filteredset
1540 <filteredset
1541 <fullreposet+ 0:37>,
1541 <fullreposet+ 0:37>,
1542 <keyword 'expand'>>,
1542 <keyword 'expand'>>,
1543 <filteredset
1543 <filteredset
1544 <fullreposet+ 0:37>,
1544 <fullreposet+ 0:37>,
1545 <keyword 'merge'>>>>
1545 <keyword 'merge'>>>>
1546 $ testlog --only-merges
1546 $ testlog --only-merges
1547 []
1547 []
1548 (func
1548 (func
1549 (symbol 'merge')
1549 (symbol 'merge')
1550 None)
1550 None)
1551 <filteredset
1551 <filteredset
1552 <spanset- 0:37>,
1552 <spanset- 0:37>,
1553 <merge>>
1553 <merge>>
1554 $ testlog --no-merges
1554 $ testlog --no-merges
1555 []
1555 []
1556 (not
1556 (not
1557 (func
1557 (func
1558 (symbol 'merge')
1558 (symbol 'merge')
1559 None))
1559 None))
1560 <filteredset
1560 <filteredset
1561 <spanset- 0:37>,
1561 <spanset- 0:37>,
1562 <not
1562 <not
1563 <filteredset
1563 <filteredset
1564 <spanset- 0:37>,
1564 <spanset- 0:37>,
1565 <merge>>>>
1565 <merge>>>>
1566 $ testlog --date '2 0 to 4 0'
1566 $ testlog --date '2 0 to 4 0'
1567 []
1567 []
1568 (func
1568 (func
1569 (symbol 'date')
1569 (symbol 'date')
1570 (string '2 0 to 4 0'))
1570 (string '2 0 to 4 0'))
1571 <filteredset
1571 <filteredset
1572 <spanset- 0:37>,
1572 <spanset- 0:37>,
1573 <date '2 0 to 4 0'>>
1573 <date '2 0 to 4 0'>>
1574 $ hg log -G -d 'brace ) in a date'
1574 $ hg log -G -d 'brace ) in a date'
1575 hg: parse error: invalid date: 'brace ) in a date'
1575 hg: parse error: invalid date: 'brace ) in a date'
1576 [255]
1576 [255]
1577 $ testlog --prune 31 --prune 32
1577 $ testlog --prune 31 --prune 32
1578 []
1578 []
1579 (not
1579 (not
1580 (or
1580 (or
1581 (list
1581 (list
1582 (func
1582 (func
1583 (symbol 'ancestors')
1583 (symbol 'ancestors')
1584 (string '31'))
1584 (string '31'))
1585 (func
1585 (func
1586 (symbol 'ancestors')
1586 (symbol 'ancestors')
1587 (string '32')))))
1587 (string '32')))))
1588 <filteredset
1588 <filteredset
1589 <spanset- 0:37>,
1589 <spanset- 0:37>,
1590 <not
1590 <not
1591 <addset
1591 <addset
1592 <filteredset
1592 <filteredset
1593 <spanset- 0:37>,
1593 <spanset- 0:37>,
1594 <generatorsetdesc+>>,
1594 <generatorsetdesc+>>,
1595 <filteredset
1595 <filteredset
1596 <spanset- 0:37>,
1596 <spanset- 0:37>,
1597 <generatorsetdesc+>>>>>
1597 <generatorsetdesc+>>>>>
1598
1598
1599 Dedicated repo for --follow and paths filtering. The g is crafted to
1599 Dedicated repo for --follow and paths filtering. The g is crafted to
1600 have 2 filelog topological heads in a linear changeset graph.
1600 have 2 filelog topological heads in a linear changeset graph.
1601
1601
1602 $ cd ..
1602 $ cd ..
1603 $ hg init follow
1603 $ hg init follow
1604 $ cd follow
1604 $ cd follow
1605 $ testlog --follow
1605 $ testlog --follow
1606 []
1606 []
1607 []
1607 []
1608 <baseset []>
1608 <baseset []>
1609 $ testlog -rnull
1609 $ testlog -rnull
1610 ['null']
1610 ['null']
1611 []
1611 []
1612 <baseset [-1]>
1612 <baseset [-1]>
1613 $ echo a > a
1613 $ echo a > a
1614 $ echo aa > aa
1614 $ echo aa > aa
1615 $ echo f > f
1615 $ echo f > f
1616 $ hg ci -Am "add a" a aa f
1616 $ hg ci -Am "add a" a aa f
1617 $ hg cp a b
1617 $ hg cp a b
1618 $ hg cp f g
1618 $ hg cp f g
1619 $ hg ci -m "copy a b"
1619 $ hg ci -m "copy a b"
1620 $ mkdir dir
1620 $ mkdir dir
1621 $ hg mv b dir
1621 $ hg mv b dir
1622 $ echo g >> g
1622 $ echo g >> g
1623 $ echo f >> f
1623 $ echo f >> f
1624 $ hg ci -m "mv b dir/b"
1624 $ hg ci -m "mv b dir/b"
1625 $ hg mv a b
1625 $ hg mv a b
1626 $ hg cp -f f g
1626 $ hg cp -f f g
1627 $ echo a > d
1627 $ echo a > d
1628 $ hg add d
1628 $ hg add d
1629 $ hg ci -m "mv a b; add d"
1629 $ hg ci -m "mv a b; add d"
1630 $ hg mv dir/b e
1630 $ hg mv dir/b e
1631 $ hg ci -m "mv dir/b e"
1631 $ hg ci -m "mv dir/b e"
1632 $ hg log -G --template '({rev}) {desc|firstline}\n'
1632 $ hg log -G --template '({rev}) {desc|firstline}\n'
1633 @ (4) mv dir/b e
1633 @ (4) mv dir/b e
1634 |
1634 |
1635 o (3) mv a b; add d
1635 o (3) mv a b; add d
1636 |
1636 |
1637 o (2) mv b dir/b
1637 o (2) mv b dir/b
1638 |
1638 |
1639 o (1) copy a b
1639 o (1) copy a b
1640 |
1640 |
1641 o (0) add a
1641 o (0) add a
1642
1642
1643
1643
1644 $ testlog a
1644 $ testlog a
1645 []
1645 []
1646 (func
1646 (func
1647 (symbol 'filelog')
1647 (symbol 'filelog')
1648 (string 'a'))
1648 (string 'a'))
1649 <filteredset
1649 <filteredset
1650 <spanset- 0:5>, set([0])>
1650 <spanset- 0:5>, set([0])>
1651 $ testlog a b
1651 $ testlog a b
1652 []
1652 []
1653 (or
1653 (or
1654 (list
1654 (list
1655 (func
1655 (func
1656 (symbol 'filelog')
1656 (symbol 'filelog')
1657 (string 'a'))
1657 (string 'a'))
1658 (func
1658 (func
1659 (symbol 'filelog')
1659 (symbol 'filelog')
1660 (string 'b'))))
1660 (string 'b'))))
1661 <filteredset
1661 <filteredset
1662 <spanset- 0:5>,
1662 <spanset- 0:5>,
1663 <addset
1663 <addset
1664 <baseset+ [0]>,
1664 <baseset+ [0]>,
1665 <baseset+ [1]>>>
1665 <baseset+ [1]>>>
1666
1666
1667 Test falling back to slow path for non-existing files
1667 Test falling back to slow path for non-existing files
1668
1668
1669 $ testlog a c
1669 $ testlog a c
1670 []
1670 []
1671 (func
1671 (func
1672 (symbol '_matchfiles')
1672 (symbol '_matchfiles')
1673 (list
1673 (list
1674 (string 'r:')
1674 (string 'r:')
1675 (string 'd:relpath')
1675 (string 'd:relpath')
1676 (string 'p:a')
1676 (string 'p:a')
1677 (string 'p:c')))
1677 (string 'p:c')))
1678 <filteredset
1678 <filteredset
1679 <spanset- 0:5>,
1679 <spanset- 0:5>,
1680 <matchfiles patterns=['a', 'c'], include=[] exclude=[], default='relpath', rev=2147483647>>
1680 <matchfiles patterns=['a', 'c'], include=[] exclude=[], default='relpath', rev=2147483647>>
1681
1681
1682 Test multiple --include/--exclude/paths
1682 Test multiple --include/--exclude/paths
1683
1683
1684 $ testlog --include a --include e --exclude b --exclude e a e
1684 $ testlog --include a --include e --exclude b --exclude e a e
1685 []
1685 []
1686 (func
1686 (func
1687 (symbol '_matchfiles')
1687 (symbol '_matchfiles')
1688 (list
1688 (list
1689 (string 'r:')
1689 (string 'r:')
1690 (string 'd:relpath')
1690 (string 'd:relpath')
1691 (string 'p:a')
1691 (string 'p:a')
1692 (string 'p:e')
1692 (string 'p:e')
1693 (string 'i:a')
1693 (string 'i:a')
1694 (string 'i:e')
1694 (string 'i:e')
1695 (string 'x:b')
1695 (string 'x:b')
1696 (string 'x:e')))
1696 (string 'x:e')))
1697 <filteredset
1697 <filteredset
1698 <spanset- 0:5>,
1698 <spanset- 0:5>,
1699 <matchfiles patterns=['a', 'e'], include=['a', 'e'] exclude=['b', 'e'], default='relpath', rev=2147483647>>
1699 <matchfiles patterns=['a', 'e'], include=['a', 'e'] exclude=['b', 'e'], default='relpath', rev=2147483647>>
1700
1700
1701 Test glob expansion of pats
1701 Test glob expansion of pats
1702
1702
1703 $ expandglobs=`$PYTHON -c "import mercurial.util; \
1703 $ expandglobs=`$PYTHON -c "import mercurial.util; \
1704 > print(mercurial.util.expandglobs and 'true' or 'false')"`
1704 > print(mercurial.util.expandglobs and 'true' or 'false')"`
1705 $ if [ $expandglobs = "true" ]; then
1705 $ if [ $expandglobs = "true" ]; then
1706 > testlog 'a*';
1706 > testlog 'a*';
1707 > else
1707 > else
1708 > testlog a*;
1708 > testlog a*;
1709 > fi;
1709 > fi;
1710 []
1710 []
1711 (func
1711 (func
1712 (symbol 'filelog')
1712 (symbol 'filelog')
1713 (string 'aa'))
1713 (string 'aa'))
1714 <filteredset
1714 <filteredset
1715 <spanset- 0:5>, set([0])>
1715 <spanset- 0:5>, set([0])>
1716
1716
1717 Test --follow on a non-existent directory
1717 Test --follow on a non-existent directory
1718
1718
1719 $ testlog -f dir
1719 $ testlog -f dir
1720 abort: cannot follow file not in parent revision: "dir"
1720 abort: cannot follow file not in parent revision: "dir"
1721 abort: cannot follow file not in parent revision: "dir"
1721 abort: cannot follow file not in parent revision: "dir"
1722 abort: cannot follow file not in parent revision: "dir"
1722 abort: cannot follow file not in parent revision: "dir"
1723
1723
1724 Test --follow on a directory
1724 Test --follow on a directory
1725
1725
1726 $ hg up -q '.^'
1726 $ hg up -q '.^'
1727 $ testlog -f dir
1727 $ testlog -f dir
1728 []
1728 []
1729 (func
1729 (func
1730 (symbol '_matchfiles')
1730 (symbol '_matchfiles')
1731 (list
1731 (list
1732 (string 'r:')
1732 (string 'r:')
1733 (string 'd:relpath')
1733 (string 'd:relpath')
1734 (string 'p:dir')))
1734 (string 'p:dir')))
1735 <filteredset
1735 <filteredset
1736 <generatorsetdesc->,
1736 <generatorsetdesc->,
1737 <matchfiles patterns=['dir'], include=[] exclude=[], default='relpath', rev=2147483647>>
1737 <matchfiles patterns=['dir'], include=[] exclude=[], default='relpath', rev=2147483647>>
1738 $ hg up -q tip
1738 $ hg up -q tip
1739
1739
1740 Test --follow on file not in parent revision
1740 Test --follow on file not in parent revision
1741
1741
1742 $ testlog -f a
1742 $ testlog -f a
1743 abort: cannot follow file not in parent revision: "a"
1743 abort: cannot follow file not in parent revision: "a"
1744 abort: cannot follow file not in parent revision: "a"
1744 abort: cannot follow file not in parent revision: "a"
1745 abort: cannot follow file not in parent revision: "a"
1745 abort: cannot follow file not in parent revision: "a"
1746
1746
1747 Test --follow and patterns
1747 Test --follow and patterns
1748
1748
1749 $ testlog -f 'glob:*'
1749 $ testlog -f 'glob:*'
1750 []
1750 []
1751 (func
1751 (func
1752 (symbol '_matchfiles')
1752 (symbol '_matchfiles')
1753 (list
1753 (list
1754 (string 'r:')
1754 (string 'r:')
1755 (string 'd:relpath')
1755 (string 'd:relpath')
1756 (string 'p:glob:*')))
1756 (string 'p:glob:*')))
1757 <filteredset
1757 <filteredset
1758 <generatorsetdesc->,
1758 <generatorsetdesc->,
1759 <matchfiles patterns=['glob:*'], include=[] exclude=[], default='relpath', rev=2147483647>>
1759 <matchfiles patterns=['glob:*'], include=[] exclude=[], default='relpath', rev=2147483647>>
1760
1760
1761 Test --follow on a single rename
1761 Test --follow on a single rename
1762
1762
1763 $ hg up -q 2
1763 $ hg up -q 2
1764 $ testlog -f a
1764 $ testlog -f a
1765 []
1765 []
1766 []
1766 []
1767 <generatorsetdesc->
1767 <generatorsetdesc->
1768
1768
1769 Test --follow and multiple renames
1769 Test --follow and multiple renames
1770
1770
1771 $ hg up -q tip
1771 $ hg up -q tip
1772 $ testlog -f e
1772 $ testlog -f e
1773 []
1773 []
1774 []
1774 []
1775 <generatorsetdesc->
1775 <generatorsetdesc->
1776
1776
1777 Test --follow and multiple filelog heads
1777 Test --follow and multiple filelog heads
1778
1778
1779 $ hg up -q 2
1779 $ hg up -q 2
1780 $ testlog -f g
1780 $ testlog -f g
1781 []
1781 []
1782 []
1782 []
1783 <generatorsetdesc->
1783 <generatorsetdesc->
1784 $ cat log.nodes
1784 $ cat log.nodes
1785 nodetag 2
1785 nodetag 2
1786 nodetag 1
1786 nodetag 1
1787 nodetag 0
1787 nodetag 0
1788 $ hg up -q tip
1788 $ hg up -q tip
1789 $ testlog -f g
1789 $ testlog -f g
1790 []
1790 []
1791 []
1791 []
1792 <generatorsetdesc->
1792 <generatorsetdesc->
1793 $ cat log.nodes
1793 $ cat log.nodes
1794 nodetag 3
1794 nodetag 3
1795 nodetag 2
1795 nodetag 2
1796 nodetag 0
1796 nodetag 0
1797
1797
1798 Test --follow and multiple files
1798 Test --follow and multiple files
1799
1799
1800 $ testlog -f g e
1800 $ testlog -f g e
1801 []
1801 []
1802 []
1802 []
1803 <generatorsetdesc->
1803 <generatorsetdesc->
1804 $ cat log.nodes
1804 $ cat log.nodes
1805 nodetag 4
1805 nodetag 4
1806 nodetag 3
1806 nodetag 3
1807 nodetag 2
1807 nodetag 2
1808 nodetag 1
1808 nodetag 1
1809 nodetag 0
1809 nodetag 0
1810
1810
1811 Test --follow null parent
1811 Test --follow null parent
1812
1812
1813 $ hg up -q null
1813 $ hg up -q null
1814 $ testlog -f
1814 $ testlog -f
1815 []
1815 []
1816 []
1816 []
1817 <baseset []>
1817 <baseset []>
1818
1818
1819 Test --follow-first
1819 Test --follow-first
1820
1820
1821 $ hg up -q 3
1821 $ hg up -q 3
1822 $ echo ee > e
1822 $ echo ee > e
1823 $ hg ci -Am "add another e" e
1823 $ hg ci -Am "add another e" e
1824 created new head
1824 created new head
1825 $ hg merge --tool internal:other 4
1825 $ hg merge --tool internal:other 4
1826 0 files updated, 1 files merged, 1 files removed, 0 files unresolved
1826 0 files updated, 1 files merged, 1 files removed, 0 files unresolved
1827 (branch merge, don't forget to commit)
1827 (branch merge, don't forget to commit)
1828 $ echo merge > e
1828 $ echo merge > e
1829 $ hg ci -m "merge 5 and 4"
1829 $ hg ci -m "merge 5 and 4"
1830 $ testlog --follow-first
1830 $ testlog --follow-first
1831 []
1831 []
1832 []
1832 []
1833 <generatorsetdesc->
1833 <generatorsetdesc->
1834
1834
1835 Cannot compare with log --follow-first FILE as it never worked
1835 Cannot compare with log --follow-first FILE as it never worked
1836
1836
1837 $ hg log -G --print-revset --follow-first e
1837 $ hg log -G --print-revset --follow-first e
1838 []
1838 []
1839 []
1839 []
1840 <generatorsetdesc->
1840 <generatorsetdesc->
1841 $ hg log -G --follow-first e --template '{rev} {desc|firstline}\n'
1841 $ hg log -G --follow-first e --template '{rev} {desc|firstline}\n'
1842 @ 6 merge 5 and 4
1842 @ 6 merge 5 and 4
1843 |\
1843 |\
1844 | ~
1844 | ~
1845 o 5 add another e
1845 o 5 add another e
1846 |
1846 |
1847 ~
1847 ~
1848
1848
1849 Test --copies
1849 Test --copies
1850
1850
1851 $ hg log -G --copies --template "{rev} {desc|firstline} \
1851 $ hg log -G --copies --template "{rev} {desc|firstline} \
1852 > copies: {file_copies_switch}\n"
1852 > copies: {file_copies_switch}\n"
1853 @ 6 merge 5 and 4 copies:
1853 @ 6 merge 5 and 4 copies:
1854 |\
1854 |\
1855 | o 5 add another e copies:
1855 | o 5 add another e copies:
1856 | |
1856 | |
1857 o | 4 mv dir/b e copies: e (dir/b)
1857 o | 4 mv dir/b e copies: e (dir/b)
1858 |/
1858 |/
1859 o 3 mv a b; add d copies: b (a)g (f)
1859 o 3 mv a b; add d copies: b (a)g (f)
1860 |
1860 |
1861 o 2 mv b dir/b copies: dir/b (b)
1861 o 2 mv b dir/b copies: dir/b (b)
1862 |
1862 |
1863 o 1 copy a b copies: b (a)g (f)
1863 o 1 copy a b copies: b (a)g (f)
1864 |
1864 |
1865 o 0 add a copies:
1865 o 0 add a copies:
1866
1866
1867 Test "set:..." and parent revision
1867 Test "set:..." and parent revision
1868
1868
1869 $ hg up -q 4
1869 $ hg up -q 4
1870 $ testlog "set:copied()"
1870 $ testlog "set:copied()"
1871 []
1871 []
1872 (func
1872 (func
1873 (symbol '_matchfiles')
1873 (symbol 'filelog')
1874 (list
1874 (string 'set:copied()'))
1875 (string 'r:')
1876 (string 'd:relpath')
1877 (string 'p:set:copied()')))
1878 <filteredset
1875 <filteredset
1879 <spanset- 0:7>,
1876 <spanset- 0:7>, set([])>
1880 <matchfiles patterns=['set:copied()'], include=[] exclude=[], default='relpath', rev=2147483647>>
1881 $ testlog --include "set:copied()"
1877 $ testlog --include "set:copied()"
1882 []
1878 []
1883 (func
1879 []
1884 (symbol '_matchfiles')
1880 <spanset- 0:7>
1885 (list
1886 (string 'r:')
1887 (string 'd:relpath')
1888 (string 'i:set:copied()')))
1889 <filteredset
1890 <spanset- 0:7>,
1891 <matchfiles patterns=[], include=['set:copied()'] exclude=[], default='relpath', rev=2147483647>>
1892 $ testlog -r "sort(file('set:copied()'), -rev)"
1881 $ testlog -r "sort(file('set:copied()'), -rev)"
1893 ["sort(file('set:copied()'), -rev)"]
1882 ["sort(file('set:copied()'), -rev)"]
1894 []
1883 []
1895 <filteredset
1884 <filteredset
1896 <fullreposet- 0:7>,
1885 <fullreposet- 0:7>,
1897 <matchfiles patterns=['set:copied()'], include=[] exclude=[], default='glob', rev=None>>
1886 <matchfiles patterns=['set:copied()'], include=[] exclude=[], default='glob', rev=None>>
1898
1887
1899 Test --removed
1888 Test --removed
1900
1889
1901 $ testlog --removed
1890 $ testlog --removed
1902 []
1891 []
1903 []
1892 []
1904 <spanset- 0:7>
1893 <spanset- 0:7>
1905 $ testlog --removed a
1894 $ testlog --removed a
1906 []
1895 []
1907 (func
1896 (func
1908 (symbol '_matchfiles')
1897 (symbol '_matchfiles')
1909 (list
1898 (list
1910 (string 'r:')
1899 (string 'r:')
1911 (string 'd:relpath')
1900 (string 'd:relpath')
1912 (string 'p:a')))
1901 (string 'p:a')))
1913 <filteredset
1902 <filteredset
1914 <spanset- 0:7>,
1903 <spanset- 0:7>,
1915 <matchfiles patterns=['a'], include=[] exclude=[], default='relpath', rev=2147483647>>
1904 <matchfiles patterns=['a'], include=[] exclude=[], default='relpath', rev=2147483647>>
1916 $ testlog --removed --follow a
1905 $ testlog --removed --follow a
1917 []
1906 []
1918 (func
1907 (func
1919 (symbol '_matchfiles')
1908 (symbol '_matchfiles')
1920 (list
1909 (list
1921 (string 'r:')
1910 (string 'r:')
1922 (string 'd:relpath')
1911 (string 'd:relpath')
1923 (string 'p:a')))
1912 (string 'p:a')))
1924 <filteredset
1913 <filteredset
1925 <generatorsetdesc->,
1914 <generatorsetdesc->,
1926 <matchfiles patterns=['a'], include=[] exclude=[], default='relpath', rev=2147483647>>
1915 <matchfiles patterns=['a'], include=[] exclude=[], default='relpath', rev=2147483647>>
1927
1916
1928 Test --patch and --stat with --follow and --follow-first
1917 Test --patch and --stat with --follow and --follow-first
1929
1918
1930 $ hg up -q 3
1919 $ hg up -q 3
1931 $ hg log -G --git --patch b
1920 $ hg log -G --git --patch b
1932 o changeset: 1:216d4c92cf98
1921 o changeset: 1:216d4c92cf98
1933 | user: test
1922 | user: test
1934 ~ date: Thu Jan 01 00:00:00 1970 +0000
1923 ~ date: Thu Jan 01 00:00:00 1970 +0000
1935 summary: copy a b
1924 summary: copy a b
1936
1925
1937 diff --git a/a b/b
1926 diff --git a/a b/b
1938 copy from a
1927 copy from a
1939 copy to b
1928 copy to b
1940
1929
1941
1930
1942 $ hg log -G --git --stat b
1931 $ hg log -G --git --stat b
1943 o changeset: 1:216d4c92cf98
1932 o changeset: 1:216d4c92cf98
1944 | user: test
1933 | user: test
1945 ~ date: Thu Jan 01 00:00:00 1970 +0000
1934 ~ date: Thu Jan 01 00:00:00 1970 +0000
1946 summary: copy a b
1935 summary: copy a b
1947
1936
1948 b | 0
1937 b | 0
1949 1 files changed, 0 insertions(+), 0 deletions(-)
1938 1 files changed, 0 insertions(+), 0 deletions(-)
1950
1939
1951
1940
1952 $ hg log -G --git --patch --follow b
1941 $ hg log -G --git --patch --follow b
1953 o changeset: 1:216d4c92cf98
1942 o changeset: 1:216d4c92cf98
1954 | user: test
1943 | user: test
1955 | date: Thu Jan 01 00:00:00 1970 +0000
1944 | date: Thu Jan 01 00:00:00 1970 +0000
1956 | summary: copy a b
1945 | summary: copy a b
1957 |
1946 |
1958 | diff --git a/a b/b
1947 | diff --git a/a b/b
1959 | copy from a
1948 | copy from a
1960 | copy to b
1949 | copy to b
1961 |
1950 |
1962 o changeset: 0:f8035bb17114
1951 o changeset: 0:f8035bb17114
1963 user: test
1952 user: test
1964 date: Thu Jan 01 00:00:00 1970 +0000
1953 date: Thu Jan 01 00:00:00 1970 +0000
1965 summary: add a
1954 summary: add a
1966
1955
1967 diff --git a/a b/a
1956 diff --git a/a b/a
1968 new file mode 100644
1957 new file mode 100644
1969 --- /dev/null
1958 --- /dev/null
1970 +++ b/a
1959 +++ b/a
1971 @@ -0,0 +1,1 @@
1960 @@ -0,0 +1,1 @@
1972 +a
1961 +a
1973
1962
1974
1963
1975 $ hg log -G --git --stat --follow b
1964 $ hg log -G --git --stat --follow b
1976 o changeset: 1:216d4c92cf98
1965 o changeset: 1:216d4c92cf98
1977 | user: test
1966 | user: test
1978 | date: Thu Jan 01 00:00:00 1970 +0000
1967 | date: Thu Jan 01 00:00:00 1970 +0000
1979 | summary: copy a b
1968 | summary: copy a b
1980 |
1969 |
1981 | b | 0
1970 | b | 0
1982 | 1 files changed, 0 insertions(+), 0 deletions(-)
1971 | 1 files changed, 0 insertions(+), 0 deletions(-)
1983 |
1972 |
1984 o changeset: 0:f8035bb17114
1973 o changeset: 0:f8035bb17114
1985 user: test
1974 user: test
1986 date: Thu Jan 01 00:00:00 1970 +0000
1975 date: Thu Jan 01 00:00:00 1970 +0000
1987 summary: add a
1976 summary: add a
1988
1977
1989 a | 1 +
1978 a | 1 +
1990 1 files changed, 1 insertions(+), 0 deletions(-)
1979 1 files changed, 1 insertions(+), 0 deletions(-)
1991
1980
1992
1981
1993 $ hg up -q 6
1982 $ hg up -q 6
1994 $ hg log -G --git --patch --follow-first e
1983 $ hg log -G --git --patch --follow-first e
1995 @ changeset: 6:fc281d8ff18d
1984 @ changeset: 6:fc281d8ff18d
1996 |\ tag: tip
1985 |\ tag: tip
1997 | ~ parent: 5:99b31f1c2782
1986 | ~ parent: 5:99b31f1c2782
1998 | parent: 4:17d952250a9d
1987 | parent: 4:17d952250a9d
1999 | user: test
1988 | user: test
2000 | date: Thu Jan 01 00:00:00 1970 +0000
1989 | date: Thu Jan 01 00:00:00 1970 +0000
2001 | summary: merge 5 and 4
1990 | summary: merge 5 and 4
2002 |
1991 |
2003 | diff --git a/e b/e
1992 | diff --git a/e b/e
2004 | --- a/e
1993 | --- a/e
2005 | +++ b/e
1994 | +++ b/e
2006 | @@ -1,1 +1,1 @@
1995 | @@ -1,1 +1,1 @@
2007 | -ee
1996 | -ee
2008 | +merge
1997 | +merge
2009 |
1998 |
2010 o changeset: 5:99b31f1c2782
1999 o changeset: 5:99b31f1c2782
2011 | parent: 3:5918b8d165d1
2000 | parent: 3:5918b8d165d1
2012 ~ user: test
2001 ~ user: test
2013 date: Thu Jan 01 00:00:00 1970 +0000
2002 date: Thu Jan 01 00:00:00 1970 +0000
2014 summary: add another e
2003 summary: add another e
2015
2004
2016 diff --git a/e b/e
2005 diff --git a/e b/e
2017 new file mode 100644
2006 new file mode 100644
2018 --- /dev/null
2007 --- /dev/null
2019 +++ b/e
2008 +++ b/e
2020 @@ -0,0 +1,1 @@
2009 @@ -0,0 +1,1 @@
2021 +ee
2010 +ee
2022
2011
2023
2012
2024 Test old-style --rev
2013 Test old-style --rev
2025
2014
2026 $ hg tag 'foo-bar'
2015 $ hg tag 'foo-bar'
2027 $ testlog -r 'foo-bar'
2016 $ testlog -r 'foo-bar'
2028 ['foo-bar']
2017 ['foo-bar']
2029 []
2018 []
2030 <baseset [6]>
2019 <baseset [6]>
2031
2020
2032 Test --follow and forward --rev
2021 Test --follow and forward --rev
2033
2022
2034 $ hg up -q 6
2023 $ hg up -q 6
2035 $ echo g > g
2024 $ echo g > g
2036 $ hg ci -Am 'add g' g
2025 $ hg ci -Am 'add g' g
2037 created new head
2026 created new head
2038 $ hg up -q 2
2027 $ hg up -q 2
2039 $ hg log -G --template "{rev} {desc|firstline}\n"
2028 $ hg log -G --template "{rev} {desc|firstline}\n"
2040 o 8 add g
2029 o 8 add g
2041 |
2030 |
2042 | o 7 Added tag foo-bar for changeset fc281d8ff18d
2031 | o 7 Added tag foo-bar for changeset fc281d8ff18d
2043 |/
2032 |/
2044 o 6 merge 5 and 4
2033 o 6 merge 5 and 4
2045 |\
2034 |\
2046 | o 5 add another e
2035 | o 5 add another e
2047 | |
2036 | |
2048 o | 4 mv dir/b e
2037 o | 4 mv dir/b e
2049 |/
2038 |/
2050 o 3 mv a b; add d
2039 o 3 mv a b; add d
2051 |
2040 |
2052 @ 2 mv b dir/b
2041 @ 2 mv b dir/b
2053 |
2042 |
2054 o 1 copy a b
2043 o 1 copy a b
2055 |
2044 |
2056 o 0 add a
2045 o 0 add a
2057
2046
2058 $ hg archive -r 7 archive
2047 $ hg archive -r 7 archive
2059 $ grep changessincelatesttag archive/.hg_archival.txt
2048 $ grep changessincelatesttag archive/.hg_archival.txt
2060 changessincelatesttag: 1
2049 changessincelatesttag: 1
2061 $ rm -r archive
2050 $ rm -r archive
2062
2051
2063 changessincelatesttag with no prior tag
2052 changessincelatesttag with no prior tag
2064 $ hg archive -r 4 archive
2053 $ hg archive -r 4 archive
2065 $ grep changessincelatesttag archive/.hg_archival.txt
2054 $ grep changessincelatesttag archive/.hg_archival.txt
2066 changessincelatesttag: 5
2055 changessincelatesttag: 5
2067
2056
2068 $ hg export 'all()'
2057 $ hg export 'all()'
2069 # HG changeset patch
2058 # HG changeset patch
2070 # User test
2059 # User test
2071 # Date 0 0
2060 # Date 0 0
2072 # Thu Jan 01 00:00:00 1970 +0000
2061 # Thu Jan 01 00:00:00 1970 +0000
2073 # Node ID f8035bb17114da16215af3436ec5222428ace8ee
2062 # Node ID f8035bb17114da16215af3436ec5222428ace8ee
2074 # Parent 0000000000000000000000000000000000000000
2063 # Parent 0000000000000000000000000000000000000000
2075 add a
2064 add a
2076
2065
2077 diff -r 000000000000 -r f8035bb17114 a
2066 diff -r 000000000000 -r f8035bb17114 a
2078 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2067 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2079 +++ b/a Thu Jan 01 00:00:00 1970 +0000
2068 +++ b/a Thu Jan 01 00:00:00 1970 +0000
2080 @@ -0,0 +1,1 @@
2069 @@ -0,0 +1,1 @@
2081 +a
2070 +a
2082 diff -r 000000000000 -r f8035bb17114 aa
2071 diff -r 000000000000 -r f8035bb17114 aa
2083 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2072 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2084 +++ b/aa Thu Jan 01 00:00:00 1970 +0000
2073 +++ b/aa Thu Jan 01 00:00:00 1970 +0000
2085 @@ -0,0 +1,1 @@
2074 @@ -0,0 +1,1 @@
2086 +aa
2075 +aa
2087 diff -r 000000000000 -r f8035bb17114 f
2076 diff -r 000000000000 -r f8035bb17114 f
2088 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2077 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2089 +++ b/f Thu Jan 01 00:00:00 1970 +0000
2078 +++ b/f Thu Jan 01 00:00:00 1970 +0000
2090 @@ -0,0 +1,1 @@
2079 @@ -0,0 +1,1 @@
2091 +f
2080 +f
2092 # HG changeset patch
2081 # HG changeset patch
2093 # User test
2082 # User test
2094 # Date 0 0
2083 # Date 0 0
2095 # Thu Jan 01 00:00:00 1970 +0000
2084 # Thu Jan 01 00:00:00 1970 +0000
2096 # Node ID 216d4c92cf98ff2b4641d508b76b529f3d424c92
2085 # Node ID 216d4c92cf98ff2b4641d508b76b529f3d424c92
2097 # Parent f8035bb17114da16215af3436ec5222428ace8ee
2086 # Parent f8035bb17114da16215af3436ec5222428ace8ee
2098 copy a b
2087 copy a b
2099
2088
2100 diff -r f8035bb17114 -r 216d4c92cf98 b
2089 diff -r f8035bb17114 -r 216d4c92cf98 b
2101 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2090 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2102 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2091 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2103 @@ -0,0 +1,1 @@
2092 @@ -0,0 +1,1 @@
2104 +a
2093 +a
2105 diff -r f8035bb17114 -r 216d4c92cf98 g
2094 diff -r f8035bb17114 -r 216d4c92cf98 g
2106 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2095 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2107 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2096 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2108 @@ -0,0 +1,1 @@
2097 @@ -0,0 +1,1 @@
2109 +f
2098 +f
2110 # HG changeset patch
2099 # HG changeset patch
2111 # User test
2100 # User test
2112 # Date 0 0
2101 # Date 0 0
2113 # Thu Jan 01 00:00:00 1970 +0000
2102 # Thu Jan 01 00:00:00 1970 +0000
2114 # Node ID bb573313a9e8349099b6ea2b2fb1fc7f424446f3
2103 # Node ID bb573313a9e8349099b6ea2b2fb1fc7f424446f3
2115 # Parent 216d4c92cf98ff2b4641d508b76b529f3d424c92
2104 # Parent 216d4c92cf98ff2b4641d508b76b529f3d424c92
2116 mv b dir/b
2105 mv b dir/b
2117
2106
2118 diff -r 216d4c92cf98 -r bb573313a9e8 b
2107 diff -r 216d4c92cf98 -r bb573313a9e8 b
2119 --- a/b Thu Jan 01 00:00:00 1970 +0000
2108 --- a/b Thu Jan 01 00:00:00 1970 +0000
2120 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2109 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2121 @@ -1,1 +0,0 @@
2110 @@ -1,1 +0,0 @@
2122 -a
2111 -a
2123 diff -r 216d4c92cf98 -r bb573313a9e8 dir/b
2112 diff -r 216d4c92cf98 -r bb573313a9e8 dir/b
2124 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2113 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2125 +++ b/dir/b Thu Jan 01 00:00:00 1970 +0000
2114 +++ b/dir/b Thu Jan 01 00:00:00 1970 +0000
2126 @@ -0,0 +1,1 @@
2115 @@ -0,0 +1,1 @@
2127 +a
2116 +a
2128 diff -r 216d4c92cf98 -r bb573313a9e8 f
2117 diff -r 216d4c92cf98 -r bb573313a9e8 f
2129 --- a/f Thu Jan 01 00:00:00 1970 +0000
2118 --- a/f Thu Jan 01 00:00:00 1970 +0000
2130 +++ b/f Thu Jan 01 00:00:00 1970 +0000
2119 +++ b/f Thu Jan 01 00:00:00 1970 +0000
2131 @@ -1,1 +1,2 @@
2120 @@ -1,1 +1,2 @@
2132 f
2121 f
2133 +f
2122 +f
2134 diff -r 216d4c92cf98 -r bb573313a9e8 g
2123 diff -r 216d4c92cf98 -r bb573313a9e8 g
2135 --- a/g Thu Jan 01 00:00:00 1970 +0000
2124 --- a/g Thu Jan 01 00:00:00 1970 +0000
2136 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2125 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2137 @@ -1,1 +1,2 @@
2126 @@ -1,1 +1,2 @@
2138 f
2127 f
2139 +g
2128 +g
2140 # HG changeset patch
2129 # HG changeset patch
2141 # User test
2130 # User test
2142 # Date 0 0
2131 # Date 0 0
2143 # Thu Jan 01 00:00:00 1970 +0000
2132 # Thu Jan 01 00:00:00 1970 +0000
2144 # Node ID 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2133 # Node ID 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2145 # Parent bb573313a9e8349099b6ea2b2fb1fc7f424446f3
2134 # Parent bb573313a9e8349099b6ea2b2fb1fc7f424446f3
2146 mv a b; add d
2135 mv a b; add d
2147
2136
2148 diff -r bb573313a9e8 -r 5918b8d165d1 a
2137 diff -r bb573313a9e8 -r 5918b8d165d1 a
2149 --- a/a Thu Jan 01 00:00:00 1970 +0000
2138 --- a/a Thu Jan 01 00:00:00 1970 +0000
2150 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2139 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2151 @@ -1,1 +0,0 @@
2140 @@ -1,1 +0,0 @@
2152 -a
2141 -a
2153 diff -r bb573313a9e8 -r 5918b8d165d1 b
2142 diff -r bb573313a9e8 -r 5918b8d165d1 b
2154 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2143 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2155 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2144 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2156 @@ -0,0 +1,1 @@
2145 @@ -0,0 +1,1 @@
2157 +a
2146 +a
2158 diff -r bb573313a9e8 -r 5918b8d165d1 d
2147 diff -r bb573313a9e8 -r 5918b8d165d1 d
2159 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2148 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2160 +++ b/d Thu Jan 01 00:00:00 1970 +0000
2149 +++ b/d Thu Jan 01 00:00:00 1970 +0000
2161 @@ -0,0 +1,1 @@
2150 @@ -0,0 +1,1 @@
2162 +a
2151 +a
2163 diff -r bb573313a9e8 -r 5918b8d165d1 g
2152 diff -r bb573313a9e8 -r 5918b8d165d1 g
2164 --- a/g Thu Jan 01 00:00:00 1970 +0000
2153 --- a/g Thu Jan 01 00:00:00 1970 +0000
2165 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2154 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2166 @@ -1,2 +1,2 @@
2155 @@ -1,2 +1,2 @@
2167 f
2156 f
2168 -g
2157 -g
2169 +f
2158 +f
2170 # HG changeset patch
2159 # HG changeset patch
2171 # User test
2160 # User test
2172 # Date 0 0
2161 # Date 0 0
2173 # Thu Jan 01 00:00:00 1970 +0000
2162 # Thu Jan 01 00:00:00 1970 +0000
2174 # Node ID 17d952250a9d03cc3dc77b199ab60e959b9b0260
2163 # Node ID 17d952250a9d03cc3dc77b199ab60e959b9b0260
2175 # Parent 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2164 # Parent 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2176 mv dir/b e
2165 mv dir/b e
2177
2166
2178 diff -r 5918b8d165d1 -r 17d952250a9d dir/b
2167 diff -r 5918b8d165d1 -r 17d952250a9d dir/b
2179 --- a/dir/b Thu Jan 01 00:00:00 1970 +0000
2168 --- a/dir/b Thu Jan 01 00:00:00 1970 +0000
2180 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2169 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2181 @@ -1,1 +0,0 @@
2170 @@ -1,1 +0,0 @@
2182 -a
2171 -a
2183 diff -r 5918b8d165d1 -r 17d952250a9d e
2172 diff -r 5918b8d165d1 -r 17d952250a9d e
2184 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2173 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2185 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2174 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2186 @@ -0,0 +1,1 @@
2175 @@ -0,0 +1,1 @@
2187 +a
2176 +a
2188 # HG changeset patch
2177 # HG changeset patch
2189 # User test
2178 # User test
2190 # Date 0 0
2179 # Date 0 0
2191 # Thu Jan 01 00:00:00 1970 +0000
2180 # Thu Jan 01 00:00:00 1970 +0000
2192 # Node ID 99b31f1c2782e2deb1723cef08930f70fc84b37b
2181 # Node ID 99b31f1c2782e2deb1723cef08930f70fc84b37b
2193 # Parent 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2182 # Parent 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2194 add another e
2183 add another e
2195
2184
2196 diff -r 5918b8d165d1 -r 99b31f1c2782 e
2185 diff -r 5918b8d165d1 -r 99b31f1c2782 e
2197 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2186 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2198 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2187 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2199 @@ -0,0 +1,1 @@
2188 @@ -0,0 +1,1 @@
2200 +ee
2189 +ee
2201 # HG changeset patch
2190 # HG changeset patch
2202 # User test
2191 # User test
2203 # Date 0 0
2192 # Date 0 0
2204 # Thu Jan 01 00:00:00 1970 +0000
2193 # Thu Jan 01 00:00:00 1970 +0000
2205 # Node ID fc281d8ff18d999ad6497b3d27390bcd695dcc73
2194 # Node ID fc281d8ff18d999ad6497b3d27390bcd695dcc73
2206 # Parent 99b31f1c2782e2deb1723cef08930f70fc84b37b
2195 # Parent 99b31f1c2782e2deb1723cef08930f70fc84b37b
2207 # Parent 17d952250a9d03cc3dc77b199ab60e959b9b0260
2196 # Parent 17d952250a9d03cc3dc77b199ab60e959b9b0260
2208 merge 5 and 4
2197 merge 5 and 4
2209
2198
2210 diff -r 99b31f1c2782 -r fc281d8ff18d dir/b
2199 diff -r 99b31f1c2782 -r fc281d8ff18d dir/b
2211 --- a/dir/b Thu Jan 01 00:00:00 1970 +0000
2200 --- a/dir/b Thu Jan 01 00:00:00 1970 +0000
2212 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2201 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2213 @@ -1,1 +0,0 @@
2202 @@ -1,1 +0,0 @@
2214 -a
2203 -a
2215 diff -r 99b31f1c2782 -r fc281d8ff18d e
2204 diff -r 99b31f1c2782 -r fc281d8ff18d e
2216 --- a/e Thu Jan 01 00:00:00 1970 +0000
2205 --- a/e Thu Jan 01 00:00:00 1970 +0000
2217 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2206 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2218 @@ -1,1 +1,1 @@
2207 @@ -1,1 +1,1 @@
2219 -ee
2208 -ee
2220 +merge
2209 +merge
2221 # HG changeset patch
2210 # HG changeset patch
2222 # User test
2211 # User test
2223 # Date 0 0
2212 # Date 0 0
2224 # Thu Jan 01 00:00:00 1970 +0000
2213 # Thu Jan 01 00:00:00 1970 +0000
2225 # Node ID 02dbb8e276b8ab7abfd07cab50c901647e75c2dd
2214 # Node ID 02dbb8e276b8ab7abfd07cab50c901647e75c2dd
2226 # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73
2215 # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73
2227 Added tag foo-bar for changeset fc281d8ff18d
2216 Added tag foo-bar for changeset fc281d8ff18d
2228
2217
2229 diff -r fc281d8ff18d -r 02dbb8e276b8 .hgtags
2218 diff -r fc281d8ff18d -r 02dbb8e276b8 .hgtags
2230 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2219 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2231 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
2220 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
2232 @@ -0,0 +1,1 @@
2221 @@ -0,0 +1,1 @@
2233 +fc281d8ff18d999ad6497b3d27390bcd695dcc73 foo-bar
2222 +fc281d8ff18d999ad6497b3d27390bcd695dcc73 foo-bar
2234 # HG changeset patch
2223 # HG changeset patch
2235 # User test
2224 # User test
2236 # Date 0 0
2225 # Date 0 0
2237 # Thu Jan 01 00:00:00 1970 +0000
2226 # Thu Jan 01 00:00:00 1970 +0000
2238 # Node ID 24c2e826ddebf80f9dcd60b856bdb8e6715c5449
2227 # Node ID 24c2e826ddebf80f9dcd60b856bdb8e6715c5449
2239 # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73
2228 # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73
2240 add g
2229 add g
2241
2230
2242 diff -r fc281d8ff18d -r 24c2e826ddeb g
2231 diff -r fc281d8ff18d -r 24c2e826ddeb g
2243 --- a/g Thu Jan 01 00:00:00 1970 +0000
2232 --- a/g Thu Jan 01 00:00:00 1970 +0000
2244 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2233 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2245 @@ -1,2 +1,1 @@
2234 @@ -1,2 +1,1 @@
2246 -f
2235 -f
2247 -f
2236 -f
2248 +g
2237 +g
2249 $ testlog --follow -r6 -r8 -r5 -r7 -r4
2238 $ testlog --follow -r6 -r8 -r5 -r7 -r4
2250 ['6', '8', '5', '7', '4']
2239 ['6', '8', '5', '7', '4']
2251 []
2240 []
2252 <generatorsetdesc->
2241 <generatorsetdesc->
2253
2242
2254 Test --follow-first and forward --rev
2243 Test --follow-first and forward --rev
2255
2244
2256 $ testlog --follow-first -r6 -r8 -r5 -r7 -r4
2245 $ testlog --follow-first -r6 -r8 -r5 -r7 -r4
2257 ['6', '8', '5', '7', '4']
2246 ['6', '8', '5', '7', '4']
2258 []
2247 []
2259 <generatorsetdesc->
2248 <generatorsetdesc->
2260
2249
2261 Test --follow and backward --rev
2250 Test --follow and backward --rev
2262
2251
2263 $ testlog --follow -r6 -r5 -r7 -r8 -r4
2252 $ testlog --follow -r6 -r5 -r7 -r8 -r4
2264 ['6', '5', '7', '8', '4']
2253 ['6', '5', '7', '8', '4']
2265 []
2254 []
2266 <generatorsetdesc->
2255 <generatorsetdesc->
2267
2256
2268 Test --follow-first and backward --rev
2257 Test --follow-first and backward --rev
2269
2258
2270 $ testlog --follow-first -r6 -r5 -r7 -r8 -r4
2259 $ testlog --follow-first -r6 -r5 -r7 -r8 -r4
2271 ['6', '5', '7', '8', '4']
2260 ['6', '5', '7', '8', '4']
2272 []
2261 []
2273 <generatorsetdesc->
2262 <generatorsetdesc->
2274
2263
2275 Test --follow with --rev of graphlog extension
2264 Test --follow with --rev of graphlog extension
2276
2265
2277 $ hg --config extensions.graphlog= glog -qfr1
2266 $ hg --config extensions.graphlog= glog -qfr1
2278 o 1:216d4c92cf98
2267 o 1:216d4c92cf98
2279 |
2268 |
2280 o 0:f8035bb17114
2269 o 0:f8035bb17114
2281
2270
2282
2271
2283 Test subdir
2272 Test subdir
2284
2273
2285 $ hg up -q 3
2274 $ hg up -q 3
2286 $ cd dir
2275 $ cd dir
2287 $ testlog .
2276 $ testlog .
2288 []
2277 []
2289 (func
2278 (func
2290 (symbol '_matchfiles')
2279 (symbol '_matchfiles')
2291 (list
2280 (list
2292 (string 'r:')
2281 (string 'r:')
2293 (string 'd:relpath')
2282 (string 'd:relpath')
2294 (string 'p:.')))
2283 (string 'p:.')))
2295 <filteredset
2284 <filteredset
2296 <spanset- 0:9>,
2285 <spanset- 0:9>,
2297 <matchfiles patterns=['.'], include=[] exclude=[], default='relpath', rev=2147483647>>
2286 <matchfiles patterns=['.'], include=[] exclude=[], default='relpath', rev=2147483647>>
2298 $ testlog ../b
2287 $ testlog ../b
2299 []
2288 []
2300 (func
2289 (func
2301 (symbol 'filelog')
2290 (symbol 'filelog')
2302 (string '../b'))
2291 (string '../b'))
2303 <filteredset
2292 <filteredset
2304 <spanset- 0:9>, set([1])>
2293 <spanset- 0:9>, set([1])>
2305 $ testlog -f ../b
2294 $ testlog -f ../b
2306 []
2295 []
2307 []
2296 []
2308 <generatorsetdesc->
2297 <generatorsetdesc->
2309 $ cd ..
2298 $ cd ..
2310
2299
2311 Test --hidden
2300 Test --hidden
2312 (enable obsolete)
2301 (enable obsolete)
2313
2302
2314 $ cat >> $HGRCPATH << EOF
2303 $ cat >> $HGRCPATH << EOF
2315 > [experimental]
2304 > [experimental]
2316 > evolution.createmarkers=True
2305 > evolution.createmarkers=True
2317 > EOF
2306 > EOF
2318
2307
2319 $ hg debugobsolete `hg id --debug -i -r 8`
2308 $ hg debugobsolete `hg id --debug -i -r 8`
2320 obsoleted 1 changesets
2309 obsoleted 1 changesets
2321 $ testlog
2310 $ testlog
2322 []
2311 []
2323 []
2312 []
2324 <spanset- 0:9>
2313 <spanset- 0:9>
2325 $ testlog --hidden
2314 $ testlog --hidden
2326 []
2315 []
2327 []
2316 []
2328 <spanset- 0:9>
2317 <spanset- 0:9>
2329 $ hg log -G --template '{rev} {desc}\n'
2318 $ hg log -G --template '{rev} {desc}\n'
2330 o 7 Added tag foo-bar for changeset fc281d8ff18d
2319 o 7 Added tag foo-bar for changeset fc281d8ff18d
2331 |
2320 |
2332 o 6 merge 5 and 4
2321 o 6 merge 5 and 4
2333 |\
2322 |\
2334 | o 5 add another e
2323 | o 5 add another e
2335 | |
2324 | |
2336 o | 4 mv dir/b e
2325 o | 4 mv dir/b e
2337 |/
2326 |/
2338 @ 3 mv a b; add d
2327 @ 3 mv a b; add d
2339 |
2328 |
2340 o 2 mv b dir/b
2329 o 2 mv b dir/b
2341 |
2330 |
2342 o 1 copy a b
2331 o 1 copy a b
2343 |
2332 |
2344 o 0 add a
2333 o 0 add a
2345
2334
2346
2335
2347 A template without trailing newline should do something sane
2336 A template without trailing newline should do something sane
2348
2337
2349 $ hg log -G -r ::2 --template '{rev} {desc}'
2338 $ hg log -G -r ::2 --template '{rev} {desc}'
2350 o 2 mv b dir/b
2339 o 2 mv b dir/b
2351 |
2340 |
2352 o 1 copy a b
2341 o 1 copy a b
2353 |
2342 |
2354 o 0 add a
2343 o 0 add a
2355
2344
2356
2345
2357 Extra newlines must be preserved
2346 Extra newlines must be preserved
2358
2347
2359 $ hg log -G -r ::2 --template '\n{rev} {desc}\n\n'
2348 $ hg log -G -r ::2 --template '\n{rev} {desc}\n\n'
2360 o
2349 o
2361 | 2 mv b dir/b
2350 | 2 mv b dir/b
2362 |
2351 |
2363 o
2352 o
2364 | 1 copy a b
2353 | 1 copy a b
2365 |
2354 |
2366 o
2355 o
2367 0 add a
2356 0 add a
2368
2357
2369
2358
2370 The almost-empty template should do something sane too ...
2359 The almost-empty template should do something sane too ...
2371
2360
2372 $ hg log -G -r ::2 --template '\n'
2361 $ hg log -G -r ::2 --template '\n'
2373 o
2362 o
2374 |
2363 |
2375 o
2364 o
2376 |
2365 |
2377 o
2366 o
2378
2367
2379
2368
2380 issue3772
2369 issue3772
2381
2370
2382 $ hg log -G -r :null
2371 $ hg log -G -r :null
2383 o changeset: 0:f8035bb17114
2372 o changeset: 0:f8035bb17114
2384 | user: test
2373 | user: test
2385 | date: Thu Jan 01 00:00:00 1970 +0000
2374 | date: Thu Jan 01 00:00:00 1970 +0000
2386 | summary: add a
2375 | summary: add a
2387 |
2376 |
2388 o changeset: -1:000000000000
2377 o changeset: -1:000000000000
2389 user:
2378 user:
2390 date: Thu Jan 01 00:00:00 1970 +0000
2379 date: Thu Jan 01 00:00:00 1970 +0000
2391
2380
2392 $ hg log -G -r null:null
2381 $ hg log -G -r null:null
2393 o changeset: -1:000000000000
2382 o changeset: -1:000000000000
2394 user:
2383 user:
2395 date: Thu Jan 01 00:00:00 1970 +0000
2384 date: Thu Jan 01 00:00:00 1970 +0000
2396
2385
2397
2386
2398 should not draw line down to null due to the magic of fullreposet
2387 should not draw line down to null due to the magic of fullreposet
2399
2388
2400 $ hg log -G -r 'all()' | tail -6
2389 $ hg log -G -r 'all()' | tail -6
2401 |
2390 |
2402 o changeset: 0:f8035bb17114
2391 o changeset: 0:f8035bb17114
2403 user: test
2392 user: test
2404 date: Thu Jan 01 00:00:00 1970 +0000
2393 date: Thu Jan 01 00:00:00 1970 +0000
2405 summary: add a
2394 summary: add a
2406
2395
2407
2396
2408 $ hg log -G -r 'branch(default)' | tail -6
2397 $ hg log -G -r 'branch(default)' | tail -6
2409 |
2398 |
2410 o changeset: 0:f8035bb17114
2399 o changeset: 0:f8035bb17114
2411 user: test
2400 user: test
2412 date: Thu Jan 01 00:00:00 1970 +0000
2401 date: Thu Jan 01 00:00:00 1970 +0000
2413 summary: add a
2402 summary: add a
2414
2403
2415
2404
2416 working-directory revision
2405 working-directory revision
2417
2406
2418 $ hg log -G -qr '. + wdir()'
2407 $ hg log -G -qr '. + wdir()'
2419 o 2147483647:ffffffffffff
2408 o 2147483647:ffffffffffff
2420 |
2409 |
2421 @ 3:5918b8d165d1
2410 @ 3:5918b8d165d1
2422 |
2411 |
2423 ~
2412 ~
2424
2413
2425 node template with changesetprinter:
2414 node template with changesetprinter:
2426
2415
2427 $ hg log -Gqr 5:7 --config ui.graphnodetemplate='"{rev}"'
2416 $ hg log -Gqr 5:7 --config ui.graphnodetemplate='"{rev}"'
2428 7 7:02dbb8e276b8
2417 7 7:02dbb8e276b8
2429 |
2418 |
2430 6 6:fc281d8ff18d
2419 6 6:fc281d8ff18d
2431 |\
2420 |\
2432 | ~
2421 | ~
2433 5 5:99b31f1c2782
2422 5 5:99b31f1c2782
2434 |
2423 |
2435 ~
2424 ~
2436
2425
2437 node template with changesettemplater (shared cache variable):
2426 node template with changesettemplater (shared cache variable):
2438
2427
2439 $ hg log -Gr 5:7 -T '{latesttag % "{rev} {tag}+{distance}"}\n' \
2428 $ hg log -Gr 5:7 -T '{latesttag % "{rev} {tag}+{distance}"}\n' \
2440 > --config ui.graphnodetemplate='{ifeq(latesttagdistance, 0, "#", graphnode)}'
2429 > --config ui.graphnodetemplate='{ifeq(latesttagdistance, 0, "#", graphnode)}'
2441 o 7 foo-bar+1
2430 o 7 foo-bar+1
2442 |
2431 |
2443 # 6 foo-bar+0
2432 # 6 foo-bar+0
2444 |\
2433 |\
2445 | ~
2434 | ~
2446 o 5 null+5
2435 o 5 null+5
2447 |
2436 |
2448 ~
2437 ~
2449
2438
2450 label() should just work in node template:
2439 label() should just work in node template:
2451
2440
2452 $ hg log -Gqr 7 --config extensions.color= --color=debug \
2441 $ hg log -Gqr 7 --config extensions.color= --color=debug \
2453 > --config ui.graphnodetemplate='{label("branch.{branch}", rev)}'
2442 > --config ui.graphnodetemplate='{label("branch.{branch}", rev)}'
2454 [branch.default|7] [log.node|7:02dbb8e276b8]
2443 [branch.default|7] [log.node|7:02dbb8e276b8]
2455 |
2444 |
2456 ~
2445 ~
2457
2446
2458 $ cd ..
2447 $ cd ..
2459
2448
2460 change graph edge styling
2449 change graph edge styling
2461
2450
2462 $ cd repo
2451 $ cd repo
2463 $ cat << EOF >> $HGRCPATH
2452 $ cat << EOF >> $HGRCPATH
2464 > [experimental]
2453 > [experimental]
2465 > graphstyle.parent = |
2454 > graphstyle.parent = |
2466 > graphstyle.grandparent = :
2455 > graphstyle.grandparent = :
2467 > graphstyle.missing =
2456 > graphstyle.missing =
2468 > EOF
2457 > EOF
2469 $ hg log -G -r 'file("a")' -m
2458 $ hg log -G -r 'file("a")' -m
2470 @ changeset: 36:08a19a744424
2459 @ changeset: 36:08a19a744424
2471 : branch: branch
2460 : branch: branch
2472 : tag: tip
2461 : tag: tip
2473 : parent: 35:9159c3644c5e
2462 : parent: 35:9159c3644c5e
2474 : parent: 35:9159c3644c5e
2463 : parent: 35:9159c3644c5e
2475 : user: test
2464 : user: test
2476 : date: Thu Jan 01 00:00:36 1970 +0000
2465 : date: Thu Jan 01 00:00:36 1970 +0000
2477 : summary: (36) buggy merge: identical parents
2466 : summary: (36) buggy merge: identical parents
2478 :
2467 :
2479 o changeset: 32:d06dffa21a31
2468 o changeset: 32:d06dffa21a31
2480 |\ parent: 27:886ed638191b
2469 |\ parent: 27:886ed638191b
2481 | : parent: 31:621d83e11f67
2470 | : parent: 31:621d83e11f67
2482 | : user: test
2471 | : user: test
2483 | : date: Thu Jan 01 00:00:32 1970 +0000
2472 | : date: Thu Jan 01 00:00:32 1970 +0000
2484 | : summary: (32) expand
2473 | : summary: (32) expand
2485 | :
2474 | :
2486 o : changeset: 31:621d83e11f67
2475 o : changeset: 31:621d83e11f67
2487 |\: parent: 21:d42a756af44d
2476 |\: parent: 21:d42a756af44d
2488 | : parent: 30:6e11cd4b648f
2477 | : parent: 30:6e11cd4b648f
2489 | : user: test
2478 | : user: test
2490 | : date: Thu Jan 01 00:00:31 1970 +0000
2479 | : date: Thu Jan 01 00:00:31 1970 +0000
2491 | : summary: (31) expand
2480 | : summary: (31) expand
2492 | :
2481 | :
2493 o : changeset: 30:6e11cd4b648f
2482 o : changeset: 30:6e11cd4b648f
2494 |\ \ parent: 28:44ecd0b9ae99
2483 |\ \ parent: 28:44ecd0b9ae99
2495 | ~ : parent: 29:cd9bb2be7593
2484 | ~ : parent: 29:cd9bb2be7593
2496 | : user: test
2485 | : user: test
2497 | : date: Thu Jan 01 00:00:30 1970 +0000
2486 | : date: Thu Jan 01 00:00:30 1970 +0000
2498 | : summary: (30) expand
2487 | : summary: (30) expand
2499 | /
2488 | /
2500 o : changeset: 28:44ecd0b9ae99
2489 o : changeset: 28:44ecd0b9ae99
2501 |\ \ parent: 1:6db2ef61d156
2490 |\ \ parent: 1:6db2ef61d156
2502 | ~ : parent: 26:7f25b6c2f0b9
2491 | ~ : parent: 26:7f25b6c2f0b9
2503 | : user: test
2492 | : user: test
2504 | : date: Thu Jan 01 00:00:28 1970 +0000
2493 | : date: Thu Jan 01 00:00:28 1970 +0000
2505 | : summary: (28) merge zero known
2494 | : summary: (28) merge zero known
2506 | /
2495 | /
2507 o : changeset: 26:7f25b6c2f0b9
2496 o : changeset: 26:7f25b6c2f0b9
2508 |\ \ parent: 18:1aa84d96232a
2497 |\ \ parent: 18:1aa84d96232a
2509 | | : parent: 25:91da8ed57247
2498 | | : parent: 25:91da8ed57247
2510 | | : user: test
2499 | | : user: test
2511 | | : date: Thu Jan 01 00:00:26 1970 +0000
2500 | | : date: Thu Jan 01 00:00:26 1970 +0000
2512 | | : summary: (26) merge one known; far right
2501 | | : summary: (26) merge one known; far right
2513 | | :
2502 | | :
2514 | o : changeset: 25:91da8ed57247
2503 | o : changeset: 25:91da8ed57247
2515 | |\: parent: 21:d42a756af44d
2504 | |\: parent: 21:d42a756af44d
2516 | | : parent: 24:a9c19a3d96b7
2505 | | : parent: 24:a9c19a3d96b7
2517 | | : user: test
2506 | | : user: test
2518 | | : date: Thu Jan 01 00:00:25 1970 +0000
2507 | | : date: Thu Jan 01 00:00:25 1970 +0000
2519 | | : summary: (25) merge one known; far left
2508 | | : summary: (25) merge one known; far left
2520 | | :
2509 | | :
2521 | o : changeset: 24:a9c19a3d96b7
2510 | o : changeset: 24:a9c19a3d96b7
2522 | |\ \ parent: 0:e6eb3150255d
2511 | |\ \ parent: 0:e6eb3150255d
2523 | | ~ : parent: 23:a01cddf0766d
2512 | | ~ : parent: 23:a01cddf0766d
2524 | | : user: test
2513 | | : user: test
2525 | | : date: Thu Jan 01 00:00:24 1970 +0000
2514 | | : date: Thu Jan 01 00:00:24 1970 +0000
2526 | | : summary: (24) merge one known; immediate right
2515 | | : summary: (24) merge one known; immediate right
2527 | | /
2516 | | /
2528 | o : changeset: 23:a01cddf0766d
2517 | o : changeset: 23:a01cddf0766d
2529 | |\ \ parent: 1:6db2ef61d156
2518 | |\ \ parent: 1:6db2ef61d156
2530 | | ~ : parent: 22:e0d9cccacb5d
2519 | | ~ : parent: 22:e0d9cccacb5d
2531 | | : user: test
2520 | | : user: test
2532 | | : date: Thu Jan 01 00:00:23 1970 +0000
2521 | | : date: Thu Jan 01 00:00:23 1970 +0000
2533 | | : summary: (23) merge one known; immediate left
2522 | | : summary: (23) merge one known; immediate left
2534 | | /
2523 | | /
2535 | o : changeset: 22:e0d9cccacb5d
2524 | o : changeset: 22:e0d9cccacb5d
2536 |/:/ parent: 18:1aa84d96232a
2525 |/:/ parent: 18:1aa84d96232a
2537 | : parent: 21:d42a756af44d
2526 | : parent: 21:d42a756af44d
2538 | : user: test
2527 | : user: test
2539 | : date: Thu Jan 01 00:00:22 1970 +0000
2528 | : date: Thu Jan 01 00:00:22 1970 +0000
2540 | : summary: (22) merge two known; one far left, one far right
2529 | : summary: (22) merge two known; one far left, one far right
2541 | :
2530 | :
2542 | o changeset: 21:d42a756af44d
2531 | o changeset: 21:d42a756af44d
2543 | |\ parent: 19:31ddc2c1573b
2532 | |\ parent: 19:31ddc2c1573b
2544 | | | parent: 20:d30ed6450e32
2533 | | | parent: 20:d30ed6450e32
2545 | | | user: test
2534 | | | user: test
2546 | | | date: Thu Jan 01 00:00:21 1970 +0000
2535 | | | date: Thu Jan 01 00:00:21 1970 +0000
2547 | | | summary: (21) expand
2536 | | | summary: (21) expand
2548 | | |
2537 | | |
2549 +---o changeset: 20:d30ed6450e32
2538 +---o changeset: 20:d30ed6450e32
2550 | | | parent: 0:e6eb3150255d
2539 | | | parent: 0:e6eb3150255d
2551 | | ~ parent: 18:1aa84d96232a
2540 | | ~ parent: 18:1aa84d96232a
2552 | | user: test
2541 | | user: test
2553 | | date: Thu Jan 01 00:00:20 1970 +0000
2542 | | date: Thu Jan 01 00:00:20 1970 +0000
2554 | | summary: (20) merge two known; two far right
2543 | | summary: (20) merge two known; two far right
2555 | |
2544 | |
2556 | o changeset: 19:31ddc2c1573b
2545 | o changeset: 19:31ddc2c1573b
2557 | |\ parent: 15:1dda3f72782d
2546 | |\ parent: 15:1dda3f72782d
2558 | | | parent: 17:44765d7c06e0
2547 | | | parent: 17:44765d7c06e0
2559 | | | user: test
2548 | | | user: test
2560 | | | date: Thu Jan 01 00:00:19 1970 +0000
2549 | | | date: Thu Jan 01 00:00:19 1970 +0000
2561 | | | summary: (19) expand
2550 | | | summary: (19) expand
2562 | | |
2551 | | |
2563 o | | changeset: 18:1aa84d96232a
2552 o | | changeset: 18:1aa84d96232a
2564 |\| | parent: 1:6db2ef61d156
2553 |\| | parent: 1:6db2ef61d156
2565 ~ | | parent: 15:1dda3f72782d
2554 ~ | | parent: 15:1dda3f72782d
2566 | | user: test
2555 | | user: test
2567 | | date: Thu Jan 01 00:00:18 1970 +0000
2556 | | date: Thu Jan 01 00:00:18 1970 +0000
2568 | | summary: (18) merge two known; two far left
2557 | | summary: (18) merge two known; two far left
2569 / /
2558 / /
2570 | o changeset: 17:44765d7c06e0
2559 | o changeset: 17:44765d7c06e0
2571 | |\ parent: 12:86b91144a6e9
2560 | |\ parent: 12:86b91144a6e9
2572 | | | parent: 16:3677d192927d
2561 | | | parent: 16:3677d192927d
2573 | | | user: test
2562 | | | user: test
2574 | | | date: Thu Jan 01 00:00:17 1970 +0000
2563 | | | date: Thu Jan 01 00:00:17 1970 +0000
2575 | | | summary: (17) expand
2564 | | | summary: (17) expand
2576 | | |
2565 | | |
2577 | | o changeset: 16:3677d192927d
2566 | | o changeset: 16:3677d192927d
2578 | | |\ parent: 0:e6eb3150255d
2567 | | |\ parent: 0:e6eb3150255d
2579 | | ~ ~ parent: 1:6db2ef61d156
2568 | | ~ ~ parent: 1:6db2ef61d156
2580 | | user: test
2569 | | user: test
2581 | | date: Thu Jan 01 00:00:16 1970 +0000
2570 | | date: Thu Jan 01 00:00:16 1970 +0000
2582 | | summary: (16) merge two known; one immediate right, one near right
2571 | | summary: (16) merge two known; one immediate right, one near right
2583 | |
2572 | |
2584 o | changeset: 15:1dda3f72782d
2573 o | changeset: 15:1dda3f72782d
2585 |\ \ parent: 13:22d8966a97e3
2574 |\ \ parent: 13:22d8966a97e3
2586 | | | parent: 14:8eac370358ef
2575 | | | parent: 14:8eac370358ef
2587 | | | user: test
2576 | | | user: test
2588 | | | date: Thu Jan 01 00:00:15 1970 +0000
2577 | | | date: Thu Jan 01 00:00:15 1970 +0000
2589 | | | summary: (15) expand
2578 | | | summary: (15) expand
2590 | | |
2579 | | |
2591 | o | changeset: 14:8eac370358ef
2580 | o | changeset: 14:8eac370358ef
2592 | |\| parent: 0:e6eb3150255d
2581 | |\| parent: 0:e6eb3150255d
2593 | ~ | parent: 12:86b91144a6e9
2582 | ~ | parent: 12:86b91144a6e9
2594 | | user: test
2583 | | user: test
2595 | | date: Thu Jan 01 00:00:14 1970 +0000
2584 | | date: Thu Jan 01 00:00:14 1970 +0000
2596 | | summary: (14) merge two known; one immediate right, one far right
2585 | | summary: (14) merge two known; one immediate right, one far right
2597 | /
2586 | /
2598 o | changeset: 13:22d8966a97e3
2587 o | changeset: 13:22d8966a97e3
2599 |\ \ parent: 9:7010c0af0a35
2588 |\ \ parent: 9:7010c0af0a35
2600 | | | parent: 11:832d76e6bdf2
2589 | | | parent: 11:832d76e6bdf2
2601 | | | user: test
2590 | | | user: test
2602 | | | date: Thu Jan 01 00:00:13 1970 +0000
2591 | | | date: Thu Jan 01 00:00:13 1970 +0000
2603 | | | summary: (13) expand
2592 | | | summary: (13) expand
2604 | | |
2593 | | |
2605 +---o changeset: 12:86b91144a6e9
2594 +---o changeset: 12:86b91144a6e9
2606 | | | parent: 1:6db2ef61d156
2595 | | | parent: 1:6db2ef61d156
2607 | | ~ parent: 9:7010c0af0a35
2596 | | ~ parent: 9:7010c0af0a35
2608 | | user: test
2597 | | user: test
2609 | | date: Thu Jan 01 00:00:12 1970 +0000
2598 | | date: Thu Jan 01 00:00:12 1970 +0000
2610 | | summary: (12) merge two known; one immediate right, one far left
2599 | | summary: (12) merge two known; one immediate right, one far left
2611 | |
2600 | |
2612 | o changeset: 11:832d76e6bdf2
2601 | o changeset: 11:832d76e6bdf2
2613 | |\ parent: 6:b105a072e251
2602 | |\ parent: 6:b105a072e251
2614 | | | parent: 10:74c64d036d72
2603 | | | parent: 10:74c64d036d72
2615 | | | user: test
2604 | | | user: test
2616 | | | date: Thu Jan 01 00:00:11 1970 +0000
2605 | | | date: Thu Jan 01 00:00:11 1970 +0000
2617 | | | summary: (11) expand
2606 | | | summary: (11) expand
2618 | | |
2607 | | |
2619 | | o changeset: 10:74c64d036d72
2608 | | o changeset: 10:74c64d036d72
2620 | |/| parent: 0:e6eb3150255d
2609 | |/| parent: 0:e6eb3150255d
2621 | | ~ parent: 6:b105a072e251
2610 | | ~ parent: 6:b105a072e251
2622 | | user: test
2611 | | user: test
2623 | | date: Thu Jan 01 00:00:10 1970 +0000
2612 | | date: Thu Jan 01 00:00:10 1970 +0000
2624 | | summary: (10) merge two known; one immediate left, one near right
2613 | | summary: (10) merge two known; one immediate left, one near right
2625 | |
2614 | |
2626 o | changeset: 9:7010c0af0a35
2615 o | changeset: 9:7010c0af0a35
2627 |\ \ parent: 7:b632bb1b1224
2616 |\ \ parent: 7:b632bb1b1224
2628 | | | parent: 8:7a0b11f71937
2617 | | | parent: 8:7a0b11f71937
2629 | | | user: test
2618 | | | user: test
2630 | | | date: Thu Jan 01 00:00:09 1970 +0000
2619 | | | date: Thu Jan 01 00:00:09 1970 +0000
2631 | | | summary: (9) expand
2620 | | | summary: (9) expand
2632 | | |
2621 | | |
2633 | o | changeset: 8:7a0b11f71937
2622 | o | changeset: 8:7a0b11f71937
2634 |/| | parent: 0:e6eb3150255d
2623 |/| | parent: 0:e6eb3150255d
2635 | ~ | parent: 7:b632bb1b1224
2624 | ~ | parent: 7:b632bb1b1224
2636 | | user: test
2625 | | user: test
2637 | | date: Thu Jan 01 00:00:08 1970 +0000
2626 | | date: Thu Jan 01 00:00:08 1970 +0000
2638 | | summary: (8) merge two known; one immediate left, one far right
2627 | | summary: (8) merge two known; one immediate left, one far right
2639 | /
2628 | /
2640 o | changeset: 7:b632bb1b1224
2629 o | changeset: 7:b632bb1b1224
2641 |\ \ parent: 2:3d9a33b8d1e1
2630 |\ \ parent: 2:3d9a33b8d1e1
2642 | ~ | parent: 5:4409d547b708
2631 | ~ | parent: 5:4409d547b708
2643 | | user: test
2632 | | user: test
2644 | | date: Thu Jan 01 00:00:07 1970 +0000
2633 | | date: Thu Jan 01 00:00:07 1970 +0000
2645 | | summary: (7) expand
2634 | | summary: (7) expand
2646 | /
2635 | /
2647 | o changeset: 6:b105a072e251
2636 | o changeset: 6:b105a072e251
2648 |/| parent: 2:3d9a33b8d1e1
2637 |/| parent: 2:3d9a33b8d1e1
2649 | ~ parent: 5:4409d547b708
2638 | ~ parent: 5:4409d547b708
2650 | user: test
2639 | user: test
2651 | date: Thu Jan 01 00:00:06 1970 +0000
2640 | date: Thu Jan 01 00:00:06 1970 +0000
2652 | summary: (6) merge two known; one immediate left, one far left
2641 | summary: (6) merge two known; one immediate left, one far left
2653 |
2642 |
2654 o changeset: 5:4409d547b708
2643 o changeset: 5:4409d547b708
2655 |\ parent: 3:27eef8ed80b4
2644 |\ parent: 3:27eef8ed80b4
2656 | ~ parent: 4:26a8bac39d9f
2645 | ~ parent: 4:26a8bac39d9f
2657 | user: test
2646 | user: test
2658 | date: Thu Jan 01 00:00:05 1970 +0000
2647 | date: Thu Jan 01 00:00:05 1970 +0000
2659 | summary: (5) expand
2648 | summary: (5) expand
2660 |
2649 |
2661 o changeset: 4:26a8bac39d9f
2650 o changeset: 4:26a8bac39d9f
2662 |\ parent: 1:6db2ef61d156
2651 |\ parent: 1:6db2ef61d156
2663 ~ ~ parent: 3:27eef8ed80b4
2652 ~ ~ parent: 3:27eef8ed80b4
2664 user: test
2653 user: test
2665 date: Thu Jan 01 00:00:04 1970 +0000
2654 date: Thu Jan 01 00:00:04 1970 +0000
2666 summary: (4) merge two known; one immediate left, one immediate right
2655 summary: (4) merge two known; one immediate left, one immediate right
2667
2656
2668
2657
2669 Setting HGPLAIN ignores graphmod styling:
2658 Setting HGPLAIN ignores graphmod styling:
2670
2659
2671 $ HGPLAIN=1 hg log -G -r 'file("a")' -m
2660 $ HGPLAIN=1 hg log -G -r 'file("a")' -m
2672 @ changeset: 36:08a19a744424
2661 @ changeset: 36:08a19a744424
2673 | branch: branch
2662 | branch: branch
2674 | tag: tip
2663 | tag: tip
2675 | parent: 35:9159c3644c5e
2664 | parent: 35:9159c3644c5e
2676 | parent: 35:9159c3644c5e
2665 | parent: 35:9159c3644c5e
2677 | user: test
2666 | user: test
2678 | date: Thu Jan 01 00:00:36 1970 +0000
2667 | date: Thu Jan 01 00:00:36 1970 +0000
2679 | summary: (36) buggy merge: identical parents
2668 | summary: (36) buggy merge: identical parents
2680 |
2669 |
2681 o changeset: 32:d06dffa21a31
2670 o changeset: 32:d06dffa21a31
2682 |\ parent: 27:886ed638191b
2671 |\ parent: 27:886ed638191b
2683 | | parent: 31:621d83e11f67
2672 | | parent: 31:621d83e11f67
2684 | | user: test
2673 | | user: test
2685 | | date: Thu Jan 01 00:00:32 1970 +0000
2674 | | date: Thu Jan 01 00:00:32 1970 +0000
2686 | | summary: (32) expand
2675 | | summary: (32) expand
2687 | |
2676 | |
2688 o | changeset: 31:621d83e11f67
2677 o | changeset: 31:621d83e11f67
2689 |\| parent: 21:d42a756af44d
2678 |\| parent: 21:d42a756af44d
2690 | | parent: 30:6e11cd4b648f
2679 | | parent: 30:6e11cd4b648f
2691 | | user: test
2680 | | user: test
2692 | | date: Thu Jan 01 00:00:31 1970 +0000
2681 | | date: Thu Jan 01 00:00:31 1970 +0000
2693 | | summary: (31) expand
2682 | | summary: (31) expand
2694 | |
2683 | |
2695 o | changeset: 30:6e11cd4b648f
2684 o | changeset: 30:6e11cd4b648f
2696 |\ \ parent: 28:44ecd0b9ae99
2685 |\ \ parent: 28:44ecd0b9ae99
2697 | | | parent: 29:cd9bb2be7593
2686 | | | parent: 29:cd9bb2be7593
2698 | | | user: test
2687 | | | user: test
2699 | | | date: Thu Jan 01 00:00:30 1970 +0000
2688 | | | date: Thu Jan 01 00:00:30 1970 +0000
2700 | | | summary: (30) expand
2689 | | | summary: (30) expand
2701 | | |
2690 | | |
2702 o | | changeset: 28:44ecd0b9ae99
2691 o | | changeset: 28:44ecd0b9ae99
2703 |\ \ \ parent: 1:6db2ef61d156
2692 |\ \ \ parent: 1:6db2ef61d156
2704 | | | | parent: 26:7f25b6c2f0b9
2693 | | | | parent: 26:7f25b6c2f0b9
2705 | | | | user: test
2694 | | | | user: test
2706 | | | | date: Thu Jan 01 00:00:28 1970 +0000
2695 | | | | date: Thu Jan 01 00:00:28 1970 +0000
2707 | | | | summary: (28) merge zero known
2696 | | | | summary: (28) merge zero known
2708 | | | |
2697 | | | |
2709 o | | | changeset: 26:7f25b6c2f0b9
2698 o | | | changeset: 26:7f25b6c2f0b9
2710 |\ \ \ \ parent: 18:1aa84d96232a
2699 |\ \ \ \ parent: 18:1aa84d96232a
2711 | | | | | parent: 25:91da8ed57247
2700 | | | | | parent: 25:91da8ed57247
2712 | | | | | user: test
2701 | | | | | user: test
2713 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
2702 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
2714 | | | | | summary: (26) merge one known; far right
2703 | | | | | summary: (26) merge one known; far right
2715 | | | | |
2704 | | | | |
2716 | o-----+ changeset: 25:91da8ed57247
2705 | o-----+ changeset: 25:91da8ed57247
2717 | | | | | parent: 21:d42a756af44d
2706 | | | | | parent: 21:d42a756af44d
2718 | | | | | parent: 24:a9c19a3d96b7
2707 | | | | | parent: 24:a9c19a3d96b7
2719 | | | | | user: test
2708 | | | | | user: test
2720 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
2709 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
2721 | | | | | summary: (25) merge one known; far left
2710 | | | | | summary: (25) merge one known; far left
2722 | | | | |
2711 | | | | |
2723 | o | | | changeset: 24:a9c19a3d96b7
2712 | o | | | changeset: 24:a9c19a3d96b7
2724 | |\ \ \ \ parent: 0:e6eb3150255d
2713 | |\ \ \ \ parent: 0:e6eb3150255d
2725 | | | | | | parent: 23:a01cddf0766d
2714 | | | | | | parent: 23:a01cddf0766d
2726 | | | | | | user: test
2715 | | | | | | user: test
2727 | | | | | | date: Thu Jan 01 00:00:24 1970 +0000
2716 | | | | | | date: Thu Jan 01 00:00:24 1970 +0000
2728 | | | | | | summary: (24) merge one known; immediate right
2717 | | | | | | summary: (24) merge one known; immediate right
2729 | | | | | |
2718 | | | | | |
2730 | o---+ | | changeset: 23:a01cddf0766d
2719 | o---+ | | changeset: 23:a01cddf0766d
2731 | | | | | | parent: 1:6db2ef61d156
2720 | | | | | | parent: 1:6db2ef61d156
2732 | | | | | | parent: 22:e0d9cccacb5d
2721 | | | | | | parent: 22:e0d9cccacb5d
2733 | | | | | | user: test
2722 | | | | | | user: test
2734 | | | | | | date: Thu Jan 01 00:00:23 1970 +0000
2723 | | | | | | date: Thu Jan 01 00:00:23 1970 +0000
2735 | | | | | | summary: (23) merge one known; immediate left
2724 | | | | | | summary: (23) merge one known; immediate left
2736 | | | | | |
2725 | | | | | |
2737 | o-------+ changeset: 22:e0d9cccacb5d
2726 | o-------+ changeset: 22:e0d9cccacb5d
2738 | | | | | | parent: 18:1aa84d96232a
2727 | | | | | | parent: 18:1aa84d96232a
2739 |/ / / / / parent: 21:d42a756af44d
2728 |/ / / / / parent: 21:d42a756af44d
2740 | | | | | user: test
2729 | | | | | user: test
2741 | | | | | date: Thu Jan 01 00:00:22 1970 +0000
2730 | | | | | date: Thu Jan 01 00:00:22 1970 +0000
2742 | | | | | summary: (22) merge two known; one far left, one far right
2731 | | | | | summary: (22) merge two known; one far left, one far right
2743 | | | | |
2732 | | | | |
2744 | | | | o changeset: 21:d42a756af44d
2733 | | | | o changeset: 21:d42a756af44d
2745 | | | | |\ parent: 19:31ddc2c1573b
2734 | | | | |\ parent: 19:31ddc2c1573b
2746 | | | | | | parent: 20:d30ed6450e32
2735 | | | | | | parent: 20:d30ed6450e32
2747 | | | | | | user: test
2736 | | | | | | user: test
2748 | | | | | | date: Thu Jan 01 00:00:21 1970 +0000
2737 | | | | | | date: Thu Jan 01 00:00:21 1970 +0000
2749 | | | | | | summary: (21) expand
2738 | | | | | | summary: (21) expand
2750 | | | | | |
2739 | | | | | |
2751 +-+-------o changeset: 20:d30ed6450e32
2740 +-+-------o changeset: 20:d30ed6450e32
2752 | | | | | parent: 0:e6eb3150255d
2741 | | | | | parent: 0:e6eb3150255d
2753 | | | | | parent: 18:1aa84d96232a
2742 | | | | | parent: 18:1aa84d96232a
2754 | | | | | user: test
2743 | | | | | user: test
2755 | | | | | date: Thu Jan 01 00:00:20 1970 +0000
2744 | | | | | date: Thu Jan 01 00:00:20 1970 +0000
2756 | | | | | summary: (20) merge two known; two far right
2745 | | | | | summary: (20) merge two known; two far right
2757 | | | | |
2746 | | | | |
2758 | | | | o changeset: 19:31ddc2c1573b
2747 | | | | o changeset: 19:31ddc2c1573b
2759 | | | | |\ parent: 15:1dda3f72782d
2748 | | | | |\ parent: 15:1dda3f72782d
2760 | | | | | | parent: 17:44765d7c06e0
2749 | | | | | | parent: 17:44765d7c06e0
2761 | | | | | | user: test
2750 | | | | | | user: test
2762 | | | | | | date: Thu Jan 01 00:00:19 1970 +0000
2751 | | | | | | date: Thu Jan 01 00:00:19 1970 +0000
2763 | | | | | | summary: (19) expand
2752 | | | | | | summary: (19) expand
2764 | | | | | |
2753 | | | | | |
2765 o---+---+ | changeset: 18:1aa84d96232a
2754 o---+---+ | changeset: 18:1aa84d96232a
2766 | | | | | parent: 1:6db2ef61d156
2755 | | | | | parent: 1:6db2ef61d156
2767 / / / / / parent: 15:1dda3f72782d
2756 / / / / / parent: 15:1dda3f72782d
2768 | | | | | user: test
2757 | | | | | user: test
2769 | | | | | date: Thu Jan 01 00:00:18 1970 +0000
2758 | | | | | date: Thu Jan 01 00:00:18 1970 +0000
2770 | | | | | summary: (18) merge two known; two far left
2759 | | | | | summary: (18) merge two known; two far left
2771 | | | | |
2760 | | | | |
2772 | | | | o changeset: 17:44765d7c06e0
2761 | | | | o changeset: 17:44765d7c06e0
2773 | | | | |\ parent: 12:86b91144a6e9
2762 | | | | |\ parent: 12:86b91144a6e9
2774 | | | | | | parent: 16:3677d192927d
2763 | | | | | | parent: 16:3677d192927d
2775 | | | | | | user: test
2764 | | | | | | user: test
2776 | | | | | | date: Thu Jan 01 00:00:17 1970 +0000
2765 | | | | | | date: Thu Jan 01 00:00:17 1970 +0000
2777 | | | | | | summary: (17) expand
2766 | | | | | | summary: (17) expand
2778 | | | | | |
2767 | | | | | |
2779 +-+-------o changeset: 16:3677d192927d
2768 +-+-------o changeset: 16:3677d192927d
2780 | | | | | parent: 0:e6eb3150255d
2769 | | | | | parent: 0:e6eb3150255d
2781 | | | | | parent: 1:6db2ef61d156
2770 | | | | | parent: 1:6db2ef61d156
2782 | | | | | user: test
2771 | | | | | user: test
2783 | | | | | date: Thu Jan 01 00:00:16 1970 +0000
2772 | | | | | date: Thu Jan 01 00:00:16 1970 +0000
2784 | | | | | summary: (16) merge two known; one immediate right, one near right
2773 | | | | | summary: (16) merge two known; one immediate right, one near right
2785 | | | | |
2774 | | | | |
2786 | | | o | changeset: 15:1dda3f72782d
2775 | | | o | changeset: 15:1dda3f72782d
2787 | | | |\ \ parent: 13:22d8966a97e3
2776 | | | |\ \ parent: 13:22d8966a97e3
2788 | | | | | | parent: 14:8eac370358ef
2777 | | | | | | parent: 14:8eac370358ef
2789 | | | | | | user: test
2778 | | | | | | user: test
2790 | | | | | | date: Thu Jan 01 00:00:15 1970 +0000
2779 | | | | | | date: Thu Jan 01 00:00:15 1970 +0000
2791 | | | | | | summary: (15) expand
2780 | | | | | | summary: (15) expand
2792 | | | | | |
2781 | | | | | |
2793 +-------o | changeset: 14:8eac370358ef
2782 +-------o | changeset: 14:8eac370358ef
2794 | | | | |/ parent: 0:e6eb3150255d
2783 | | | | |/ parent: 0:e6eb3150255d
2795 | | | | | parent: 12:86b91144a6e9
2784 | | | | | parent: 12:86b91144a6e9
2796 | | | | | user: test
2785 | | | | | user: test
2797 | | | | | date: Thu Jan 01 00:00:14 1970 +0000
2786 | | | | | date: Thu Jan 01 00:00:14 1970 +0000
2798 | | | | | summary: (14) merge two known; one immediate right, one far right
2787 | | | | | summary: (14) merge two known; one immediate right, one far right
2799 | | | | |
2788 | | | | |
2800 | | | o | changeset: 13:22d8966a97e3
2789 | | | o | changeset: 13:22d8966a97e3
2801 | | | |\ \ parent: 9:7010c0af0a35
2790 | | | |\ \ parent: 9:7010c0af0a35
2802 | | | | | | parent: 11:832d76e6bdf2
2791 | | | | | | parent: 11:832d76e6bdf2
2803 | | | | | | user: test
2792 | | | | | | user: test
2804 | | | | | | date: Thu Jan 01 00:00:13 1970 +0000
2793 | | | | | | date: Thu Jan 01 00:00:13 1970 +0000
2805 | | | | | | summary: (13) expand
2794 | | | | | | summary: (13) expand
2806 | | | | | |
2795 | | | | | |
2807 | +---+---o changeset: 12:86b91144a6e9
2796 | +---+---o changeset: 12:86b91144a6e9
2808 | | | | | parent: 1:6db2ef61d156
2797 | | | | | parent: 1:6db2ef61d156
2809 | | | | | parent: 9:7010c0af0a35
2798 | | | | | parent: 9:7010c0af0a35
2810 | | | | | user: test
2799 | | | | | user: test
2811 | | | | | date: Thu Jan 01 00:00:12 1970 +0000
2800 | | | | | date: Thu Jan 01 00:00:12 1970 +0000
2812 | | | | | summary: (12) merge two known; one immediate right, one far left
2801 | | | | | summary: (12) merge two known; one immediate right, one far left
2813 | | | | |
2802 | | | | |
2814 | | | | o changeset: 11:832d76e6bdf2
2803 | | | | o changeset: 11:832d76e6bdf2
2815 | | | | |\ parent: 6:b105a072e251
2804 | | | | |\ parent: 6:b105a072e251
2816 | | | | | | parent: 10:74c64d036d72
2805 | | | | | | parent: 10:74c64d036d72
2817 | | | | | | user: test
2806 | | | | | | user: test
2818 | | | | | | date: Thu Jan 01 00:00:11 1970 +0000
2807 | | | | | | date: Thu Jan 01 00:00:11 1970 +0000
2819 | | | | | | summary: (11) expand
2808 | | | | | | summary: (11) expand
2820 | | | | | |
2809 | | | | | |
2821 +---------o changeset: 10:74c64d036d72
2810 +---------o changeset: 10:74c64d036d72
2822 | | | | |/ parent: 0:e6eb3150255d
2811 | | | | |/ parent: 0:e6eb3150255d
2823 | | | | | parent: 6:b105a072e251
2812 | | | | | parent: 6:b105a072e251
2824 | | | | | user: test
2813 | | | | | user: test
2825 | | | | | date: Thu Jan 01 00:00:10 1970 +0000
2814 | | | | | date: Thu Jan 01 00:00:10 1970 +0000
2826 | | | | | summary: (10) merge two known; one immediate left, one near right
2815 | | | | | summary: (10) merge two known; one immediate left, one near right
2827 | | | | |
2816 | | | | |
2828 | | | o | changeset: 9:7010c0af0a35
2817 | | | o | changeset: 9:7010c0af0a35
2829 | | | |\ \ parent: 7:b632bb1b1224
2818 | | | |\ \ parent: 7:b632bb1b1224
2830 | | | | | | parent: 8:7a0b11f71937
2819 | | | | | | parent: 8:7a0b11f71937
2831 | | | | | | user: test
2820 | | | | | | user: test
2832 | | | | | | date: Thu Jan 01 00:00:09 1970 +0000
2821 | | | | | | date: Thu Jan 01 00:00:09 1970 +0000
2833 | | | | | | summary: (9) expand
2822 | | | | | | summary: (9) expand
2834 | | | | | |
2823 | | | | | |
2835 +-------o | changeset: 8:7a0b11f71937
2824 +-------o | changeset: 8:7a0b11f71937
2836 | | | |/ / parent: 0:e6eb3150255d
2825 | | | |/ / parent: 0:e6eb3150255d
2837 | | | | | parent: 7:b632bb1b1224
2826 | | | | | parent: 7:b632bb1b1224
2838 | | | | | user: test
2827 | | | | | user: test
2839 | | | | | date: Thu Jan 01 00:00:08 1970 +0000
2828 | | | | | date: Thu Jan 01 00:00:08 1970 +0000
2840 | | | | | summary: (8) merge two known; one immediate left, one far right
2829 | | | | | summary: (8) merge two known; one immediate left, one far right
2841 | | | | |
2830 | | | | |
2842 | | | o | changeset: 7:b632bb1b1224
2831 | | | o | changeset: 7:b632bb1b1224
2843 | | | |\ \ parent: 2:3d9a33b8d1e1
2832 | | | |\ \ parent: 2:3d9a33b8d1e1
2844 | | | | | | parent: 5:4409d547b708
2833 | | | | | | parent: 5:4409d547b708
2845 | | | | | | user: test
2834 | | | | | | user: test
2846 | | | | | | date: Thu Jan 01 00:00:07 1970 +0000
2835 | | | | | | date: Thu Jan 01 00:00:07 1970 +0000
2847 | | | | | | summary: (7) expand
2836 | | | | | | summary: (7) expand
2848 | | | | | |
2837 | | | | | |
2849 | | | +---o changeset: 6:b105a072e251
2838 | | | +---o changeset: 6:b105a072e251
2850 | | | | |/ parent: 2:3d9a33b8d1e1
2839 | | | | |/ parent: 2:3d9a33b8d1e1
2851 | | | | | parent: 5:4409d547b708
2840 | | | | | parent: 5:4409d547b708
2852 | | | | | user: test
2841 | | | | | user: test
2853 | | | | | date: Thu Jan 01 00:00:06 1970 +0000
2842 | | | | | date: Thu Jan 01 00:00:06 1970 +0000
2854 | | | | | summary: (6) merge two known; one immediate left, one far left
2843 | | | | | summary: (6) merge two known; one immediate left, one far left
2855 | | | | |
2844 | | | | |
2856 | | | o | changeset: 5:4409d547b708
2845 | | | o | changeset: 5:4409d547b708
2857 | | | |\ \ parent: 3:27eef8ed80b4
2846 | | | |\ \ parent: 3:27eef8ed80b4
2858 | | | | | | parent: 4:26a8bac39d9f
2847 | | | | | | parent: 4:26a8bac39d9f
2859 | | | | | | user: test
2848 | | | | | | user: test
2860 | | | | | | date: Thu Jan 01 00:00:05 1970 +0000
2849 | | | | | | date: Thu Jan 01 00:00:05 1970 +0000
2861 | | | | | | summary: (5) expand
2850 | | | | | | summary: (5) expand
2862 | | | | | |
2851 | | | | | |
2863 | +---o | | changeset: 4:26a8bac39d9f
2852 | +---o | | changeset: 4:26a8bac39d9f
2864 | | | |/ / parent: 1:6db2ef61d156
2853 | | | |/ / parent: 1:6db2ef61d156
2865 | | | | | parent: 3:27eef8ed80b4
2854 | | | | | parent: 3:27eef8ed80b4
2866 | | | | | user: test
2855 | | | | | user: test
2867 | | | | | date: Thu Jan 01 00:00:04 1970 +0000
2856 | | | | | date: Thu Jan 01 00:00:04 1970 +0000
2868 | | | | | summary: (4) merge two known; one immediate left, one immediate right
2857 | | | | | summary: (4) merge two known; one immediate left, one immediate right
2869 | | | | |
2858 | | | | |
2870
2859
2871 .. unless HGPLAINEXCEPT=graph is set:
2860 .. unless HGPLAINEXCEPT=graph is set:
2872
2861
2873 $ HGPLAIN=1 HGPLAINEXCEPT=graph hg log -G -r 'file("a")' -m
2862 $ HGPLAIN=1 HGPLAINEXCEPT=graph hg log -G -r 'file("a")' -m
2874 @ changeset: 36:08a19a744424
2863 @ changeset: 36:08a19a744424
2875 : branch: branch
2864 : branch: branch
2876 : tag: tip
2865 : tag: tip
2877 : parent: 35:9159c3644c5e
2866 : parent: 35:9159c3644c5e
2878 : parent: 35:9159c3644c5e
2867 : parent: 35:9159c3644c5e
2879 : user: test
2868 : user: test
2880 : date: Thu Jan 01 00:00:36 1970 +0000
2869 : date: Thu Jan 01 00:00:36 1970 +0000
2881 : summary: (36) buggy merge: identical parents
2870 : summary: (36) buggy merge: identical parents
2882 :
2871 :
2883 o changeset: 32:d06dffa21a31
2872 o changeset: 32:d06dffa21a31
2884 |\ parent: 27:886ed638191b
2873 |\ parent: 27:886ed638191b
2885 | : parent: 31:621d83e11f67
2874 | : parent: 31:621d83e11f67
2886 | : user: test
2875 | : user: test
2887 | : date: Thu Jan 01 00:00:32 1970 +0000
2876 | : date: Thu Jan 01 00:00:32 1970 +0000
2888 | : summary: (32) expand
2877 | : summary: (32) expand
2889 | :
2878 | :
2890 o : changeset: 31:621d83e11f67
2879 o : changeset: 31:621d83e11f67
2891 |\: parent: 21:d42a756af44d
2880 |\: parent: 21:d42a756af44d
2892 | : parent: 30:6e11cd4b648f
2881 | : parent: 30:6e11cd4b648f
2893 | : user: test
2882 | : user: test
2894 | : date: Thu Jan 01 00:00:31 1970 +0000
2883 | : date: Thu Jan 01 00:00:31 1970 +0000
2895 | : summary: (31) expand
2884 | : summary: (31) expand
2896 | :
2885 | :
2897 o : changeset: 30:6e11cd4b648f
2886 o : changeset: 30:6e11cd4b648f
2898 |\ \ parent: 28:44ecd0b9ae99
2887 |\ \ parent: 28:44ecd0b9ae99
2899 | ~ : parent: 29:cd9bb2be7593
2888 | ~ : parent: 29:cd9bb2be7593
2900 | : user: test
2889 | : user: test
2901 | : date: Thu Jan 01 00:00:30 1970 +0000
2890 | : date: Thu Jan 01 00:00:30 1970 +0000
2902 | : summary: (30) expand
2891 | : summary: (30) expand
2903 | /
2892 | /
2904 o : changeset: 28:44ecd0b9ae99
2893 o : changeset: 28:44ecd0b9ae99
2905 |\ \ parent: 1:6db2ef61d156
2894 |\ \ parent: 1:6db2ef61d156
2906 | ~ : parent: 26:7f25b6c2f0b9
2895 | ~ : parent: 26:7f25b6c2f0b9
2907 | : user: test
2896 | : user: test
2908 | : date: Thu Jan 01 00:00:28 1970 +0000
2897 | : date: Thu Jan 01 00:00:28 1970 +0000
2909 | : summary: (28) merge zero known
2898 | : summary: (28) merge zero known
2910 | /
2899 | /
2911 o : changeset: 26:7f25b6c2f0b9
2900 o : changeset: 26:7f25b6c2f0b9
2912 |\ \ parent: 18:1aa84d96232a
2901 |\ \ parent: 18:1aa84d96232a
2913 | | : parent: 25:91da8ed57247
2902 | | : parent: 25:91da8ed57247
2914 | | : user: test
2903 | | : user: test
2915 | | : date: Thu Jan 01 00:00:26 1970 +0000
2904 | | : date: Thu Jan 01 00:00:26 1970 +0000
2916 | | : summary: (26) merge one known; far right
2905 | | : summary: (26) merge one known; far right
2917 | | :
2906 | | :
2918 | o : changeset: 25:91da8ed57247
2907 | o : changeset: 25:91da8ed57247
2919 | |\: parent: 21:d42a756af44d
2908 | |\: parent: 21:d42a756af44d
2920 | | : parent: 24:a9c19a3d96b7
2909 | | : parent: 24:a9c19a3d96b7
2921 | | : user: test
2910 | | : user: test
2922 | | : date: Thu Jan 01 00:00:25 1970 +0000
2911 | | : date: Thu Jan 01 00:00:25 1970 +0000
2923 | | : summary: (25) merge one known; far left
2912 | | : summary: (25) merge one known; far left
2924 | | :
2913 | | :
2925 | o : changeset: 24:a9c19a3d96b7
2914 | o : changeset: 24:a9c19a3d96b7
2926 | |\ \ parent: 0:e6eb3150255d
2915 | |\ \ parent: 0:e6eb3150255d
2927 | | ~ : parent: 23:a01cddf0766d
2916 | | ~ : parent: 23:a01cddf0766d
2928 | | : user: test
2917 | | : user: test
2929 | | : date: Thu Jan 01 00:00:24 1970 +0000
2918 | | : date: Thu Jan 01 00:00:24 1970 +0000
2930 | | : summary: (24) merge one known; immediate right
2919 | | : summary: (24) merge one known; immediate right
2931 | | /
2920 | | /
2932 | o : changeset: 23:a01cddf0766d
2921 | o : changeset: 23:a01cddf0766d
2933 | |\ \ parent: 1:6db2ef61d156
2922 | |\ \ parent: 1:6db2ef61d156
2934 | | ~ : parent: 22:e0d9cccacb5d
2923 | | ~ : parent: 22:e0d9cccacb5d
2935 | | : user: test
2924 | | : user: test
2936 | | : date: Thu Jan 01 00:00:23 1970 +0000
2925 | | : date: Thu Jan 01 00:00:23 1970 +0000
2937 | | : summary: (23) merge one known; immediate left
2926 | | : summary: (23) merge one known; immediate left
2938 | | /
2927 | | /
2939 | o : changeset: 22:e0d9cccacb5d
2928 | o : changeset: 22:e0d9cccacb5d
2940 |/:/ parent: 18:1aa84d96232a
2929 |/:/ parent: 18:1aa84d96232a
2941 | : parent: 21:d42a756af44d
2930 | : parent: 21:d42a756af44d
2942 | : user: test
2931 | : user: test
2943 | : date: Thu Jan 01 00:00:22 1970 +0000
2932 | : date: Thu Jan 01 00:00:22 1970 +0000
2944 | : summary: (22) merge two known; one far left, one far right
2933 | : summary: (22) merge two known; one far left, one far right
2945 | :
2934 | :
2946 | o changeset: 21:d42a756af44d
2935 | o changeset: 21:d42a756af44d
2947 | |\ parent: 19:31ddc2c1573b
2936 | |\ parent: 19:31ddc2c1573b
2948 | | | parent: 20:d30ed6450e32
2937 | | | parent: 20:d30ed6450e32
2949 | | | user: test
2938 | | | user: test
2950 | | | date: Thu Jan 01 00:00:21 1970 +0000
2939 | | | date: Thu Jan 01 00:00:21 1970 +0000
2951 | | | summary: (21) expand
2940 | | | summary: (21) expand
2952 | | |
2941 | | |
2953 +---o changeset: 20:d30ed6450e32
2942 +---o changeset: 20:d30ed6450e32
2954 | | | parent: 0:e6eb3150255d
2943 | | | parent: 0:e6eb3150255d
2955 | | ~ parent: 18:1aa84d96232a
2944 | | ~ parent: 18:1aa84d96232a
2956 | | user: test
2945 | | user: test
2957 | | date: Thu Jan 01 00:00:20 1970 +0000
2946 | | date: Thu Jan 01 00:00:20 1970 +0000
2958 | | summary: (20) merge two known; two far right
2947 | | summary: (20) merge two known; two far right
2959 | |
2948 | |
2960 | o changeset: 19:31ddc2c1573b
2949 | o changeset: 19:31ddc2c1573b
2961 | |\ parent: 15:1dda3f72782d
2950 | |\ parent: 15:1dda3f72782d
2962 | | | parent: 17:44765d7c06e0
2951 | | | parent: 17:44765d7c06e0
2963 | | | user: test
2952 | | | user: test
2964 | | | date: Thu Jan 01 00:00:19 1970 +0000
2953 | | | date: Thu Jan 01 00:00:19 1970 +0000
2965 | | | summary: (19) expand
2954 | | | summary: (19) expand
2966 | | |
2955 | | |
2967 o | | changeset: 18:1aa84d96232a
2956 o | | changeset: 18:1aa84d96232a
2968 |\| | parent: 1:6db2ef61d156
2957 |\| | parent: 1:6db2ef61d156
2969 ~ | | parent: 15:1dda3f72782d
2958 ~ | | parent: 15:1dda3f72782d
2970 | | user: test
2959 | | user: test
2971 | | date: Thu Jan 01 00:00:18 1970 +0000
2960 | | date: Thu Jan 01 00:00:18 1970 +0000
2972 | | summary: (18) merge two known; two far left
2961 | | summary: (18) merge two known; two far left
2973 / /
2962 / /
2974 | o changeset: 17:44765d7c06e0
2963 | o changeset: 17:44765d7c06e0
2975 | |\ parent: 12:86b91144a6e9
2964 | |\ parent: 12:86b91144a6e9
2976 | | | parent: 16:3677d192927d
2965 | | | parent: 16:3677d192927d
2977 | | | user: test
2966 | | | user: test
2978 | | | date: Thu Jan 01 00:00:17 1970 +0000
2967 | | | date: Thu Jan 01 00:00:17 1970 +0000
2979 | | | summary: (17) expand
2968 | | | summary: (17) expand
2980 | | |
2969 | | |
2981 | | o changeset: 16:3677d192927d
2970 | | o changeset: 16:3677d192927d
2982 | | |\ parent: 0:e6eb3150255d
2971 | | |\ parent: 0:e6eb3150255d
2983 | | ~ ~ parent: 1:6db2ef61d156
2972 | | ~ ~ parent: 1:6db2ef61d156
2984 | | user: test
2973 | | user: test
2985 | | date: Thu Jan 01 00:00:16 1970 +0000
2974 | | date: Thu Jan 01 00:00:16 1970 +0000
2986 | | summary: (16) merge two known; one immediate right, one near right
2975 | | summary: (16) merge two known; one immediate right, one near right
2987 | |
2976 | |
2988 o | changeset: 15:1dda3f72782d
2977 o | changeset: 15:1dda3f72782d
2989 |\ \ parent: 13:22d8966a97e3
2978 |\ \ parent: 13:22d8966a97e3
2990 | | | parent: 14:8eac370358ef
2979 | | | parent: 14:8eac370358ef
2991 | | | user: test
2980 | | | user: test
2992 | | | date: Thu Jan 01 00:00:15 1970 +0000
2981 | | | date: Thu Jan 01 00:00:15 1970 +0000
2993 | | | summary: (15) expand
2982 | | | summary: (15) expand
2994 | | |
2983 | | |
2995 | o | changeset: 14:8eac370358ef
2984 | o | changeset: 14:8eac370358ef
2996 | |\| parent: 0:e6eb3150255d
2985 | |\| parent: 0:e6eb3150255d
2997 | ~ | parent: 12:86b91144a6e9
2986 | ~ | parent: 12:86b91144a6e9
2998 | | user: test
2987 | | user: test
2999 | | date: Thu Jan 01 00:00:14 1970 +0000
2988 | | date: Thu Jan 01 00:00:14 1970 +0000
3000 | | summary: (14) merge two known; one immediate right, one far right
2989 | | summary: (14) merge two known; one immediate right, one far right
3001 | /
2990 | /
3002 o | changeset: 13:22d8966a97e3
2991 o | changeset: 13:22d8966a97e3
3003 |\ \ parent: 9:7010c0af0a35
2992 |\ \ parent: 9:7010c0af0a35
3004 | | | parent: 11:832d76e6bdf2
2993 | | | parent: 11:832d76e6bdf2
3005 | | | user: test
2994 | | | user: test
3006 | | | date: Thu Jan 01 00:00:13 1970 +0000
2995 | | | date: Thu Jan 01 00:00:13 1970 +0000
3007 | | | summary: (13) expand
2996 | | | summary: (13) expand
3008 | | |
2997 | | |
3009 +---o changeset: 12:86b91144a6e9
2998 +---o changeset: 12:86b91144a6e9
3010 | | | parent: 1:6db2ef61d156
2999 | | | parent: 1:6db2ef61d156
3011 | | ~ parent: 9:7010c0af0a35
3000 | | ~ parent: 9:7010c0af0a35
3012 | | user: test
3001 | | user: test
3013 | | date: Thu Jan 01 00:00:12 1970 +0000
3002 | | date: Thu Jan 01 00:00:12 1970 +0000
3014 | | summary: (12) merge two known; one immediate right, one far left
3003 | | summary: (12) merge two known; one immediate right, one far left
3015 | |
3004 | |
3016 | o changeset: 11:832d76e6bdf2
3005 | o changeset: 11:832d76e6bdf2
3017 | |\ parent: 6:b105a072e251
3006 | |\ parent: 6:b105a072e251
3018 | | | parent: 10:74c64d036d72
3007 | | | parent: 10:74c64d036d72
3019 | | | user: test
3008 | | | user: test
3020 | | | date: Thu Jan 01 00:00:11 1970 +0000
3009 | | | date: Thu Jan 01 00:00:11 1970 +0000
3021 | | | summary: (11) expand
3010 | | | summary: (11) expand
3022 | | |
3011 | | |
3023 | | o changeset: 10:74c64d036d72
3012 | | o changeset: 10:74c64d036d72
3024 | |/| parent: 0:e6eb3150255d
3013 | |/| parent: 0:e6eb3150255d
3025 | | ~ parent: 6:b105a072e251
3014 | | ~ parent: 6:b105a072e251
3026 | | user: test
3015 | | user: test
3027 | | date: Thu Jan 01 00:00:10 1970 +0000
3016 | | date: Thu Jan 01 00:00:10 1970 +0000
3028 | | summary: (10) merge two known; one immediate left, one near right
3017 | | summary: (10) merge two known; one immediate left, one near right
3029 | |
3018 | |
3030 o | changeset: 9:7010c0af0a35
3019 o | changeset: 9:7010c0af0a35
3031 |\ \ parent: 7:b632bb1b1224
3020 |\ \ parent: 7:b632bb1b1224
3032 | | | parent: 8:7a0b11f71937
3021 | | | parent: 8:7a0b11f71937
3033 | | | user: test
3022 | | | user: test
3034 | | | date: Thu Jan 01 00:00:09 1970 +0000
3023 | | | date: Thu Jan 01 00:00:09 1970 +0000
3035 | | | summary: (9) expand
3024 | | | summary: (9) expand
3036 | | |
3025 | | |
3037 | o | changeset: 8:7a0b11f71937
3026 | o | changeset: 8:7a0b11f71937
3038 |/| | parent: 0:e6eb3150255d
3027 |/| | parent: 0:e6eb3150255d
3039 | ~ | parent: 7:b632bb1b1224
3028 | ~ | parent: 7:b632bb1b1224
3040 | | user: test
3029 | | user: test
3041 | | date: Thu Jan 01 00:00:08 1970 +0000
3030 | | date: Thu Jan 01 00:00:08 1970 +0000
3042 | | summary: (8) merge two known; one immediate left, one far right
3031 | | summary: (8) merge two known; one immediate left, one far right
3043 | /
3032 | /
3044 o | changeset: 7:b632bb1b1224
3033 o | changeset: 7:b632bb1b1224
3045 |\ \ parent: 2:3d9a33b8d1e1
3034 |\ \ parent: 2:3d9a33b8d1e1
3046 | ~ | parent: 5:4409d547b708
3035 | ~ | parent: 5:4409d547b708
3047 | | user: test
3036 | | user: test
3048 | | date: Thu Jan 01 00:00:07 1970 +0000
3037 | | date: Thu Jan 01 00:00:07 1970 +0000
3049 | | summary: (7) expand
3038 | | summary: (7) expand
3050 | /
3039 | /
3051 | o changeset: 6:b105a072e251
3040 | o changeset: 6:b105a072e251
3052 |/| parent: 2:3d9a33b8d1e1
3041 |/| parent: 2:3d9a33b8d1e1
3053 | ~ parent: 5:4409d547b708
3042 | ~ parent: 5:4409d547b708
3054 | user: test
3043 | user: test
3055 | date: Thu Jan 01 00:00:06 1970 +0000
3044 | date: Thu Jan 01 00:00:06 1970 +0000
3056 | summary: (6) merge two known; one immediate left, one far left
3045 | summary: (6) merge two known; one immediate left, one far left
3057 |
3046 |
3058 o changeset: 5:4409d547b708
3047 o changeset: 5:4409d547b708
3059 |\ parent: 3:27eef8ed80b4
3048 |\ parent: 3:27eef8ed80b4
3060 | ~ parent: 4:26a8bac39d9f
3049 | ~ parent: 4:26a8bac39d9f
3061 | user: test
3050 | user: test
3062 | date: Thu Jan 01 00:00:05 1970 +0000
3051 | date: Thu Jan 01 00:00:05 1970 +0000
3063 | summary: (5) expand
3052 | summary: (5) expand
3064 |
3053 |
3065 o changeset: 4:26a8bac39d9f
3054 o changeset: 4:26a8bac39d9f
3066 |\ parent: 1:6db2ef61d156
3055 |\ parent: 1:6db2ef61d156
3067 ~ ~ parent: 3:27eef8ed80b4
3056 ~ ~ parent: 3:27eef8ed80b4
3068 user: test
3057 user: test
3069 date: Thu Jan 01 00:00:04 1970 +0000
3058 date: Thu Jan 01 00:00:04 1970 +0000
3070 summary: (4) merge two known; one immediate left, one immediate right
3059 summary: (4) merge two known; one immediate left, one immediate right
3071
3060
3072 Draw only part of a grandparent line differently with "<N><char>"; only the
3061 Draw only part of a grandparent line differently with "<N><char>"; only the
3073 last N lines (for positive N) or everything but the first N lines (for
3062 last N lines (for positive N) or everything but the first N lines (for
3074 negative N) along the current node use the style, the rest of the edge uses
3063 negative N) along the current node use the style, the rest of the edge uses
3075 the parent edge styling.
3064 the parent edge styling.
3076
3065
3077 Last 3 lines:
3066 Last 3 lines:
3078
3067
3079 $ cat << EOF >> $HGRCPATH
3068 $ cat << EOF >> $HGRCPATH
3080 > [experimental]
3069 > [experimental]
3081 > graphstyle.parent = !
3070 > graphstyle.parent = !
3082 > graphstyle.grandparent = 3.
3071 > graphstyle.grandparent = 3.
3083 > graphstyle.missing =
3072 > graphstyle.missing =
3084 > EOF
3073 > EOF
3085 $ hg log -G -r '36:18 & file("a")' -m
3074 $ hg log -G -r '36:18 & file("a")' -m
3086 @ changeset: 36:08a19a744424
3075 @ changeset: 36:08a19a744424
3087 ! branch: branch
3076 ! branch: branch
3088 ! tag: tip
3077 ! tag: tip
3089 ! parent: 35:9159c3644c5e
3078 ! parent: 35:9159c3644c5e
3090 ! parent: 35:9159c3644c5e
3079 ! parent: 35:9159c3644c5e
3091 ! user: test
3080 ! user: test
3092 . date: Thu Jan 01 00:00:36 1970 +0000
3081 . date: Thu Jan 01 00:00:36 1970 +0000
3093 . summary: (36) buggy merge: identical parents
3082 . summary: (36) buggy merge: identical parents
3094 .
3083 .
3095 o changeset: 32:d06dffa21a31
3084 o changeset: 32:d06dffa21a31
3096 !\ parent: 27:886ed638191b
3085 !\ parent: 27:886ed638191b
3097 ! ! parent: 31:621d83e11f67
3086 ! ! parent: 31:621d83e11f67
3098 ! ! user: test
3087 ! ! user: test
3099 ! . date: Thu Jan 01 00:00:32 1970 +0000
3088 ! . date: Thu Jan 01 00:00:32 1970 +0000
3100 ! . summary: (32) expand
3089 ! . summary: (32) expand
3101 ! .
3090 ! .
3102 o ! changeset: 31:621d83e11f67
3091 o ! changeset: 31:621d83e11f67
3103 !\! parent: 21:d42a756af44d
3092 !\! parent: 21:d42a756af44d
3104 ! ! parent: 30:6e11cd4b648f
3093 ! ! parent: 30:6e11cd4b648f
3105 ! ! user: test
3094 ! ! user: test
3106 ! ! date: Thu Jan 01 00:00:31 1970 +0000
3095 ! ! date: Thu Jan 01 00:00:31 1970 +0000
3107 ! ! summary: (31) expand
3096 ! ! summary: (31) expand
3108 ! !
3097 ! !
3109 o ! changeset: 30:6e11cd4b648f
3098 o ! changeset: 30:6e11cd4b648f
3110 !\ \ parent: 28:44ecd0b9ae99
3099 !\ \ parent: 28:44ecd0b9ae99
3111 ! ~ ! parent: 29:cd9bb2be7593
3100 ! ~ ! parent: 29:cd9bb2be7593
3112 ! ! user: test
3101 ! ! user: test
3113 ! ! date: Thu Jan 01 00:00:30 1970 +0000
3102 ! ! date: Thu Jan 01 00:00:30 1970 +0000
3114 ! ! summary: (30) expand
3103 ! ! summary: (30) expand
3115 ! /
3104 ! /
3116 o ! changeset: 28:44ecd0b9ae99
3105 o ! changeset: 28:44ecd0b9ae99
3117 !\ \ parent: 1:6db2ef61d156
3106 !\ \ parent: 1:6db2ef61d156
3118 ! ~ ! parent: 26:7f25b6c2f0b9
3107 ! ~ ! parent: 26:7f25b6c2f0b9
3119 ! ! user: test
3108 ! ! user: test
3120 ! ! date: Thu Jan 01 00:00:28 1970 +0000
3109 ! ! date: Thu Jan 01 00:00:28 1970 +0000
3121 ! ! summary: (28) merge zero known
3110 ! ! summary: (28) merge zero known
3122 ! /
3111 ! /
3123 o ! changeset: 26:7f25b6c2f0b9
3112 o ! changeset: 26:7f25b6c2f0b9
3124 !\ \ parent: 18:1aa84d96232a
3113 !\ \ parent: 18:1aa84d96232a
3125 ! ! ! parent: 25:91da8ed57247
3114 ! ! ! parent: 25:91da8ed57247
3126 ! ! ! user: test
3115 ! ! ! user: test
3127 ! ! ! date: Thu Jan 01 00:00:26 1970 +0000
3116 ! ! ! date: Thu Jan 01 00:00:26 1970 +0000
3128 ! ! ! summary: (26) merge one known; far right
3117 ! ! ! summary: (26) merge one known; far right
3129 ! ! !
3118 ! ! !
3130 ! o ! changeset: 25:91da8ed57247
3119 ! o ! changeset: 25:91da8ed57247
3131 ! !\! parent: 21:d42a756af44d
3120 ! !\! parent: 21:d42a756af44d
3132 ! ! ! parent: 24:a9c19a3d96b7
3121 ! ! ! parent: 24:a9c19a3d96b7
3133 ! ! ! user: test
3122 ! ! ! user: test
3134 ! ! ! date: Thu Jan 01 00:00:25 1970 +0000
3123 ! ! ! date: Thu Jan 01 00:00:25 1970 +0000
3135 ! ! ! summary: (25) merge one known; far left
3124 ! ! ! summary: (25) merge one known; far left
3136 ! ! !
3125 ! ! !
3137 ! o ! changeset: 24:a9c19a3d96b7
3126 ! o ! changeset: 24:a9c19a3d96b7
3138 ! !\ \ parent: 0:e6eb3150255d
3127 ! !\ \ parent: 0:e6eb3150255d
3139 ! ! ~ ! parent: 23:a01cddf0766d
3128 ! ! ~ ! parent: 23:a01cddf0766d
3140 ! ! ! user: test
3129 ! ! ! user: test
3141 ! ! ! date: Thu Jan 01 00:00:24 1970 +0000
3130 ! ! ! date: Thu Jan 01 00:00:24 1970 +0000
3142 ! ! ! summary: (24) merge one known; immediate right
3131 ! ! ! summary: (24) merge one known; immediate right
3143 ! ! /
3132 ! ! /
3144 ! o ! changeset: 23:a01cddf0766d
3133 ! o ! changeset: 23:a01cddf0766d
3145 ! !\ \ parent: 1:6db2ef61d156
3134 ! !\ \ parent: 1:6db2ef61d156
3146 ! ! ~ ! parent: 22:e0d9cccacb5d
3135 ! ! ~ ! parent: 22:e0d9cccacb5d
3147 ! ! ! user: test
3136 ! ! ! user: test
3148 ! ! ! date: Thu Jan 01 00:00:23 1970 +0000
3137 ! ! ! date: Thu Jan 01 00:00:23 1970 +0000
3149 ! ! ! summary: (23) merge one known; immediate left
3138 ! ! ! summary: (23) merge one known; immediate left
3150 ! ! /
3139 ! ! /
3151 ! o ! changeset: 22:e0d9cccacb5d
3140 ! o ! changeset: 22:e0d9cccacb5d
3152 !/!/ parent: 18:1aa84d96232a
3141 !/!/ parent: 18:1aa84d96232a
3153 ! ! parent: 21:d42a756af44d
3142 ! ! parent: 21:d42a756af44d
3154 ! ! user: test
3143 ! ! user: test
3155 ! ! date: Thu Jan 01 00:00:22 1970 +0000
3144 ! ! date: Thu Jan 01 00:00:22 1970 +0000
3156 ! ! summary: (22) merge two known; one far left, one far right
3145 ! ! summary: (22) merge two known; one far left, one far right
3157 ! !
3146 ! !
3158 ! o changeset: 21:d42a756af44d
3147 ! o changeset: 21:d42a756af44d
3159 ! !\ parent: 19:31ddc2c1573b
3148 ! !\ parent: 19:31ddc2c1573b
3160 ! ! ! parent: 20:d30ed6450e32
3149 ! ! ! parent: 20:d30ed6450e32
3161 ! ! ! user: test
3150 ! ! ! user: test
3162 ! ! ! date: Thu Jan 01 00:00:21 1970 +0000
3151 ! ! ! date: Thu Jan 01 00:00:21 1970 +0000
3163 ! ! ! summary: (21) expand
3152 ! ! ! summary: (21) expand
3164 ! ! !
3153 ! ! !
3165 +---o changeset: 20:d30ed6450e32
3154 +---o changeset: 20:d30ed6450e32
3166 ! ! | parent: 0:e6eb3150255d
3155 ! ! | parent: 0:e6eb3150255d
3167 ! ! ~ parent: 18:1aa84d96232a
3156 ! ! ~ parent: 18:1aa84d96232a
3168 ! ! user: test
3157 ! ! user: test
3169 ! ! date: Thu Jan 01 00:00:20 1970 +0000
3158 ! ! date: Thu Jan 01 00:00:20 1970 +0000
3170 ! ! summary: (20) merge two known; two far right
3159 ! ! summary: (20) merge two known; two far right
3171 ! !
3160 ! !
3172 ! o changeset: 19:31ddc2c1573b
3161 ! o changeset: 19:31ddc2c1573b
3173 ! |\ parent: 15:1dda3f72782d
3162 ! |\ parent: 15:1dda3f72782d
3174 ! ~ ~ parent: 17:44765d7c06e0
3163 ! ~ ~ parent: 17:44765d7c06e0
3175 ! user: test
3164 ! user: test
3176 ! date: Thu Jan 01 00:00:19 1970 +0000
3165 ! date: Thu Jan 01 00:00:19 1970 +0000
3177 ! summary: (19) expand
3166 ! summary: (19) expand
3178 !
3167 !
3179 o changeset: 18:1aa84d96232a
3168 o changeset: 18:1aa84d96232a
3180 |\ parent: 1:6db2ef61d156
3169 |\ parent: 1:6db2ef61d156
3181 ~ ~ parent: 15:1dda3f72782d
3170 ~ ~ parent: 15:1dda3f72782d
3182 user: test
3171 user: test
3183 date: Thu Jan 01 00:00:18 1970 +0000
3172 date: Thu Jan 01 00:00:18 1970 +0000
3184 summary: (18) merge two known; two far left
3173 summary: (18) merge two known; two far left
3185
3174
3186 All but the first 3 lines:
3175 All but the first 3 lines:
3187
3176
3188 $ cat << EOF >> $HGRCPATH
3177 $ cat << EOF >> $HGRCPATH
3189 > [experimental]
3178 > [experimental]
3190 > graphstyle.parent = !
3179 > graphstyle.parent = !
3191 > graphstyle.grandparent = -3.
3180 > graphstyle.grandparent = -3.
3192 > graphstyle.missing =
3181 > graphstyle.missing =
3193 > EOF
3182 > EOF
3194 $ hg log -G -r '36:18 & file("a")' -m
3183 $ hg log -G -r '36:18 & file("a")' -m
3195 @ changeset: 36:08a19a744424
3184 @ changeset: 36:08a19a744424
3196 ! branch: branch
3185 ! branch: branch
3197 ! tag: tip
3186 ! tag: tip
3198 . parent: 35:9159c3644c5e
3187 . parent: 35:9159c3644c5e
3199 . parent: 35:9159c3644c5e
3188 . parent: 35:9159c3644c5e
3200 . user: test
3189 . user: test
3201 . date: Thu Jan 01 00:00:36 1970 +0000
3190 . date: Thu Jan 01 00:00:36 1970 +0000
3202 . summary: (36) buggy merge: identical parents
3191 . summary: (36) buggy merge: identical parents
3203 .
3192 .
3204 o changeset: 32:d06dffa21a31
3193 o changeset: 32:d06dffa21a31
3205 !\ parent: 27:886ed638191b
3194 !\ parent: 27:886ed638191b
3206 ! ! parent: 31:621d83e11f67
3195 ! ! parent: 31:621d83e11f67
3207 ! . user: test
3196 ! . user: test
3208 ! . date: Thu Jan 01 00:00:32 1970 +0000
3197 ! . date: Thu Jan 01 00:00:32 1970 +0000
3209 ! . summary: (32) expand
3198 ! . summary: (32) expand
3210 ! .
3199 ! .
3211 o ! changeset: 31:621d83e11f67
3200 o ! changeset: 31:621d83e11f67
3212 !\! parent: 21:d42a756af44d
3201 !\! parent: 21:d42a756af44d
3213 ! ! parent: 30:6e11cd4b648f
3202 ! ! parent: 30:6e11cd4b648f
3214 ! ! user: test
3203 ! ! user: test
3215 ! ! date: Thu Jan 01 00:00:31 1970 +0000
3204 ! ! date: Thu Jan 01 00:00:31 1970 +0000
3216 ! ! summary: (31) expand
3205 ! ! summary: (31) expand
3217 ! !
3206 ! !
3218 o ! changeset: 30:6e11cd4b648f
3207 o ! changeset: 30:6e11cd4b648f
3219 !\ \ parent: 28:44ecd0b9ae99
3208 !\ \ parent: 28:44ecd0b9ae99
3220 ! ~ ! parent: 29:cd9bb2be7593
3209 ! ~ ! parent: 29:cd9bb2be7593
3221 ! ! user: test
3210 ! ! user: test
3222 ! ! date: Thu Jan 01 00:00:30 1970 +0000
3211 ! ! date: Thu Jan 01 00:00:30 1970 +0000
3223 ! ! summary: (30) expand
3212 ! ! summary: (30) expand
3224 ! /
3213 ! /
3225 o ! changeset: 28:44ecd0b9ae99
3214 o ! changeset: 28:44ecd0b9ae99
3226 !\ \ parent: 1:6db2ef61d156
3215 !\ \ parent: 1:6db2ef61d156
3227 ! ~ ! parent: 26:7f25b6c2f0b9
3216 ! ~ ! parent: 26:7f25b6c2f0b9
3228 ! ! user: test
3217 ! ! user: test
3229 ! ! date: Thu Jan 01 00:00:28 1970 +0000
3218 ! ! date: Thu Jan 01 00:00:28 1970 +0000
3230 ! ! summary: (28) merge zero known
3219 ! ! summary: (28) merge zero known
3231 ! /
3220 ! /
3232 o ! changeset: 26:7f25b6c2f0b9
3221 o ! changeset: 26:7f25b6c2f0b9
3233 !\ \ parent: 18:1aa84d96232a
3222 !\ \ parent: 18:1aa84d96232a
3234 ! ! ! parent: 25:91da8ed57247
3223 ! ! ! parent: 25:91da8ed57247
3235 ! ! ! user: test
3224 ! ! ! user: test
3236 ! ! ! date: Thu Jan 01 00:00:26 1970 +0000
3225 ! ! ! date: Thu Jan 01 00:00:26 1970 +0000
3237 ! ! ! summary: (26) merge one known; far right
3226 ! ! ! summary: (26) merge one known; far right
3238 ! ! !
3227 ! ! !
3239 ! o ! changeset: 25:91da8ed57247
3228 ! o ! changeset: 25:91da8ed57247
3240 ! !\! parent: 21:d42a756af44d
3229 ! !\! parent: 21:d42a756af44d
3241 ! ! ! parent: 24:a9c19a3d96b7
3230 ! ! ! parent: 24:a9c19a3d96b7
3242 ! ! ! user: test
3231 ! ! ! user: test
3243 ! ! ! date: Thu Jan 01 00:00:25 1970 +0000
3232 ! ! ! date: Thu Jan 01 00:00:25 1970 +0000
3244 ! ! ! summary: (25) merge one known; far left
3233 ! ! ! summary: (25) merge one known; far left
3245 ! ! !
3234 ! ! !
3246 ! o ! changeset: 24:a9c19a3d96b7
3235 ! o ! changeset: 24:a9c19a3d96b7
3247 ! !\ \ parent: 0:e6eb3150255d
3236 ! !\ \ parent: 0:e6eb3150255d
3248 ! ! ~ ! parent: 23:a01cddf0766d
3237 ! ! ~ ! parent: 23:a01cddf0766d
3249 ! ! ! user: test
3238 ! ! ! user: test
3250 ! ! ! date: Thu Jan 01 00:00:24 1970 +0000
3239 ! ! ! date: Thu Jan 01 00:00:24 1970 +0000
3251 ! ! ! summary: (24) merge one known; immediate right
3240 ! ! ! summary: (24) merge one known; immediate right
3252 ! ! /
3241 ! ! /
3253 ! o ! changeset: 23:a01cddf0766d
3242 ! o ! changeset: 23:a01cddf0766d
3254 ! !\ \ parent: 1:6db2ef61d156
3243 ! !\ \ parent: 1:6db2ef61d156
3255 ! ! ~ ! parent: 22:e0d9cccacb5d
3244 ! ! ~ ! parent: 22:e0d9cccacb5d
3256 ! ! ! user: test
3245 ! ! ! user: test
3257 ! ! ! date: Thu Jan 01 00:00:23 1970 +0000
3246 ! ! ! date: Thu Jan 01 00:00:23 1970 +0000
3258 ! ! ! summary: (23) merge one known; immediate left
3247 ! ! ! summary: (23) merge one known; immediate left
3259 ! ! /
3248 ! ! /
3260 ! o ! changeset: 22:e0d9cccacb5d
3249 ! o ! changeset: 22:e0d9cccacb5d
3261 !/!/ parent: 18:1aa84d96232a
3250 !/!/ parent: 18:1aa84d96232a
3262 ! ! parent: 21:d42a756af44d
3251 ! ! parent: 21:d42a756af44d
3263 ! ! user: test
3252 ! ! user: test
3264 ! ! date: Thu Jan 01 00:00:22 1970 +0000
3253 ! ! date: Thu Jan 01 00:00:22 1970 +0000
3265 ! ! summary: (22) merge two known; one far left, one far right
3254 ! ! summary: (22) merge two known; one far left, one far right
3266 ! !
3255 ! !
3267 ! o changeset: 21:d42a756af44d
3256 ! o changeset: 21:d42a756af44d
3268 ! !\ parent: 19:31ddc2c1573b
3257 ! !\ parent: 19:31ddc2c1573b
3269 ! ! ! parent: 20:d30ed6450e32
3258 ! ! ! parent: 20:d30ed6450e32
3270 ! ! ! user: test
3259 ! ! ! user: test
3271 ! ! ! date: Thu Jan 01 00:00:21 1970 +0000
3260 ! ! ! date: Thu Jan 01 00:00:21 1970 +0000
3272 ! ! ! summary: (21) expand
3261 ! ! ! summary: (21) expand
3273 ! ! !
3262 ! ! !
3274 +---o changeset: 20:d30ed6450e32
3263 +---o changeset: 20:d30ed6450e32
3275 ! ! | parent: 0:e6eb3150255d
3264 ! ! | parent: 0:e6eb3150255d
3276 ! ! ~ parent: 18:1aa84d96232a
3265 ! ! ~ parent: 18:1aa84d96232a
3277 ! ! user: test
3266 ! ! user: test
3278 ! ! date: Thu Jan 01 00:00:20 1970 +0000
3267 ! ! date: Thu Jan 01 00:00:20 1970 +0000
3279 ! ! summary: (20) merge two known; two far right
3268 ! ! summary: (20) merge two known; two far right
3280 ! !
3269 ! !
3281 ! o changeset: 19:31ddc2c1573b
3270 ! o changeset: 19:31ddc2c1573b
3282 ! |\ parent: 15:1dda3f72782d
3271 ! |\ parent: 15:1dda3f72782d
3283 ! ~ ~ parent: 17:44765d7c06e0
3272 ! ~ ~ parent: 17:44765d7c06e0
3284 ! user: test
3273 ! user: test
3285 ! date: Thu Jan 01 00:00:19 1970 +0000
3274 ! date: Thu Jan 01 00:00:19 1970 +0000
3286 ! summary: (19) expand
3275 ! summary: (19) expand
3287 !
3276 !
3288 o changeset: 18:1aa84d96232a
3277 o changeset: 18:1aa84d96232a
3289 |\ parent: 1:6db2ef61d156
3278 |\ parent: 1:6db2ef61d156
3290 ~ ~ parent: 15:1dda3f72782d
3279 ~ ~ parent: 15:1dda3f72782d
3291 user: test
3280 user: test
3292 date: Thu Jan 01 00:00:18 1970 +0000
3281 date: Thu Jan 01 00:00:18 1970 +0000
3293 summary: (18) merge two known; two far left
3282 summary: (18) merge two known; two far left
3294
3283
3295 $ cd ..
3284 $ cd ..
3296
3285
3297 Change graph shorten, test better with graphstyle.missing not none
3286 Change graph shorten, test better with graphstyle.missing not none
3298
3287
3299 $ cd repo
3288 $ cd repo
3300 $ cat << EOF >> $HGRCPATH
3289 $ cat << EOF >> $HGRCPATH
3301 > [experimental]
3290 > [experimental]
3302 > graphstyle.parent = |
3291 > graphstyle.parent = |
3303 > graphstyle.grandparent = :
3292 > graphstyle.grandparent = :
3304 > graphstyle.missing = '
3293 > graphstyle.missing = '
3305 > graphshorten = true
3294 > graphshorten = true
3306 > EOF
3295 > EOF
3307 $ hg log -G -r 'file("a")' -m -T '{rev} {desc}'
3296 $ hg log -G -r 'file("a")' -m -T '{rev} {desc}'
3308 @ 36 (36) buggy merge: identical parents
3297 @ 36 (36) buggy merge: identical parents
3309 o 32 (32) expand
3298 o 32 (32) expand
3310 |\
3299 |\
3311 o : 31 (31) expand
3300 o : 31 (31) expand
3312 |\:
3301 |\:
3313 o : 30 (30) expand
3302 o : 30 (30) expand
3314 |\ \
3303 |\ \
3315 o \ \ 28 (28) merge zero known
3304 o \ \ 28 (28) merge zero known
3316 |\ \ \
3305 |\ \ \
3317 o \ \ \ 26 (26) merge one known; far right
3306 o \ \ \ 26 (26) merge one known; far right
3318 |\ \ \ \
3307 |\ \ \ \
3319 | o-----+ 25 (25) merge one known; far left
3308 | o-----+ 25 (25) merge one known; far left
3320 | o ' ' : 24 (24) merge one known; immediate right
3309 | o ' ' : 24 (24) merge one known; immediate right
3321 | |\ \ \ \
3310 | |\ \ \ \
3322 | o---+ ' : 23 (23) merge one known; immediate left
3311 | o---+ ' : 23 (23) merge one known; immediate left
3323 | o-------+ 22 (22) merge two known; one far left, one far right
3312 | o-------+ 22 (22) merge two known; one far left, one far right
3324 |/ / / / /
3313 |/ / / / /
3325 | ' ' ' o 21 (21) expand
3314 | ' ' ' o 21 (21) expand
3326 | ' ' ' |\
3315 | ' ' ' |\
3327 +-+-------o 20 (20) merge two known; two far right
3316 +-+-------o 20 (20) merge two known; two far right
3328 | ' ' ' o 19 (19) expand
3317 | ' ' ' o 19 (19) expand
3329 | ' ' ' |\
3318 | ' ' ' |\
3330 o---+---+ | 18 (18) merge two known; two far left
3319 o---+---+ | 18 (18) merge two known; two far left
3331 / / / / /
3320 / / / / /
3332 ' ' ' | o 17 (17) expand
3321 ' ' ' | o 17 (17) expand
3333 ' ' ' | |\
3322 ' ' ' | |\
3334 +-+-------o 16 (16) merge two known; one immediate right, one near right
3323 +-+-------o 16 (16) merge two known; one immediate right, one near right
3335 ' ' ' o | 15 (15) expand
3324 ' ' ' o | 15 (15) expand
3336 ' ' ' |\ \
3325 ' ' ' |\ \
3337 +-------o | 14 (14) merge two known; one immediate right, one far right
3326 +-------o | 14 (14) merge two known; one immediate right, one far right
3338 ' ' ' | |/
3327 ' ' ' | |/
3339 ' ' ' o | 13 (13) expand
3328 ' ' ' o | 13 (13) expand
3340 ' ' ' |\ \
3329 ' ' ' |\ \
3341 ' +---+---o 12 (12) merge two known; one immediate right, one far left
3330 ' +---+---o 12 (12) merge two known; one immediate right, one far left
3342 ' ' ' | o 11 (11) expand
3331 ' ' ' | o 11 (11) expand
3343 ' ' ' | |\
3332 ' ' ' | |\
3344 +---------o 10 (10) merge two known; one immediate left, one near right
3333 +---------o 10 (10) merge two known; one immediate left, one near right
3345 ' ' ' | |/
3334 ' ' ' | |/
3346 ' ' ' o | 9 (9) expand
3335 ' ' ' o | 9 (9) expand
3347 ' ' ' |\ \
3336 ' ' ' |\ \
3348 +-------o | 8 (8) merge two known; one immediate left, one far right
3337 +-------o | 8 (8) merge two known; one immediate left, one far right
3349 ' ' ' |/ /
3338 ' ' ' |/ /
3350 ' ' ' o | 7 (7) expand
3339 ' ' ' o | 7 (7) expand
3351 ' ' ' |\ \
3340 ' ' ' |\ \
3352 ' ' ' +---o 6 (6) merge two known; one immediate left, one far left
3341 ' ' ' +---o 6 (6) merge two known; one immediate left, one far left
3353 ' ' ' | '/
3342 ' ' ' | '/
3354 ' ' ' o ' 5 (5) expand
3343 ' ' ' o ' 5 (5) expand
3355 ' ' ' |\ \
3344 ' ' ' |\ \
3356 ' +---o ' ' 4 (4) merge two known; one immediate left, one immediate right
3345 ' +---o ' ' 4 (4) merge two known; one immediate left, one immediate right
3357 ' ' ' '/ /
3346 ' ' ' '/ /
3358
3347
3359 behavior with newlines
3348 behavior with newlines
3360
3349
3361 $ hg log -G -r ::2 -T '{rev} {desc}'
3350 $ hg log -G -r ::2 -T '{rev} {desc}'
3362 o 2 (2) collapse
3351 o 2 (2) collapse
3363 o 1 (1) collapse
3352 o 1 (1) collapse
3364 o 0 (0) root
3353 o 0 (0) root
3365
3354
3366 $ hg log -G -r ::2 -T '{rev} {desc}\n'
3355 $ hg log -G -r ::2 -T '{rev} {desc}\n'
3367 o 2 (2) collapse
3356 o 2 (2) collapse
3368 o 1 (1) collapse
3357 o 1 (1) collapse
3369 o 0 (0) root
3358 o 0 (0) root
3370
3359
3371 $ hg log -G -r ::2 -T '{rev} {desc}\n\n'
3360 $ hg log -G -r ::2 -T '{rev} {desc}\n\n'
3372 o 2 (2) collapse
3361 o 2 (2) collapse
3373 |
3362 |
3374 o 1 (1) collapse
3363 o 1 (1) collapse
3375 |
3364 |
3376 o 0 (0) root
3365 o 0 (0) root
3377
3366
3378
3367
3379 $ hg log -G -r ::2 -T '\n{rev} {desc}'
3368 $ hg log -G -r ::2 -T '\n{rev} {desc}'
3380 o
3369 o
3381 | 2 (2) collapse
3370 | 2 (2) collapse
3382 o
3371 o
3383 | 1 (1) collapse
3372 | 1 (1) collapse
3384 o
3373 o
3385 0 (0) root
3374 0 (0) root
3386
3375
3387 $ hg log -G -r ::2 -T '{rev} {desc}\n\n\n'
3376 $ hg log -G -r ::2 -T '{rev} {desc}\n\n\n'
3388 o 2 (2) collapse
3377 o 2 (2) collapse
3389 |
3378 |
3390 |
3379 |
3391 o 1 (1) collapse
3380 o 1 (1) collapse
3392 |
3381 |
3393 |
3382 |
3394 o 0 (0) root
3383 o 0 (0) root
3395
3384
3396
3385
3397 $ cd ..
3386 $ cd ..
3398
3387
3399 When inserting extra line nodes to handle more than 2 parents, ensure that
3388 When inserting extra line nodes to handle more than 2 parents, ensure that
3400 the right node styles are used (issue5174):
3389 the right node styles are used (issue5174):
3401
3390
3402 $ hg init repo-issue5174
3391 $ hg init repo-issue5174
3403 $ cd repo-issue5174
3392 $ cd repo-issue5174
3404 $ echo a > f0
3393 $ echo a > f0
3405 $ hg ci -Aqm 0
3394 $ hg ci -Aqm 0
3406 $ echo a > f1
3395 $ echo a > f1
3407 $ hg ci -Aqm 1
3396 $ hg ci -Aqm 1
3408 $ echo a > f2
3397 $ echo a > f2
3409 $ hg ci -Aqm 2
3398 $ hg ci -Aqm 2
3410 $ hg co ".^"
3399 $ hg co ".^"
3411 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
3400 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
3412 $ echo a > f3
3401 $ echo a > f3
3413 $ hg ci -Aqm 3
3402 $ hg ci -Aqm 3
3414 $ hg co ".^^"
3403 $ hg co ".^^"
3415 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
3404 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
3416 $ echo a > f4
3405 $ echo a > f4
3417 $ hg ci -Aqm 4
3406 $ hg ci -Aqm 4
3418 $ hg merge -r 2
3407 $ hg merge -r 2
3419 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
3408 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
3420 (branch merge, don't forget to commit)
3409 (branch merge, don't forget to commit)
3421 $ hg ci -qm 5
3410 $ hg ci -qm 5
3422 $ hg merge -r 3
3411 $ hg merge -r 3
3423 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
3412 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
3424 (branch merge, don't forget to commit)
3413 (branch merge, don't forget to commit)
3425 $ hg ci -qm 6
3414 $ hg ci -qm 6
3426 $ hg log -G -r '0 | 1 | 2 | 6'
3415 $ hg log -G -r '0 | 1 | 2 | 6'
3427 @ changeset: 6:851fe89689ad
3416 @ changeset: 6:851fe89689ad
3428 :\ tag: tip
3417 :\ tag: tip
3429 : : parent: 5:4f1e3cf15f5d
3418 : : parent: 5:4f1e3cf15f5d
3430 : : parent: 3:b74ba7084d2d
3419 : : parent: 3:b74ba7084d2d
3431 : : user: test
3420 : : user: test
3432 : : date: Thu Jan 01 00:00:00 1970 +0000
3421 : : date: Thu Jan 01 00:00:00 1970 +0000
3433 : : summary: 6
3422 : : summary: 6
3434 : :
3423 : :
3435 : \
3424 : \
3436 : :\
3425 : :\
3437 : o : changeset: 2:3e6599df4cce
3426 : o : changeset: 2:3e6599df4cce
3438 : :/ user: test
3427 : :/ user: test
3439 : : date: Thu Jan 01 00:00:00 1970 +0000
3428 : : date: Thu Jan 01 00:00:00 1970 +0000
3440 : : summary: 2
3429 : : summary: 2
3441 : :
3430 : :
3442 : o changeset: 1:bd9a55143933
3431 : o changeset: 1:bd9a55143933
3443 :/ user: test
3432 :/ user: test
3444 : date: Thu Jan 01 00:00:00 1970 +0000
3433 : date: Thu Jan 01 00:00:00 1970 +0000
3445 : summary: 1
3434 : summary: 1
3446 :
3435 :
3447 o changeset: 0:870a5edc339c
3436 o changeset: 0:870a5edc339c
3448 user: test
3437 user: test
3449 date: Thu Jan 01 00:00:00 1970 +0000
3438 date: Thu Jan 01 00:00:00 1970 +0000
3450 summary: 0
3439 summary: 0
3451
3440
3452
3441
3453 $ cd ..
3442 $ cd ..
3454
3443
3455 Multiple roots (issue5440):
3444 Multiple roots (issue5440):
3456
3445
3457 $ hg init multiroots
3446 $ hg init multiroots
3458 $ cd multiroots
3447 $ cd multiroots
3459 $ cat <<EOF > .hg/hgrc
3448 $ cat <<EOF > .hg/hgrc
3460 > [ui]
3449 > [ui]
3461 > logtemplate = '{rev} {desc}\n\n'
3450 > logtemplate = '{rev} {desc}\n\n'
3462 > EOF
3451 > EOF
3463
3452
3464 $ touch foo
3453 $ touch foo
3465 $ hg ci -Aqm foo
3454 $ hg ci -Aqm foo
3466 $ hg co -q null
3455 $ hg co -q null
3467 $ touch bar
3456 $ touch bar
3468 $ hg ci -Aqm bar
3457 $ hg ci -Aqm bar
3469
3458
3470 $ hg log -Gr null:
3459 $ hg log -Gr null:
3471 @ 1 bar
3460 @ 1 bar
3472 |
3461 |
3473 | o 0 foo
3462 | o 0 foo
3474 |/
3463 |/
3475 o -1
3464 o -1
3476
3465
3477 $ hg log -Gr null+0
3466 $ hg log -Gr null+0
3478 o 0 foo
3467 o 0 foo
3479 |
3468 |
3480 o -1
3469 o -1
3481
3470
3482 $ hg log -Gr null+1
3471 $ hg log -Gr null+1
3483 @ 1 bar
3472 @ 1 bar
3484 |
3473 |
3485 o -1
3474 o -1
3486
3475
3487
3476
3488 $ cd ..
3477 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now