##// END OF EJS Templates
graphlog: draw multiple edges towards null node (issue5440)...
Yuya Nishihara -
r31552:d0b9e980 default
parent child Browse files
Show More
@@ -1,473 +1,475 b''
1 # Revision graph generator for Mercurial
1 # Revision graph generator for Mercurial
2 #
2 #
3 # Copyright 2008 Dirkjan Ochtman <dirkjan@ochtman.nl>
3 # Copyright 2008 Dirkjan Ochtman <dirkjan@ochtman.nl>
4 # Copyright 2007 Joel Rosdahl <joel@rosdahl.net>
4 # Copyright 2007 Joel Rosdahl <joel@rosdahl.net>
5 #
5 #
6 # This software may be used and distributed according to the terms of the
6 # This software may be used and distributed according to the terms of the
7 # GNU General Public License version 2 or any later version.
7 # GNU General Public License version 2 or any later version.
8
8
9 """supports walking the history as DAGs suitable for graphical output
9 """supports walking the history as DAGs suitable for graphical output
10
10
11 The most basic format we use is that of::
11 The most basic format we use is that of::
12
12
13 (id, type, data, [parentids])
13 (id, type, data, [parentids])
14
14
15 The node and parent ids are arbitrary integers which identify a node in the
15 The node and parent ids are arbitrary integers which identify a node in the
16 context of the graph returned. Type is a constant specifying the node type.
16 context of the graph returned. Type is a constant specifying the node type.
17 Data depends on type.
17 Data depends on type.
18 """
18 """
19
19
20 from __future__ import absolute_import
20 from __future__ import absolute_import
21
21
22 from .node import nullrev
22 from .node import nullrev
23 from . import (
23 from . import (
24 revset,
24 revset,
25 smartset,
25 smartset,
26 util,
26 util,
27 )
27 )
28
28
29 CHANGESET = 'C'
29 CHANGESET = 'C'
30 PARENT = 'P'
30 PARENT = 'P'
31 GRANDPARENT = 'G'
31 GRANDPARENT = 'G'
32 MISSINGPARENT = 'M'
32 MISSINGPARENT = 'M'
33 # Style of line to draw. None signals a line that ends and is removed at this
33 # Style of line to draw. None signals a line that ends and is removed at this
34 # point. A number prefix means only the last N characters of the current block
34 # point. A number prefix means only the last N characters of the current block
35 # will use that style, the rest will use the PARENT style. Add a - sign
35 # will use that style, the rest will use the PARENT style. Add a - sign
36 # (so making N negative) and all but the first N characters use that style.
36 # (so making N negative) and all but the first N characters use that style.
37 EDGES = {PARENT: '|', GRANDPARENT: ':', MISSINGPARENT: None}
37 EDGES = {PARENT: '|', GRANDPARENT: ':', MISSINGPARENT: None}
38
38
39 def dagwalker(repo, revs):
39 def dagwalker(repo, revs):
40 """cset DAG generator yielding (id, CHANGESET, ctx, [parentinfo]) tuples
40 """cset DAG generator yielding (id, CHANGESET, ctx, [parentinfo]) tuples
41
41
42 This generator function walks through revisions (which should be ordered
42 This generator function walks through revisions (which should be ordered
43 from bigger to lower). It returns a tuple for each node.
43 from bigger to lower). It returns a tuple for each node.
44
44
45 Each parentinfo entry is a tuple with (edgetype, parentid), where edgetype
45 Each parentinfo entry is a tuple with (edgetype, parentid), where edgetype
46 is one of PARENT, GRANDPARENT or MISSINGPARENT. The node and parent ids
46 is one of PARENT, GRANDPARENT or MISSINGPARENT. The node and parent ids
47 are arbitrary integers which identify a node in the context of the graph
47 are arbitrary integers which identify a node in the context of the graph
48 returned.
48 returned.
49
49
50 """
50 """
51 if not revs:
51 if not revs:
52 return
52 return
53
53
54 gpcache = {}
54 gpcache = {}
55
55
56 for rev in revs:
56 for rev in revs:
57 ctx = repo[rev]
57 ctx = repo[rev]
58 # partition into parents in the rev set and missing parents, then
58 # partition into parents in the rev set and missing parents, then
59 # augment the lists with markers, to inform graph drawing code about
59 # augment the lists with markers, to inform graph drawing code about
60 # what kind of edge to draw between nodes.
60 # what kind of edge to draw between nodes.
61 pset = set(p.rev() for p in ctx.parents() if p.rev() in revs)
61 pset = set(p.rev() for p in ctx.parents() if p.rev() in revs)
62 mpars = [p.rev() for p in ctx.parents()
62 mpars = [p.rev() for p in ctx.parents()
63 if p.rev() != nullrev and p.rev() not in pset]
63 if p.rev() != nullrev and p.rev() not in pset]
64 parents = [(PARENT, p) for p in sorted(pset)]
64 parents = [(PARENT, p) for p in sorted(pset)]
65
65
66 for mpar in mpars:
66 for mpar in mpars:
67 gp = gpcache.get(mpar)
67 gp = gpcache.get(mpar)
68 if gp is None:
68 if gp is None:
69 # precompute slow query as we know reachableroots() goes
69 # precompute slow query as we know reachableroots() goes
70 # through all revs (issue4782)
70 # through all revs (issue4782)
71 if not isinstance(revs, smartset.baseset):
71 if not isinstance(revs, smartset.baseset):
72 revs = smartset.baseset(revs)
72 revs = smartset.baseset(revs)
73 gp = gpcache[mpar] = sorted(set(revset.reachableroots(
73 gp = gpcache[mpar] = sorted(set(revset.reachableroots(
74 repo, revs, [mpar])))
74 repo, revs, [mpar])))
75 if not gp:
75 if not gp:
76 parents.append((MISSINGPARENT, mpar))
76 parents.append((MISSINGPARENT, mpar))
77 pset.add(mpar)
77 pset.add(mpar)
78 else:
78 else:
79 parents.extend((GRANDPARENT, g) for g in gp if g not in pset)
79 parents.extend((GRANDPARENT, g) for g in gp if g not in pset)
80 pset.update(gp)
80 pset.update(gp)
81
81
82 yield (ctx.rev(), CHANGESET, ctx, parents)
82 yield (ctx.rev(), CHANGESET, ctx, parents)
83
83
84 def nodes(repo, nodes):
84 def nodes(repo, nodes):
85 """cset DAG generator yielding (id, CHANGESET, ctx, [parentids]) tuples
85 """cset DAG generator yielding (id, CHANGESET, ctx, [parentids]) tuples
86
86
87 This generator function walks the given nodes. It only returns parents
87 This generator function walks the given nodes. It only returns parents
88 that are in nodes, too.
88 that are in nodes, too.
89 """
89 """
90 include = set(nodes)
90 include = set(nodes)
91 for node in nodes:
91 for node in nodes:
92 ctx = repo[node]
92 ctx = repo[node]
93 parents = set((PARENT, p.rev()) for p in ctx.parents()
93 parents = set((PARENT, p.rev()) for p in ctx.parents()
94 if p.node() in include)
94 if p.node() in include)
95 yield (ctx.rev(), CHANGESET, ctx, sorted(parents))
95 yield (ctx.rev(), CHANGESET, ctx, sorted(parents))
96
96
97 def colored(dag, repo):
97 def colored(dag, repo):
98 """annotates a DAG with colored edge information
98 """annotates a DAG with colored edge information
99
99
100 For each DAG node this function emits tuples::
100 For each DAG node this function emits tuples::
101
101
102 (id, type, data, (col, color), [(col, nextcol, color)])
102 (id, type, data, (col, color), [(col, nextcol, color)])
103
103
104 with the following new elements:
104 with the following new elements:
105
105
106 - Tuple (col, color) with column and color index for the current node
106 - Tuple (col, color) with column and color index for the current node
107 - A list of tuples indicating the edges between the current node and its
107 - A list of tuples indicating the edges between the current node and its
108 parents.
108 parents.
109 """
109 """
110 seen = []
110 seen = []
111 colors = {}
111 colors = {}
112 newcolor = 1
112 newcolor = 1
113 config = {}
113 config = {}
114
114
115 for key, val in repo.ui.configitems('graph'):
115 for key, val in repo.ui.configitems('graph'):
116 if '.' in key:
116 if '.' in key:
117 branch, setting = key.rsplit('.', 1)
117 branch, setting = key.rsplit('.', 1)
118 # Validation
118 # Validation
119 if setting == "width" and val.isdigit():
119 if setting == "width" and val.isdigit():
120 config.setdefault(branch, {})[setting] = int(val)
120 config.setdefault(branch, {})[setting] = int(val)
121 elif setting == "color" and val.isalnum():
121 elif setting == "color" and val.isalnum():
122 config.setdefault(branch, {})[setting] = val
122 config.setdefault(branch, {})[setting] = val
123
123
124 if config:
124 if config:
125 getconf = util.lrucachefunc(
125 getconf = util.lrucachefunc(
126 lambda rev: config.get(repo[rev].branch(), {}))
126 lambda rev: config.get(repo[rev].branch(), {}))
127 else:
127 else:
128 getconf = lambda rev: {}
128 getconf = lambda rev: {}
129
129
130 for (cur, type, data, parents) in dag:
130 for (cur, type, data, parents) in dag:
131
131
132 # Compute seen and next
132 # Compute seen and next
133 if cur not in seen:
133 if cur not in seen:
134 seen.append(cur) # new head
134 seen.append(cur) # new head
135 colors[cur] = newcolor
135 colors[cur] = newcolor
136 newcolor += 1
136 newcolor += 1
137
137
138 col = seen.index(cur)
138 col = seen.index(cur)
139 color = colors.pop(cur)
139 color = colors.pop(cur)
140 next = seen[:]
140 next = seen[:]
141
141
142 # Add parents to next
142 # Add parents to next
143 addparents = [p for pt, p in parents if p not in next]
143 addparents = [p for pt, p in parents if p not in next]
144 next[col:col + 1] = addparents
144 next[col:col + 1] = addparents
145
145
146 # Set colors for the parents
146 # Set colors for the parents
147 for i, p in enumerate(addparents):
147 for i, p in enumerate(addparents):
148 if not i:
148 if not i:
149 colors[p] = color
149 colors[p] = color
150 else:
150 else:
151 colors[p] = newcolor
151 colors[p] = newcolor
152 newcolor += 1
152 newcolor += 1
153
153
154 # Add edges to the graph
154 # Add edges to the graph
155 edges = []
155 edges = []
156 for ecol, eid in enumerate(seen):
156 for ecol, eid in enumerate(seen):
157 if eid in next:
157 if eid in next:
158 bconf = getconf(eid)
158 bconf = getconf(eid)
159 edges.append((
159 edges.append((
160 ecol, next.index(eid), colors[eid],
160 ecol, next.index(eid), colors[eid],
161 bconf.get('width', -1),
161 bconf.get('width', -1),
162 bconf.get('color', '')))
162 bconf.get('color', '')))
163 elif eid == cur:
163 elif eid == cur:
164 for ptype, p in parents:
164 for ptype, p in parents:
165 bconf = getconf(p)
165 bconf = getconf(p)
166 edges.append((
166 edges.append((
167 ecol, next.index(p), color,
167 ecol, next.index(p), color,
168 bconf.get('width', -1),
168 bconf.get('width', -1),
169 bconf.get('color', '')))
169 bconf.get('color', '')))
170
170
171 # Yield and move on
171 # Yield and move on
172 yield (cur, type, data, (col, color), edges)
172 yield (cur, type, data, (col, color), edges)
173 seen = next
173 seen = next
174
174
175 def asciiedges(type, char, lines, state, rev, parents):
175 def asciiedges(type, char, lines, state, rev, parents):
176 """adds edge info to changelog DAG walk suitable for ascii()"""
176 """adds edge info to changelog DAG walk suitable for ascii()"""
177 seen = state['seen']
177 seen = state['seen']
178 if rev not in seen:
178 if rev not in seen:
179 seen.append(rev)
179 seen.append(rev)
180 nodeidx = seen.index(rev)
180 nodeidx = seen.index(rev)
181
181
182 knownparents = []
182 knownparents = []
183 newparents = []
183 newparents = []
184 for ptype, parent in parents:
184 for ptype, parent in parents:
185 if parent == rev:
186 # self reference (should only be seen in null rev)
187 continue
185 if parent in seen:
188 if parent in seen:
186 knownparents.append(parent)
189 knownparents.append(parent)
187 else:
190 else:
188 newparents.append(parent)
191 newparents.append(parent)
189 state['edges'][parent] = state['styles'].get(ptype, '|')
192 state['edges'][parent] = state['styles'].get(ptype, '|')
190
193
191 ncols = len(seen)
194 ncols = len(seen)
192 nextseen = seen[:]
195 nextseen = seen[:]
193 nextseen[nodeidx:nodeidx + 1] = newparents
196 nextseen[nodeidx:nodeidx + 1] = newparents
194 edges = [(nodeidx, nextseen.index(p))
197 edges = [(nodeidx, nextseen.index(p)) for p in knownparents]
195 for p in knownparents if p != nullrev]
196
198
197 seen[:] = nextseen
199 seen[:] = nextseen
198 while len(newparents) > 2:
200 while len(newparents) > 2:
199 # ascii() only knows how to add or remove a single column between two
201 # ascii() only knows how to add or remove a single column between two
200 # calls. Nodes with more than two parents break this constraint so we
202 # calls. Nodes with more than two parents break this constraint so we
201 # introduce intermediate expansion lines to grow the active node list
203 # introduce intermediate expansion lines to grow the active node list
202 # slowly.
204 # slowly.
203 edges.append((nodeidx, nodeidx))
205 edges.append((nodeidx, nodeidx))
204 edges.append((nodeidx, nodeidx + 1))
206 edges.append((nodeidx, nodeidx + 1))
205 nmorecols = 1
207 nmorecols = 1
206 yield (type, char, lines, (nodeidx, edges, ncols, nmorecols))
208 yield (type, char, lines, (nodeidx, edges, ncols, nmorecols))
207 char = '\\'
209 char = '\\'
208 lines = []
210 lines = []
209 nodeidx += 1
211 nodeidx += 1
210 ncols += 1
212 ncols += 1
211 edges = []
213 edges = []
212 del newparents[0]
214 del newparents[0]
213
215
214 if len(newparents) > 0:
216 if len(newparents) > 0:
215 edges.append((nodeidx, nodeidx))
217 edges.append((nodeidx, nodeidx))
216 if len(newparents) > 1:
218 if len(newparents) > 1:
217 edges.append((nodeidx, nodeidx + 1))
219 edges.append((nodeidx, nodeidx + 1))
218 nmorecols = len(nextseen) - ncols
220 nmorecols = len(nextseen) - ncols
219 # remove current node from edge characters, no longer needed
221 # remove current node from edge characters, no longer needed
220 state['edges'].pop(rev, None)
222 state['edges'].pop(rev, None)
221 yield (type, char, lines, (nodeidx, edges, ncols, nmorecols))
223 yield (type, char, lines, (nodeidx, edges, ncols, nmorecols))
222
224
223 def _fixlongrightedges(edges):
225 def _fixlongrightedges(edges):
224 for (i, (start, end)) in enumerate(edges):
226 for (i, (start, end)) in enumerate(edges):
225 if end > start:
227 if end > start:
226 edges[i] = (start, end + 1)
228 edges[i] = (start, end + 1)
227
229
228 def _getnodelineedgestail(
230 def _getnodelineedgestail(
229 echars, idx, pidx, ncols, coldiff, pdiff, fix_tail):
231 echars, idx, pidx, ncols, coldiff, pdiff, fix_tail):
230 if fix_tail and coldiff == pdiff and coldiff != 0:
232 if fix_tail and coldiff == pdiff and coldiff != 0:
231 # Still going in the same non-vertical direction.
233 # Still going in the same non-vertical direction.
232 if coldiff == -1:
234 if coldiff == -1:
233 start = max(idx + 1, pidx)
235 start = max(idx + 1, pidx)
234 tail = echars[idx * 2:(start - 1) * 2]
236 tail = echars[idx * 2:(start - 1) * 2]
235 tail.extend(["/", " "] * (ncols - start))
237 tail.extend(["/", " "] * (ncols - start))
236 return tail
238 return tail
237 else:
239 else:
238 return ["\\", " "] * (ncols - idx - 1)
240 return ["\\", " "] * (ncols - idx - 1)
239 else:
241 else:
240 remainder = (ncols - idx - 1)
242 remainder = (ncols - idx - 1)
241 return echars[-(remainder * 2):] if remainder > 0 else []
243 return echars[-(remainder * 2):] if remainder > 0 else []
242
244
243 def _drawedges(echars, edges, nodeline, interline):
245 def _drawedges(echars, edges, nodeline, interline):
244 for (start, end) in edges:
246 for (start, end) in edges:
245 if start == end + 1:
247 if start == end + 1:
246 interline[2 * end + 1] = "/"
248 interline[2 * end + 1] = "/"
247 elif start == end - 1:
249 elif start == end - 1:
248 interline[2 * start + 1] = "\\"
250 interline[2 * start + 1] = "\\"
249 elif start == end:
251 elif start == end:
250 interline[2 * start] = echars[2 * start]
252 interline[2 * start] = echars[2 * start]
251 else:
253 else:
252 if 2 * end >= len(nodeline):
254 if 2 * end >= len(nodeline):
253 continue
255 continue
254 nodeline[2 * end] = "+"
256 nodeline[2 * end] = "+"
255 if start > end:
257 if start > end:
256 (start, end) = (end, start)
258 (start, end) = (end, start)
257 for i in range(2 * start + 1, 2 * end):
259 for i in range(2 * start + 1, 2 * end):
258 if nodeline[i] != "+":
260 if nodeline[i] != "+":
259 nodeline[i] = "-"
261 nodeline[i] = "-"
260
262
261 def _getpaddingline(echars, idx, ncols, edges):
263 def _getpaddingline(echars, idx, ncols, edges):
262 # all edges up to the current node
264 # all edges up to the current node
263 line = echars[:idx * 2]
265 line = echars[:idx * 2]
264 # an edge for the current node, if there is one
266 # an edge for the current node, if there is one
265 if (idx, idx - 1) in edges or (idx, idx) in edges:
267 if (idx, idx - 1) in edges or (idx, idx) in edges:
266 # (idx, idx - 1) (idx, idx)
268 # (idx, idx - 1) (idx, idx)
267 # | | | | | | | |
269 # | | | | | | | |
268 # +---o | | o---+
270 # +---o | | o---+
269 # | | X | | X | |
271 # | | X | | X | |
270 # | |/ / | |/ /
272 # | |/ / | |/ /
271 # | | | | | |
273 # | | | | | |
272 line.extend(echars[idx * 2:(idx + 1) * 2])
274 line.extend(echars[idx * 2:(idx + 1) * 2])
273 else:
275 else:
274 line.extend(' ')
276 line.extend(' ')
275 # all edges to the right of the current node
277 # all edges to the right of the current node
276 remainder = ncols - idx - 1
278 remainder = ncols - idx - 1
277 if remainder > 0:
279 if remainder > 0:
278 line.extend(echars[-(remainder * 2):])
280 line.extend(echars[-(remainder * 2):])
279 return line
281 return line
280
282
281 def _drawendinglines(lines, extra, edgemap, seen):
283 def _drawendinglines(lines, extra, edgemap, seen):
282 """Draw ending lines for missing parent edges
284 """Draw ending lines for missing parent edges
283
285
284 None indicates an edge that ends at between this node and the next
286 None indicates an edge that ends at between this node and the next
285 Replace with a short line ending in ~ and add / lines to any edges to
287 Replace with a short line ending in ~ and add / lines to any edges to
286 the right.
288 the right.
287
289
288 """
290 """
289 if None not in edgemap.values():
291 if None not in edgemap.values():
290 return
292 return
291
293
292 # Check for more edges to the right of our ending edges.
294 # Check for more edges to the right of our ending edges.
293 # We need enough space to draw adjustment lines for these.
295 # We need enough space to draw adjustment lines for these.
294 edgechars = extra[::2]
296 edgechars = extra[::2]
295 while edgechars and edgechars[-1] is None:
297 while edgechars and edgechars[-1] is None:
296 edgechars.pop()
298 edgechars.pop()
297 shift_size = max((edgechars.count(None) * 2) - 1, 0)
299 shift_size = max((edgechars.count(None) * 2) - 1, 0)
298 while len(lines) < 3 + shift_size:
300 while len(lines) < 3 + shift_size:
299 lines.append(extra[:])
301 lines.append(extra[:])
300
302
301 if shift_size:
303 if shift_size:
302 empties = []
304 empties = []
303 toshift = []
305 toshift = []
304 first_empty = extra.index(None)
306 first_empty = extra.index(None)
305 for i, c in enumerate(extra[first_empty::2], first_empty // 2):
307 for i, c in enumerate(extra[first_empty::2], first_empty // 2):
306 if c is None:
308 if c is None:
307 empties.append(i * 2)
309 empties.append(i * 2)
308 else:
310 else:
309 toshift.append(i * 2)
311 toshift.append(i * 2)
310 targets = list(range(first_empty, first_empty + len(toshift) * 2, 2))
312 targets = list(range(first_empty, first_empty + len(toshift) * 2, 2))
311 positions = toshift[:]
313 positions = toshift[:]
312 for line in lines[-shift_size:]:
314 for line in lines[-shift_size:]:
313 line[first_empty:] = [' '] * (len(line) - first_empty)
315 line[first_empty:] = [' '] * (len(line) - first_empty)
314 for i in range(len(positions)):
316 for i in range(len(positions)):
315 pos = positions[i] - 1
317 pos = positions[i] - 1
316 positions[i] = max(pos, targets[i])
318 positions[i] = max(pos, targets[i])
317 line[pos] = '/' if pos > targets[i] else extra[toshift[i]]
319 line[pos] = '/' if pos > targets[i] else extra[toshift[i]]
318
320
319 map = {1: '|', 2: '~'}
321 map = {1: '|', 2: '~'}
320 for i, line in enumerate(lines):
322 for i, line in enumerate(lines):
321 if None not in line:
323 if None not in line:
322 continue
324 continue
323 line[:] = [c or map.get(i, ' ') for c in line]
325 line[:] = [c or map.get(i, ' ') for c in line]
324
326
325 # remove edges that ended
327 # remove edges that ended
326 remove = [p for p, c in edgemap.items() if c is None]
328 remove = [p for p, c in edgemap.items() if c is None]
327 for parent in remove:
329 for parent in remove:
328 del edgemap[parent]
330 del edgemap[parent]
329 seen.remove(parent)
331 seen.remove(parent)
330
332
331 def asciistate():
333 def asciistate():
332 """returns the initial value for the "state" argument to ascii()"""
334 """returns the initial value for the "state" argument to ascii()"""
333 return {
335 return {
334 'seen': [],
336 'seen': [],
335 'edges': {},
337 'edges': {},
336 'lastcoldiff': 0,
338 'lastcoldiff': 0,
337 'lastindex': 0,
339 'lastindex': 0,
338 'styles': EDGES.copy(),
340 'styles': EDGES.copy(),
339 'graphshorten': False,
341 'graphshorten': False,
340 }
342 }
341
343
342 def ascii(ui, state, type, char, text, coldata):
344 def ascii(ui, state, type, char, text, coldata):
343 """prints an ASCII graph of the DAG
345 """prints an ASCII graph of the DAG
344
346
345 takes the following arguments (one call per node in the graph):
347 takes the following arguments (one call per node in the graph):
346
348
347 - ui to write to
349 - ui to write to
348 - Somewhere to keep the needed state in (init to asciistate())
350 - Somewhere to keep the needed state in (init to asciistate())
349 - Column of the current node in the set of ongoing edges.
351 - Column of the current node in the set of ongoing edges.
350 - Type indicator of node data, usually 'C' for changesets.
352 - Type indicator of node data, usually 'C' for changesets.
351 - Payload: (char, lines):
353 - Payload: (char, lines):
352 - Character to use as node's symbol.
354 - Character to use as node's symbol.
353 - List of lines to display as the node's text.
355 - List of lines to display as the node's text.
354 - Edges; a list of (col, next_col) indicating the edges between
356 - Edges; a list of (col, next_col) indicating the edges between
355 the current node and its parents.
357 the current node and its parents.
356 - Number of columns (ongoing edges) in the current revision.
358 - Number of columns (ongoing edges) in the current revision.
357 - The difference between the number of columns (ongoing edges)
359 - The difference between the number of columns (ongoing edges)
358 in the next revision and the number of columns (ongoing edges)
360 in the next revision and the number of columns (ongoing edges)
359 in the current revision. That is: -1 means one column removed;
361 in the current revision. That is: -1 means one column removed;
360 0 means no columns added or removed; 1 means one column added.
362 0 means no columns added or removed; 1 means one column added.
361 """
363 """
362 idx, edges, ncols, coldiff = coldata
364 idx, edges, ncols, coldiff = coldata
363 assert -2 < coldiff < 2
365 assert -2 < coldiff < 2
364
366
365 edgemap, seen = state['edges'], state['seen']
367 edgemap, seen = state['edges'], state['seen']
366 # Be tolerant of history issues; make sure we have at least ncols + coldiff
368 # Be tolerant of history issues; make sure we have at least ncols + coldiff
367 # elements to work with. See test-glog.t for broken history test cases.
369 # elements to work with. See test-glog.t for broken history test cases.
368 echars = [c for p in seen for c in (edgemap.get(p, '|'), ' ')]
370 echars = [c for p in seen for c in (edgemap.get(p, '|'), ' ')]
369 echars.extend(('|', ' ') * max(ncols + coldiff - len(seen), 0))
371 echars.extend(('|', ' ') * max(ncols + coldiff - len(seen), 0))
370
372
371 if coldiff == -1:
373 if coldiff == -1:
372 # Transform
374 # Transform
373 #
375 #
374 # | | | | | |
376 # | | | | | |
375 # o | | into o---+
377 # o | | into o---+
376 # |X / |/ /
378 # |X / |/ /
377 # | | | |
379 # | | | |
378 _fixlongrightedges(edges)
380 _fixlongrightedges(edges)
379
381
380 # add_padding_line says whether to rewrite
382 # add_padding_line says whether to rewrite
381 #
383 #
382 # | | | | | | | |
384 # | | | | | | | |
383 # | o---+ into | o---+
385 # | o---+ into | o---+
384 # | / / | | | # <--- padding line
386 # | / / | | | # <--- padding line
385 # o | | | / /
387 # o | | | / /
386 # o | |
388 # o | |
387 add_padding_line = (len(text) > 2 and coldiff == -1 and
389 add_padding_line = (len(text) > 2 and coldiff == -1 and
388 [x for (x, y) in edges if x + 1 < y])
390 [x for (x, y) in edges if x + 1 < y])
389
391
390 # fix_nodeline_tail says whether to rewrite
392 # fix_nodeline_tail says whether to rewrite
391 #
393 #
392 # | | o | | | | o | |
394 # | | o | | | | o | |
393 # | | |/ / | | |/ /
395 # | | |/ / | | |/ /
394 # | o | | into | o / / # <--- fixed nodeline tail
396 # | o | | into | o / / # <--- fixed nodeline tail
395 # | |/ / | |/ /
397 # | |/ / | |/ /
396 # o | | o | |
398 # o | | o | |
397 fix_nodeline_tail = len(text) <= 2 and not add_padding_line
399 fix_nodeline_tail = len(text) <= 2 and not add_padding_line
398
400
399 # nodeline is the line containing the node character (typically o)
401 # nodeline is the line containing the node character (typically o)
400 nodeline = echars[:idx * 2]
402 nodeline = echars[:idx * 2]
401 nodeline.extend([char, " "])
403 nodeline.extend([char, " "])
402
404
403 nodeline.extend(
405 nodeline.extend(
404 _getnodelineedgestail(
406 _getnodelineedgestail(
405 echars, idx, state['lastindex'], ncols, coldiff,
407 echars, idx, state['lastindex'], ncols, coldiff,
406 state['lastcoldiff'], fix_nodeline_tail))
408 state['lastcoldiff'], fix_nodeline_tail))
407
409
408 # shift_interline is the line containing the non-vertical
410 # shift_interline is the line containing the non-vertical
409 # edges between this entry and the next
411 # edges between this entry and the next
410 shift_interline = echars[:idx * 2]
412 shift_interline = echars[:idx * 2]
411 shift_interline.extend(' ' * (2 + coldiff))
413 shift_interline.extend(' ' * (2 + coldiff))
412 count = ncols - idx - 1
414 count = ncols - idx - 1
413 if coldiff == -1:
415 if coldiff == -1:
414 shift_interline.extend('/ ' * count)
416 shift_interline.extend('/ ' * count)
415 elif coldiff == 0:
417 elif coldiff == 0:
416 shift_interline.extend(echars[(idx + 1) * 2:ncols * 2])
418 shift_interline.extend(echars[(idx + 1) * 2:ncols * 2])
417 else:
419 else:
418 shift_interline.extend(r'\ ' * count)
420 shift_interline.extend(r'\ ' * count)
419
421
420 # draw edges from the current node to its parents
422 # draw edges from the current node to its parents
421 _drawedges(echars, edges, nodeline, shift_interline)
423 _drawedges(echars, edges, nodeline, shift_interline)
422
424
423 # lines is the list of all graph lines to print
425 # lines is the list of all graph lines to print
424 lines = [nodeline]
426 lines = [nodeline]
425 if add_padding_line:
427 if add_padding_line:
426 lines.append(_getpaddingline(echars, idx, ncols, edges))
428 lines.append(_getpaddingline(echars, idx, ncols, edges))
427
429
428 # If 'graphshorten' config, only draw shift_interline
430 # If 'graphshorten' config, only draw shift_interline
429 # when there is any non vertical flow in graph.
431 # when there is any non vertical flow in graph.
430 if state['graphshorten']:
432 if state['graphshorten']:
431 if any(c in '\/' for c in shift_interline if c):
433 if any(c in '\/' for c in shift_interline if c):
432 lines.append(shift_interline)
434 lines.append(shift_interline)
433 # Else, no 'graphshorten' config so draw shift_interline.
435 # Else, no 'graphshorten' config so draw shift_interline.
434 else:
436 else:
435 lines.append(shift_interline)
437 lines.append(shift_interline)
436
438
437 # make sure that there are as many graph lines as there are
439 # make sure that there are as many graph lines as there are
438 # log strings
440 # log strings
439 extra_interline = echars[:(ncols + coldiff) * 2]
441 extra_interline = echars[:(ncols + coldiff) * 2]
440 if len(lines) < len(text):
442 if len(lines) < len(text):
441 while len(lines) < len(text):
443 while len(lines) < len(text):
442 lines.append(extra_interline[:])
444 lines.append(extra_interline[:])
443
445
444 _drawendinglines(lines, extra_interline, edgemap, seen)
446 _drawendinglines(lines, extra_interline, edgemap, seen)
445
447
446 while len(text) < len(lines):
448 while len(text) < len(lines):
447 text.append("")
449 text.append("")
448
450
449 if any(len(char) > 1 for char in edgemap.values()):
451 if any(len(char) > 1 for char in edgemap.values()):
450 # limit drawing an edge to the first or last N lines of the current
452 # limit drawing an edge to the first or last N lines of the current
451 # section the rest of the edge is drawn like a parent line.
453 # section the rest of the edge is drawn like a parent line.
452 parent = state['styles'][PARENT][-1]
454 parent = state['styles'][PARENT][-1]
453 def _drawgp(char, i):
455 def _drawgp(char, i):
454 # should a grandparent character be drawn for this line?
456 # should a grandparent character be drawn for this line?
455 if len(char) < 2:
457 if len(char) < 2:
456 return True
458 return True
457 num = int(char[:-1])
459 num = int(char[:-1])
458 # either skip first num lines or take last num lines, based on sign
460 # either skip first num lines or take last num lines, based on sign
459 return -num <= i if num < 0 else (len(lines) - i) <= num
461 return -num <= i if num < 0 else (len(lines) - i) <= num
460 for i, line in enumerate(lines):
462 for i, line in enumerate(lines):
461 line[:] = [c[-1] if _drawgp(c, i) else parent for c in line]
463 line[:] = [c[-1] if _drawgp(c, i) else parent for c in line]
462 edgemap.update(
464 edgemap.update(
463 (e, (c if len(c) < 2 else parent)) for e, c in edgemap.items())
465 (e, (c if len(c) < 2 else parent)) for e, c in edgemap.items())
464
466
465 # print lines
467 # print lines
466 indentation_level = max(ncols, ncols + coldiff)
468 indentation_level = max(ncols, ncols + coldiff)
467 for (line, logstr) in zip(lines, text):
469 for (line, logstr) in zip(lines, text):
468 ln = "%-*s %s" % (2 * indentation_level, "".join(line), logstr)
470 ln = "%-*s %s" % (2 * indentation_level, "".join(line), logstr)
469 ui.write(ln.rstrip() + '\n')
471 ui.write(ln.rstrip() + '\n')
470
472
471 # ... and start over
473 # ... and start over
472 state['lastcoldiff'] = coldiff
474 state['lastcoldiff'] = coldiff
473 state['lastindex'] = idx
475 state['lastindex'] = idx
@@ -1,3426 +1,3462 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 mercurial import extensions, revsetlang, commands, cmdutil
85 > from mercurial import extensions, revsetlang, commands, cmdutil
86 >
86 >
87 > def uisetup(ui):
87 > def uisetup(ui):
88 > def printrevset(orig, ui, repo, *pats, **opts):
88 > def printrevset(orig, ui, repo, *pats, **opts):
89 > if opts.get('print_revset'):
89 > if opts.get('print_revset'):
90 > expr = cmdutil.getgraphlogrevs(repo, pats, opts)[1]
90 > expr = cmdutil.getgraphlogrevs(repo, pats, opts)[1]
91 > if expr:
91 > if expr:
92 > tree = revsetlang.parse(expr)
92 > tree = revsetlang.parse(expr)
93 > else:
93 > else:
94 > tree = []
94 > tree = []
95 > ui.write('%r\n' % (opts.get('rev', []),))
95 > ui.write('%r\n' % (opts.get('rev', []),))
96 > ui.write(revsetlang.prettyformat(tree) + '\n')
96 > ui.write(revsetlang.prettyformat(tree) + '\n')
97 > return 0
97 > return 0
98 > return orig(ui, repo, *pats, **opts)
98 > return orig(ui, repo, *pats, **opts)
99 > entry = extensions.wrapcommand(commands.table, 'log', printrevset)
99 > entry = extensions.wrapcommand(commands.table, 'log', printrevset)
100 > entry[1].append(('', 'print-revset', False,
100 > entry[1].append(('', 'print-revset', False,
101 > 'print generated revset and exit (DEPRECATED)'))
101 > 'print generated revset and exit (DEPRECATED)'))
102 > EOF
102 > EOF
103
103
104 $ echo "[extensions]" >> $HGRCPATH
104 $ echo "[extensions]" >> $HGRCPATH
105 $ echo "printrevset=`pwd`/printrevset.py" >> $HGRCPATH
105 $ echo "printrevset=`pwd`/printrevset.py" >> $HGRCPATH
106
106
107 $ hg init repo
107 $ hg init repo
108 $ cd repo
108 $ cd repo
109
109
110 Empty repo:
110 Empty repo:
111
111
112 $ hg log -G
112 $ hg log -G
113
113
114
114
115 Building DAG:
115 Building DAG:
116
116
117 $ commit 0 "root"
117 $ commit 0 "root"
118 $ commit 1 "collapse" 0
118 $ commit 1 "collapse" 0
119 $ commit 2 "collapse" 1
119 $ commit 2 "collapse" 1
120 $ commit 3 "collapse" 2
120 $ commit 3 "collapse" 2
121 $ commit 4 "merge two known; one immediate left, one immediate right" 1 3
121 $ commit 4 "merge two known; one immediate left, one immediate right" 1 3
122 $ commit 5 "expand" 3 4
122 $ commit 5 "expand" 3 4
123 $ commit 6 "merge two known; one immediate left, one far left" 2 5
123 $ commit 6 "merge two known; one immediate left, one far left" 2 5
124 $ commit 7 "expand" 2 5
124 $ commit 7 "expand" 2 5
125 $ commit 8 "merge two known; one immediate left, one far right" 0 7
125 $ commit 8 "merge two known; one immediate left, one far right" 0 7
126 $ commit 9 "expand" 7 8
126 $ commit 9 "expand" 7 8
127 $ commit 10 "merge two known; one immediate left, one near right" 0 6
127 $ commit 10 "merge two known; one immediate left, one near right" 0 6
128 $ commit 11 "expand" 6 10
128 $ commit 11 "expand" 6 10
129 $ commit 12 "merge two known; one immediate right, one far left" 1 9
129 $ commit 12 "merge two known; one immediate right, one far left" 1 9
130 $ commit 13 "expand" 9 11
130 $ commit 13 "expand" 9 11
131 $ commit 14 "merge two known; one immediate right, one far right" 0 12
131 $ commit 14 "merge two known; one immediate right, one far right" 0 12
132 $ commit 15 "expand" 13 14
132 $ commit 15 "expand" 13 14
133 $ commit 16 "merge two known; one immediate right, one near right" 0 1
133 $ commit 16 "merge two known; one immediate right, one near right" 0 1
134 $ commit 17 "expand" 12 16
134 $ commit 17 "expand" 12 16
135 $ commit 18 "merge two known; two far left" 1 15
135 $ commit 18 "merge two known; two far left" 1 15
136 $ commit 19 "expand" 15 17
136 $ commit 19 "expand" 15 17
137 $ commit 20 "merge two known; two far right" 0 18
137 $ commit 20 "merge two known; two far right" 0 18
138 $ commit 21 "expand" 19 20
138 $ commit 21 "expand" 19 20
139 $ commit 22 "merge two known; one far left, one far right" 18 21
139 $ commit 22 "merge two known; one far left, one far right" 18 21
140 $ commit 23 "merge one known; immediate left" 1 22
140 $ commit 23 "merge one known; immediate left" 1 22
141 $ commit 24 "merge one known; immediate right" 0 23
141 $ commit 24 "merge one known; immediate right" 0 23
142 $ commit 25 "merge one known; far left" 21 24
142 $ commit 25 "merge one known; far left" 21 24
143 $ commit 26 "merge one known; far right" 18 25
143 $ commit 26 "merge one known; far right" 18 25
144 $ commit 27 "collapse" 21
144 $ commit 27 "collapse" 21
145 $ commit 28 "merge zero known" 1 26
145 $ commit 28 "merge zero known" 1 26
146 $ commit 29 "regular commit" 0
146 $ commit 29 "regular commit" 0
147 $ commit 30 "expand" 28 29
147 $ commit 30 "expand" 28 29
148 $ commit 31 "expand" 21 30
148 $ commit 31 "expand" 21 30
149 $ commit 32 "expand" 27 31
149 $ commit 32 "expand" 27 31
150 $ commit 33 "head" 18
150 $ commit 33 "head" 18
151 $ commit 34 "head" 32
151 $ commit 34 "head" 32
152
152
153
153
154 $ hg log -G -q
154 $ hg log -G -q
155 @ 34:fea3ac5810e0
155 @ 34:fea3ac5810e0
156 |
156 |
157 | o 33:68608f5145f9
157 | o 33:68608f5145f9
158 | |
158 | |
159 o | 32:d06dffa21a31
159 o | 32:d06dffa21a31
160 |\ \
160 |\ \
161 | o \ 31:621d83e11f67
161 | o \ 31:621d83e11f67
162 | |\ \
162 | |\ \
163 | | o \ 30:6e11cd4b648f
163 | | o \ 30:6e11cd4b648f
164 | | |\ \
164 | | |\ \
165 | | | o | 29:cd9bb2be7593
165 | | | o | 29:cd9bb2be7593
166 | | | | |
166 | | | | |
167 | | o | | 28:44ecd0b9ae99
167 | | o | | 28:44ecd0b9ae99
168 | | |\ \ \
168 | | |\ \ \
169 o | | | | | 27:886ed638191b
169 o | | | | | 27:886ed638191b
170 |/ / / / /
170 |/ / / / /
171 | | o---+ 26:7f25b6c2f0b9
171 | | o---+ 26:7f25b6c2f0b9
172 | | | | |
172 | | | | |
173 +---o | | 25:91da8ed57247
173 +---o | | 25:91da8ed57247
174 | | | | |
174 | | | | |
175 | | o | | 24:a9c19a3d96b7
175 | | o | | 24:a9c19a3d96b7
176 | | |\| |
176 | | |\| |
177 | | o | | 23:a01cddf0766d
177 | | o | | 23:a01cddf0766d
178 | |/| | |
178 | |/| | |
179 +---o---+ 22:e0d9cccacb5d
179 +---o---+ 22:e0d9cccacb5d
180 | | / /
180 | | / /
181 o | | | 21:d42a756af44d
181 o | | | 21:d42a756af44d
182 |\ \ \ \
182 |\ \ \ \
183 | o---+-+ 20:d30ed6450e32
183 | o---+-+ 20:d30ed6450e32
184 | / / /
184 | / / /
185 o | | | 19:31ddc2c1573b
185 o | | | 19:31ddc2c1573b
186 |\ \ \ \
186 |\ \ \ \
187 +---+---o 18:1aa84d96232a
187 +---+---o 18:1aa84d96232a
188 | | | |
188 | | | |
189 | o | | 17:44765d7c06e0
189 | o | | 17:44765d7c06e0
190 | |\ \ \
190 | |\ \ \
191 | | o---+ 16:3677d192927d
191 | | o---+ 16:3677d192927d
192 | | |/ /
192 | | |/ /
193 o | | | 15:1dda3f72782d
193 o | | | 15:1dda3f72782d
194 |\ \ \ \
194 |\ \ \ \
195 | o-----+ 14:8eac370358ef
195 | o-----+ 14:8eac370358ef
196 | |/ / /
196 | |/ / /
197 o | | | 13:22d8966a97e3
197 o | | | 13:22d8966a97e3
198 |\ \ \ \
198 |\ \ \ \
199 +---o | | 12:86b91144a6e9
199 +---o | | 12:86b91144a6e9
200 | | |/ /
200 | | |/ /
201 | o | | 11:832d76e6bdf2
201 | o | | 11:832d76e6bdf2
202 | |\ \ \
202 | |\ \ \
203 | | o---+ 10:74c64d036d72
203 | | o---+ 10:74c64d036d72
204 | |/ / /
204 | |/ / /
205 o | | | 9:7010c0af0a35
205 o | | | 9:7010c0af0a35
206 |\ \ \ \
206 |\ \ \ \
207 | o-----+ 8:7a0b11f71937
207 | o-----+ 8:7a0b11f71937
208 |/ / / /
208 |/ / / /
209 o | | | 7:b632bb1b1224
209 o | | | 7:b632bb1b1224
210 |\ \ \ \
210 |\ \ \ \
211 +---o | | 6:b105a072e251
211 +---o | | 6:b105a072e251
212 | |/ / /
212 | |/ / /
213 | o | | 5:4409d547b708
213 | o | | 5:4409d547b708
214 | |\ \ \
214 | |\ \ \
215 | | o | | 4:26a8bac39d9f
215 | | o | | 4:26a8bac39d9f
216 | |/|/ /
216 | |/|/ /
217 | o / / 3:27eef8ed80b4
217 | o / / 3:27eef8ed80b4
218 |/ / /
218 |/ / /
219 o / / 2:3d9a33b8d1e1
219 o / / 2:3d9a33b8d1e1
220 |/ /
220 |/ /
221 o / 1:6db2ef61d156
221 o / 1:6db2ef61d156
222 |/
222 |/
223 o 0:e6eb3150255d
223 o 0:e6eb3150255d
224
224
225
225
226 $ hg log -G
226 $ hg log -G
227 @ changeset: 34:fea3ac5810e0
227 @ changeset: 34:fea3ac5810e0
228 | tag: tip
228 | tag: tip
229 | parent: 32:d06dffa21a31
229 | parent: 32:d06dffa21a31
230 | user: test
230 | user: test
231 | date: Thu Jan 01 00:00:34 1970 +0000
231 | date: Thu Jan 01 00:00:34 1970 +0000
232 | summary: (34) head
232 | summary: (34) head
233 |
233 |
234 | o changeset: 33:68608f5145f9
234 | o changeset: 33:68608f5145f9
235 | | parent: 18:1aa84d96232a
235 | | parent: 18:1aa84d96232a
236 | | user: test
236 | | user: test
237 | | date: Thu Jan 01 00:00:33 1970 +0000
237 | | date: Thu Jan 01 00:00:33 1970 +0000
238 | | summary: (33) head
238 | | summary: (33) head
239 | |
239 | |
240 o | changeset: 32:d06dffa21a31
240 o | changeset: 32:d06dffa21a31
241 |\ \ parent: 27:886ed638191b
241 |\ \ parent: 27:886ed638191b
242 | | | parent: 31:621d83e11f67
242 | | | parent: 31:621d83e11f67
243 | | | user: test
243 | | | user: test
244 | | | date: Thu Jan 01 00:00:32 1970 +0000
244 | | | date: Thu Jan 01 00:00:32 1970 +0000
245 | | | summary: (32) expand
245 | | | summary: (32) expand
246 | | |
246 | | |
247 | o | changeset: 31:621d83e11f67
247 | o | changeset: 31:621d83e11f67
248 | |\ \ parent: 21:d42a756af44d
248 | |\ \ parent: 21:d42a756af44d
249 | | | | parent: 30:6e11cd4b648f
249 | | | | parent: 30:6e11cd4b648f
250 | | | | user: test
250 | | | | user: test
251 | | | | date: Thu Jan 01 00:00:31 1970 +0000
251 | | | | date: Thu Jan 01 00:00:31 1970 +0000
252 | | | | summary: (31) expand
252 | | | | summary: (31) expand
253 | | | |
253 | | | |
254 | | o | changeset: 30:6e11cd4b648f
254 | | o | changeset: 30:6e11cd4b648f
255 | | |\ \ parent: 28:44ecd0b9ae99
255 | | |\ \ parent: 28:44ecd0b9ae99
256 | | | | | parent: 29:cd9bb2be7593
256 | | | | | parent: 29:cd9bb2be7593
257 | | | | | user: test
257 | | | | | user: test
258 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
258 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
259 | | | | | summary: (30) expand
259 | | | | | summary: (30) expand
260 | | | | |
260 | | | | |
261 | | | o | changeset: 29:cd9bb2be7593
261 | | | o | changeset: 29:cd9bb2be7593
262 | | | | | parent: 0:e6eb3150255d
262 | | | | | parent: 0:e6eb3150255d
263 | | | | | user: test
263 | | | | | user: test
264 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
264 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
265 | | | | | summary: (29) regular commit
265 | | | | | summary: (29) regular commit
266 | | | | |
266 | | | | |
267 | | o | | changeset: 28:44ecd0b9ae99
267 | | o | | changeset: 28:44ecd0b9ae99
268 | | |\ \ \ parent: 1:6db2ef61d156
268 | | |\ \ \ parent: 1:6db2ef61d156
269 | | | | | | parent: 26:7f25b6c2f0b9
269 | | | | | | parent: 26:7f25b6c2f0b9
270 | | | | | | user: test
270 | | | | | | user: test
271 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
271 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
272 | | | | | | summary: (28) merge zero known
272 | | | | | | summary: (28) merge zero known
273 | | | | | |
273 | | | | | |
274 o | | | | | changeset: 27:886ed638191b
274 o | | | | | changeset: 27:886ed638191b
275 |/ / / / / parent: 21:d42a756af44d
275 |/ / / / / parent: 21:d42a756af44d
276 | | | | | user: test
276 | | | | | user: test
277 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
277 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
278 | | | | | summary: (27) collapse
278 | | | | | summary: (27) collapse
279 | | | | |
279 | | | | |
280 | | o---+ changeset: 26:7f25b6c2f0b9
280 | | o---+ changeset: 26:7f25b6c2f0b9
281 | | | | | parent: 18:1aa84d96232a
281 | | | | | parent: 18:1aa84d96232a
282 | | | | | parent: 25:91da8ed57247
282 | | | | | parent: 25:91da8ed57247
283 | | | | | user: test
283 | | | | | user: test
284 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
284 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
285 | | | | | summary: (26) merge one known; far right
285 | | | | | summary: (26) merge one known; far right
286 | | | | |
286 | | | | |
287 +---o | | changeset: 25:91da8ed57247
287 +---o | | changeset: 25:91da8ed57247
288 | | | | | parent: 21:d42a756af44d
288 | | | | | parent: 21:d42a756af44d
289 | | | | | parent: 24:a9c19a3d96b7
289 | | | | | parent: 24:a9c19a3d96b7
290 | | | | | user: test
290 | | | | | user: test
291 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
291 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
292 | | | | | summary: (25) merge one known; far left
292 | | | | | summary: (25) merge one known; far left
293 | | | | |
293 | | | | |
294 | | o | | changeset: 24:a9c19a3d96b7
294 | | o | | changeset: 24:a9c19a3d96b7
295 | | |\| | parent: 0:e6eb3150255d
295 | | |\| | parent: 0:e6eb3150255d
296 | | | | | parent: 23:a01cddf0766d
296 | | | | | parent: 23:a01cddf0766d
297 | | | | | user: test
297 | | | | | user: test
298 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
298 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
299 | | | | | summary: (24) merge one known; immediate right
299 | | | | | summary: (24) merge one known; immediate right
300 | | | | |
300 | | | | |
301 | | o | | changeset: 23:a01cddf0766d
301 | | o | | changeset: 23:a01cddf0766d
302 | |/| | | parent: 1:6db2ef61d156
302 | |/| | | parent: 1:6db2ef61d156
303 | | | | | parent: 22:e0d9cccacb5d
303 | | | | | parent: 22:e0d9cccacb5d
304 | | | | | user: test
304 | | | | | user: test
305 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
305 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
306 | | | | | summary: (23) merge one known; immediate left
306 | | | | | summary: (23) merge one known; immediate left
307 | | | | |
307 | | | | |
308 +---o---+ changeset: 22:e0d9cccacb5d
308 +---o---+ changeset: 22:e0d9cccacb5d
309 | | | | parent: 18:1aa84d96232a
309 | | | | parent: 18:1aa84d96232a
310 | | / / parent: 21:d42a756af44d
310 | | / / parent: 21:d42a756af44d
311 | | | | user: test
311 | | | | user: test
312 | | | | date: Thu Jan 01 00:00:22 1970 +0000
312 | | | | date: Thu Jan 01 00:00:22 1970 +0000
313 | | | | summary: (22) merge two known; one far left, one far right
313 | | | | summary: (22) merge two known; one far left, one far right
314 | | | |
314 | | | |
315 o | | | changeset: 21:d42a756af44d
315 o | | | changeset: 21:d42a756af44d
316 |\ \ \ \ parent: 19:31ddc2c1573b
316 |\ \ \ \ parent: 19:31ddc2c1573b
317 | | | | | parent: 20:d30ed6450e32
317 | | | | | parent: 20:d30ed6450e32
318 | | | | | user: test
318 | | | | | user: test
319 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
319 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
320 | | | | | summary: (21) expand
320 | | | | | summary: (21) expand
321 | | | | |
321 | | | | |
322 | o---+-+ changeset: 20:d30ed6450e32
322 | o---+-+ changeset: 20:d30ed6450e32
323 | | | | parent: 0:e6eb3150255d
323 | | | | parent: 0:e6eb3150255d
324 | / / / parent: 18:1aa84d96232a
324 | / / / parent: 18:1aa84d96232a
325 | | | | user: test
325 | | | | user: test
326 | | | | date: Thu Jan 01 00:00:20 1970 +0000
326 | | | | date: Thu Jan 01 00:00:20 1970 +0000
327 | | | | summary: (20) merge two known; two far right
327 | | | | summary: (20) merge two known; two far right
328 | | | |
328 | | | |
329 o | | | changeset: 19:31ddc2c1573b
329 o | | | changeset: 19:31ddc2c1573b
330 |\ \ \ \ parent: 15:1dda3f72782d
330 |\ \ \ \ parent: 15:1dda3f72782d
331 | | | | | parent: 17:44765d7c06e0
331 | | | | | parent: 17:44765d7c06e0
332 | | | | | user: test
332 | | | | | user: test
333 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
333 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
334 | | | | | summary: (19) expand
334 | | | | | summary: (19) expand
335 | | | | |
335 | | | | |
336 +---+---o changeset: 18:1aa84d96232a
336 +---+---o changeset: 18:1aa84d96232a
337 | | | | parent: 1:6db2ef61d156
337 | | | | parent: 1:6db2ef61d156
338 | | | | parent: 15:1dda3f72782d
338 | | | | parent: 15:1dda3f72782d
339 | | | | user: test
339 | | | | user: test
340 | | | | date: Thu Jan 01 00:00:18 1970 +0000
340 | | | | date: Thu Jan 01 00:00:18 1970 +0000
341 | | | | summary: (18) merge two known; two far left
341 | | | | summary: (18) merge two known; two far left
342 | | | |
342 | | | |
343 | o | | changeset: 17:44765d7c06e0
343 | o | | changeset: 17:44765d7c06e0
344 | |\ \ \ parent: 12:86b91144a6e9
344 | |\ \ \ parent: 12:86b91144a6e9
345 | | | | | parent: 16:3677d192927d
345 | | | | | parent: 16:3677d192927d
346 | | | | | user: test
346 | | | | | user: test
347 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
347 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
348 | | | | | summary: (17) expand
348 | | | | | summary: (17) expand
349 | | | | |
349 | | | | |
350 | | o---+ changeset: 16:3677d192927d
350 | | o---+ changeset: 16:3677d192927d
351 | | | | | parent: 0:e6eb3150255d
351 | | | | | parent: 0:e6eb3150255d
352 | | |/ / parent: 1:6db2ef61d156
352 | | |/ / parent: 1:6db2ef61d156
353 | | | | user: test
353 | | | | user: test
354 | | | | date: Thu Jan 01 00:00:16 1970 +0000
354 | | | | date: Thu Jan 01 00:00:16 1970 +0000
355 | | | | summary: (16) merge two known; one immediate right, one near right
355 | | | | summary: (16) merge two known; one immediate right, one near right
356 | | | |
356 | | | |
357 o | | | changeset: 15:1dda3f72782d
357 o | | | changeset: 15:1dda3f72782d
358 |\ \ \ \ parent: 13:22d8966a97e3
358 |\ \ \ \ parent: 13:22d8966a97e3
359 | | | | | parent: 14:8eac370358ef
359 | | | | | parent: 14:8eac370358ef
360 | | | | | user: test
360 | | | | | user: test
361 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
361 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
362 | | | | | summary: (15) expand
362 | | | | | summary: (15) expand
363 | | | | |
363 | | | | |
364 | o-----+ changeset: 14:8eac370358ef
364 | o-----+ changeset: 14:8eac370358ef
365 | | | | | parent: 0:e6eb3150255d
365 | | | | | parent: 0:e6eb3150255d
366 | |/ / / parent: 12:86b91144a6e9
366 | |/ / / parent: 12:86b91144a6e9
367 | | | | user: test
367 | | | | user: test
368 | | | | date: Thu Jan 01 00:00:14 1970 +0000
368 | | | | date: Thu Jan 01 00:00:14 1970 +0000
369 | | | | summary: (14) merge two known; one immediate right, one far right
369 | | | | summary: (14) merge two known; one immediate right, one far right
370 | | | |
370 | | | |
371 o | | | changeset: 13:22d8966a97e3
371 o | | | changeset: 13:22d8966a97e3
372 |\ \ \ \ parent: 9:7010c0af0a35
372 |\ \ \ \ parent: 9:7010c0af0a35
373 | | | | | parent: 11:832d76e6bdf2
373 | | | | | parent: 11:832d76e6bdf2
374 | | | | | user: test
374 | | | | | user: test
375 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
375 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
376 | | | | | summary: (13) expand
376 | | | | | summary: (13) expand
377 | | | | |
377 | | | | |
378 +---o | | changeset: 12:86b91144a6e9
378 +---o | | changeset: 12:86b91144a6e9
379 | | |/ / parent: 1:6db2ef61d156
379 | | |/ / parent: 1:6db2ef61d156
380 | | | | parent: 9:7010c0af0a35
380 | | | | parent: 9:7010c0af0a35
381 | | | | user: test
381 | | | | user: test
382 | | | | date: Thu Jan 01 00:00:12 1970 +0000
382 | | | | date: Thu Jan 01 00:00:12 1970 +0000
383 | | | | summary: (12) merge two known; one immediate right, one far left
383 | | | | summary: (12) merge two known; one immediate right, one far left
384 | | | |
384 | | | |
385 | o | | changeset: 11:832d76e6bdf2
385 | o | | changeset: 11:832d76e6bdf2
386 | |\ \ \ parent: 6:b105a072e251
386 | |\ \ \ parent: 6:b105a072e251
387 | | | | | parent: 10:74c64d036d72
387 | | | | | parent: 10:74c64d036d72
388 | | | | | user: test
388 | | | | | user: test
389 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
389 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
390 | | | | | summary: (11) expand
390 | | | | | summary: (11) expand
391 | | | | |
391 | | | | |
392 | | o---+ changeset: 10:74c64d036d72
392 | | o---+ changeset: 10:74c64d036d72
393 | | | | | parent: 0:e6eb3150255d
393 | | | | | parent: 0:e6eb3150255d
394 | |/ / / parent: 6:b105a072e251
394 | |/ / / parent: 6:b105a072e251
395 | | | | user: test
395 | | | | user: test
396 | | | | date: Thu Jan 01 00:00:10 1970 +0000
396 | | | | date: Thu Jan 01 00:00:10 1970 +0000
397 | | | | summary: (10) merge two known; one immediate left, one near right
397 | | | | summary: (10) merge two known; one immediate left, one near right
398 | | | |
398 | | | |
399 o | | | changeset: 9:7010c0af0a35
399 o | | | changeset: 9:7010c0af0a35
400 |\ \ \ \ parent: 7:b632bb1b1224
400 |\ \ \ \ parent: 7:b632bb1b1224
401 | | | | | parent: 8:7a0b11f71937
401 | | | | | parent: 8:7a0b11f71937
402 | | | | | user: test
402 | | | | | user: test
403 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
403 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
404 | | | | | summary: (9) expand
404 | | | | | summary: (9) expand
405 | | | | |
405 | | | | |
406 | o-----+ changeset: 8:7a0b11f71937
406 | o-----+ changeset: 8:7a0b11f71937
407 | | | | | parent: 0:e6eb3150255d
407 | | | | | parent: 0:e6eb3150255d
408 |/ / / / parent: 7:b632bb1b1224
408 |/ / / / parent: 7:b632bb1b1224
409 | | | | user: test
409 | | | | user: test
410 | | | | date: Thu Jan 01 00:00:08 1970 +0000
410 | | | | date: Thu Jan 01 00:00:08 1970 +0000
411 | | | | summary: (8) merge two known; one immediate left, one far right
411 | | | | summary: (8) merge two known; one immediate left, one far right
412 | | | |
412 | | | |
413 o | | | changeset: 7:b632bb1b1224
413 o | | | changeset: 7:b632bb1b1224
414 |\ \ \ \ parent: 2:3d9a33b8d1e1
414 |\ \ \ \ parent: 2:3d9a33b8d1e1
415 | | | | | parent: 5:4409d547b708
415 | | | | | parent: 5:4409d547b708
416 | | | | | user: test
416 | | | | | user: test
417 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
417 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
418 | | | | | summary: (7) expand
418 | | | | | summary: (7) expand
419 | | | | |
419 | | | | |
420 +---o | | changeset: 6:b105a072e251
420 +---o | | changeset: 6:b105a072e251
421 | |/ / / parent: 2:3d9a33b8d1e1
421 | |/ / / parent: 2:3d9a33b8d1e1
422 | | | | parent: 5:4409d547b708
422 | | | | parent: 5:4409d547b708
423 | | | | user: test
423 | | | | user: test
424 | | | | date: Thu Jan 01 00:00:06 1970 +0000
424 | | | | date: Thu Jan 01 00:00:06 1970 +0000
425 | | | | summary: (6) merge two known; one immediate left, one far left
425 | | | | summary: (6) merge two known; one immediate left, one far left
426 | | | |
426 | | | |
427 | o | | changeset: 5:4409d547b708
427 | o | | changeset: 5:4409d547b708
428 | |\ \ \ parent: 3:27eef8ed80b4
428 | |\ \ \ parent: 3:27eef8ed80b4
429 | | | | | parent: 4:26a8bac39d9f
429 | | | | | parent: 4:26a8bac39d9f
430 | | | | | user: test
430 | | | | | user: test
431 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
431 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
432 | | | | | summary: (5) expand
432 | | | | | summary: (5) expand
433 | | | | |
433 | | | | |
434 | | o | | changeset: 4:26a8bac39d9f
434 | | o | | changeset: 4:26a8bac39d9f
435 | |/|/ / parent: 1:6db2ef61d156
435 | |/|/ / parent: 1:6db2ef61d156
436 | | | | parent: 3:27eef8ed80b4
436 | | | | parent: 3:27eef8ed80b4
437 | | | | user: test
437 | | | | user: test
438 | | | | date: Thu Jan 01 00:00:04 1970 +0000
438 | | | | date: Thu Jan 01 00:00:04 1970 +0000
439 | | | | summary: (4) merge two known; one immediate left, one immediate right
439 | | | | summary: (4) merge two known; one immediate left, one immediate right
440 | | | |
440 | | | |
441 | o | | changeset: 3:27eef8ed80b4
441 | o | | changeset: 3:27eef8ed80b4
442 |/ / / user: test
442 |/ / / user: test
443 | | | date: Thu Jan 01 00:00:03 1970 +0000
443 | | | date: Thu Jan 01 00:00:03 1970 +0000
444 | | | summary: (3) collapse
444 | | | summary: (3) collapse
445 | | |
445 | | |
446 o | | changeset: 2:3d9a33b8d1e1
446 o | | changeset: 2:3d9a33b8d1e1
447 |/ / user: test
447 |/ / user: test
448 | | date: Thu Jan 01 00:00:02 1970 +0000
448 | | date: Thu Jan 01 00:00:02 1970 +0000
449 | | summary: (2) collapse
449 | | summary: (2) collapse
450 | |
450 | |
451 o | changeset: 1:6db2ef61d156
451 o | changeset: 1:6db2ef61d156
452 |/ user: test
452 |/ user: test
453 | date: Thu Jan 01 00:00:01 1970 +0000
453 | date: Thu Jan 01 00:00:01 1970 +0000
454 | summary: (1) collapse
454 | summary: (1) collapse
455 |
455 |
456 o changeset: 0:e6eb3150255d
456 o changeset: 0:e6eb3150255d
457 user: test
457 user: test
458 date: Thu Jan 01 00:00:00 1970 +0000
458 date: Thu Jan 01 00:00:00 1970 +0000
459 summary: (0) root
459 summary: (0) root
460
460
461
461
462 File glog:
462 File glog:
463 $ hg log -G a
463 $ hg log -G a
464 @ changeset: 34:fea3ac5810e0
464 @ changeset: 34:fea3ac5810e0
465 | tag: tip
465 | tag: tip
466 | parent: 32:d06dffa21a31
466 | parent: 32:d06dffa21a31
467 | user: test
467 | user: test
468 | date: Thu Jan 01 00:00:34 1970 +0000
468 | date: Thu Jan 01 00:00:34 1970 +0000
469 | summary: (34) head
469 | summary: (34) head
470 |
470 |
471 | o changeset: 33:68608f5145f9
471 | o changeset: 33:68608f5145f9
472 | | parent: 18:1aa84d96232a
472 | | parent: 18:1aa84d96232a
473 | | user: test
473 | | user: test
474 | | date: Thu Jan 01 00:00:33 1970 +0000
474 | | date: Thu Jan 01 00:00:33 1970 +0000
475 | | summary: (33) head
475 | | summary: (33) head
476 | |
476 | |
477 o | changeset: 32:d06dffa21a31
477 o | changeset: 32:d06dffa21a31
478 |\ \ parent: 27:886ed638191b
478 |\ \ parent: 27:886ed638191b
479 | | | parent: 31:621d83e11f67
479 | | | parent: 31:621d83e11f67
480 | | | user: test
480 | | | user: test
481 | | | date: Thu Jan 01 00:00:32 1970 +0000
481 | | | date: Thu Jan 01 00:00:32 1970 +0000
482 | | | summary: (32) expand
482 | | | summary: (32) expand
483 | | |
483 | | |
484 | o | changeset: 31:621d83e11f67
484 | o | changeset: 31:621d83e11f67
485 | |\ \ parent: 21:d42a756af44d
485 | |\ \ parent: 21:d42a756af44d
486 | | | | parent: 30:6e11cd4b648f
486 | | | | parent: 30:6e11cd4b648f
487 | | | | user: test
487 | | | | user: test
488 | | | | date: Thu Jan 01 00:00:31 1970 +0000
488 | | | | date: Thu Jan 01 00:00:31 1970 +0000
489 | | | | summary: (31) expand
489 | | | | summary: (31) expand
490 | | | |
490 | | | |
491 | | o | changeset: 30:6e11cd4b648f
491 | | o | changeset: 30:6e11cd4b648f
492 | | |\ \ parent: 28:44ecd0b9ae99
492 | | |\ \ parent: 28:44ecd0b9ae99
493 | | | | | parent: 29:cd9bb2be7593
493 | | | | | parent: 29:cd9bb2be7593
494 | | | | | user: test
494 | | | | | user: test
495 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
495 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
496 | | | | | summary: (30) expand
496 | | | | | summary: (30) expand
497 | | | | |
497 | | | | |
498 | | | o | changeset: 29:cd9bb2be7593
498 | | | o | changeset: 29:cd9bb2be7593
499 | | | | | parent: 0:e6eb3150255d
499 | | | | | parent: 0:e6eb3150255d
500 | | | | | user: test
500 | | | | | user: test
501 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
501 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
502 | | | | | summary: (29) regular commit
502 | | | | | summary: (29) regular commit
503 | | | | |
503 | | | | |
504 | | o | | changeset: 28:44ecd0b9ae99
504 | | o | | changeset: 28:44ecd0b9ae99
505 | | |\ \ \ parent: 1:6db2ef61d156
505 | | |\ \ \ parent: 1:6db2ef61d156
506 | | | | | | parent: 26:7f25b6c2f0b9
506 | | | | | | parent: 26:7f25b6c2f0b9
507 | | | | | | user: test
507 | | | | | | user: test
508 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
508 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
509 | | | | | | summary: (28) merge zero known
509 | | | | | | summary: (28) merge zero known
510 | | | | | |
510 | | | | | |
511 o | | | | | changeset: 27:886ed638191b
511 o | | | | | changeset: 27:886ed638191b
512 |/ / / / / parent: 21:d42a756af44d
512 |/ / / / / parent: 21:d42a756af44d
513 | | | | | user: test
513 | | | | | user: test
514 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
514 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
515 | | | | | summary: (27) collapse
515 | | | | | summary: (27) collapse
516 | | | | |
516 | | | | |
517 | | o---+ changeset: 26:7f25b6c2f0b9
517 | | o---+ changeset: 26:7f25b6c2f0b9
518 | | | | | parent: 18:1aa84d96232a
518 | | | | | parent: 18:1aa84d96232a
519 | | | | | parent: 25:91da8ed57247
519 | | | | | parent: 25:91da8ed57247
520 | | | | | user: test
520 | | | | | user: test
521 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
521 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
522 | | | | | summary: (26) merge one known; far right
522 | | | | | summary: (26) merge one known; far right
523 | | | | |
523 | | | | |
524 +---o | | changeset: 25:91da8ed57247
524 +---o | | changeset: 25:91da8ed57247
525 | | | | | parent: 21:d42a756af44d
525 | | | | | parent: 21:d42a756af44d
526 | | | | | parent: 24:a9c19a3d96b7
526 | | | | | parent: 24:a9c19a3d96b7
527 | | | | | user: test
527 | | | | | user: test
528 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
528 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
529 | | | | | summary: (25) merge one known; far left
529 | | | | | summary: (25) merge one known; far left
530 | | | | |
530 | | | | |
531 | | o | | changeset: 24:a9c19a3d96b7
531 | | o | | changeset: 24:a9c19a3d96b7
532 | | |\| | parent: 0:e6eb3150255d
532 | | |\| | parent: 0:e6eb3150255d
533 | | | | | parent: 23:a01cddf0766d
533 | | | | | parent: 23:a01cddf0766d
534 | | | | | user: test
534 | | | | | user: test
535 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
535 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
536 | | | | | summary: (24) merge one known; immediate right
536 | | | | | summary: (24) merge one known; immediate right
537 | | | | |
537 | | | | |
538 | | o | | changeset: 23:a01cddf0766d
538 | | o | | changeset: 23:a01cddf0766d
539 | |/| | | parent: 1:6db2ef61d156
539 | |/| | | parent: 1:6db2ef61d156
540 | | | | | parent: 22:e0d9cccacb5d
540 | | | | | parent: 22:e0d9cccacb5d
541 | | | | | user: test
541 | | | | | user: test
542 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
542 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
543 | | | | | summary: (23) merge one known; immediate left
543 | | | | | summary: (23) merge one known; immediate left
544 | | | | |
544 | | | | |
545 +---o---+ changeset: 22:e0d9cccacb5d
545 +---o---+ changeset: 22:e0d9cccacb5d
546 | | | | parent: 18:1aa84d96232a
546 | | | | parent: 18:1aa84d96232a
547 | | / / parent: 21:d42a756af44d
547 | | / / parent: 21:d42a756af44d
548 | | | | user: test
548 | | | | user: test
549 | | | | date: Thu Jan 01 00:00:22 1970 +0000
549 | | | | date: Thu Jan 01 00:00:22 1970 +0000
550 | | | | summary: (22) merge two known; one far left, one far right
550 | | | | summary: (22) merge two known; one far left, one far right
551 | | | |
551 | | | |
552 o | | | changeset: 21:d42a756af44d
552 o | | | changeset: 21:d42a756af44d
553 |\ \ \ \ parent: 19:31ddc2c1573b
553 |\ \ \ \ parent: 19:31ddc2c1573b
554 | | | | | parent: 20:d30ed6450e32
554 | | | | | parent: 20:d30ed6450e32
555 | | | | | user: test
555 | | | | | user: test
556 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
556 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
557 | | | | | summary: (21) expand
557 | | | | | summary: (21) expand
558 | | | | |
558 | | | | |
559 | o---+-+ changeset: 20:d30ed6450e32
559 | o---+-+ changeset: 20:d30ed6450e32
560 | | | | parent: 0:e6eb3150255d
560 | | | | parent: 0:e6eb3150255d
561 | / / / parent: 18:1aa84d96232a
561 | / / / parent: 18:1aa84d96232a
562 | | | | user: test
562 | | | | user: test
563 | | | | date: Thu Jan 01 00:00:20 1970 +0000
563 | | | | date: Thu Jan 01 00:00:20 1970 +0000
564 | | | | summary: (20) merge two known; two far right
564 | | | | summary: (20) merge two known; two far right
565 | | | |
565 | | | |
566 o | | | changeset: 19:31ddc2c1573b
566 o | | | changeset: 19:31ddc2c1573b
567 |\ \ \ \ parent: 15:1dda3f72782d
567 |\ \ \ \ parent: 15:1dda3f72782d
568 | | | | | parent: 17:44765d7c06e0
568 | | | | | parent: 17:44765d7c06e0
569 | | | | | user: test
569 | | | | | user: test
570 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
570 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
571 | | | | | summary: (19) expand
571 | | | | | summary: (19) expand
572 | | | | |
572 | | | | |
573 +---+---o changeset: 18:1aa84d96232a
573 +---+---o changeset: 18:1aa84d96232a
574 | | | | parent: 1:6db2ef61d156
574 | | | | parent: 1:6db2ef61d156
575 | | | | parent: 15:1dda3f72782d
575 | | | | parent: 15:1dda3f72782d
576 | | | | user: test
576 | | | | user: test
577 | | | | date: Thu Jan 01 00:00:18 1970 +0000
577 | | | | date: Thu Jan 01 00:00:18 1970 +0000
578 | | | | summary: (18) merge two known; two far left
578 | | | | summary: (18) merge two known; two far left
579 | | | |
579 | | | |
580 | o | | changeset: 17:44765d7c06e0
580 | o | | changeset: 17:44765d7c06e0
581 | |\ \ \ parent: 12:86b91144a6e9
581 | |\ \ \ parent: 12:86b91144a6e9
582 | | | | | parent: 16:3677d192927d
582 | | | | | parent: 16:3677d192927d
583 | | | | | user: test
583 | | | | | user: test
584 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
584 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
585 | | | | | summary: (17) expand
585 | | | | | summary: (17) expand
586 | | | | |
586 | | | | |
587 | | o---+ changeset: 16:3677d192927d
587 | | o---+ changeset: 16:3677d192927d
588 | | | | | parent: 0:e6eb3150255d
588 | | | | | parent: 0:e6eb3150255d
589 | | |/ / parent: 1:6db2ef61d156
589 | | |/ / parent: 1:6db2ef61d156
590 | | | | user: test
590 | | | | user: test
591 | | | | date: Thu Jan 01 00:00:16 1970 +0000
591 | | | | date: Thu Jan 01 00:00:16 1970 +0000
592 | | | | summary: (16) merge two known; one immediate right, one near right
592 | | | | summary: (16) merge two known; one immediate right, one near right
593 | | | |
593 | | | |
594 o | | | changeset: 15:1dda3f72782d
594 o | | | changeset: 15:1dda3f72782d
595 |\ \ \ \ parent: 13:22d8966a97e3
595 |\ \ \ \ parent: 13:22d8966a97e3
596 | | | | | parent: 14:8eac370358ef
596 | | | | | parent: 14:8eac370358ef
597 | | | | | user: test
597 | | | | | user: test
598 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
598 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
599 | | | | | summary: (15) expand
599 | | | | | summary: (15) expand
600 | | | | |
600 | | | | |
601 | o-----+ changeset: 14:8eac370358ef
601 | o-----+ changeset: 14:8eac370358ef
602 | | | | | parent: 0:e6eb3150255d
602 | | | | | parent: 0:e6eb3150255d
603 | |/ / / parent: 12:86b91144a6e9
603 | |/ / / parent: 12:86b91144a6e9
604 | | | | user: test
604 | | | | user: test
605 | | | | date: Thu Jan 01 00:00:14 1970 +0000
605 | | | | date: Thu Jan 01 00:00:14 1970 +0000
606 | | | | summary: (14) merge two known; one immediate right, one far right
606 | | | | summary: (14) merge two known; one immediate right, one far right
607 | | | |
607 | | | |
608 o | | | changeset: 13:22d8966a97e3
608 o | | | changeset: 13:22d8966a97e3
609 |\ \ \ \ parent: 9:7010c0af0a35
609 |\ \ \ \ parent: 9:7010c0af0a35
610 | | | | | parent: 11:832d76e6bdf2
610 | | | | | parent: 11:832d76e6bdf2
611 | | | | | user: test
611 | | | | | user: test
612 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
612 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
613 | | | | | summary: (13) expand
613 | | | | | summary: (13) expand
614 | | | | |
614 | | | | |
615 +---o | | changeset: 12:86b91144a6e9
615 +---o | | changeset: 12:86b91144a6e9
616 | | |/ / parent: 1:6db2ef61d156
616 | | |/ / parent: 1:6db2ef61d156
617 | | | | parent: 9:7010c0af0a35
617 | | | | parent: 9:7010c0af0a35
618 | | | | user: test
618 | | | | user: test
619 | | | | date: Thu Jan 01 00:00:12 1970 +0000
619 | | | | date: Thu Jan 01 00:00:12 1970 +0000
620 | | | | summary: (12) merge two known; one immediate right, one far left
620 | | | | summary: (12) merge two known; one immediate right, one far left
621 | | | |
621 | | | |
622 | o | | changeset: 11:832d76e6bdf2
622 | o | | changeset: 11:832d76e6bdf2
623 | |\ \ \ parent: 6:b105a072e251
623 | |\ \ \ parent: 6:b105a072e251
624 | | | | | parent: 10:74c64d036d72
624 | | | | | parent: 10:74c64d036d72
625 | | | | | user: test
625 | | | | | user: test
626 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
626 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
627 | | | | | summary: (11) expand
627 | | | | | summary: (11) expand
628 | | | | |
628 | | | | |
629 | | o---+ changeset: 10:74c64d036d72
629 | | o---+ changeset: 10:74c64d036d72
630 | | | | | parent: 0:e6eb3150255d
630 | | | | | parent: 0:e6eb3150255d
631 | |/ / / parent: 6:b105a072e251
631 | |/ / / parent: 6:b105a072e251
632 | | | | user: test
632 | | | | user: test
633 | | | | date: Thu Jan 01 00:00:10 1970 +0000
633 | | | | date: Thu Jan 01 00:00:10 1970 +0000
634 | | | | summary: (10) merge two known; one immediate left, one near right
634 | | | | summary: (10) merge two known; one immediate left, one near right
635 | | | |
635 | | | |
636 o | | | changeset: 9:7010c0af0a35
636 o | | | changeset: 9:7010c0af0a35
637 |\ \ \ \ parent: 7:b632bb1b1224
637 |\ \ \ \ parent: 7:b632bb1b1224
638 | | | | | parent: 8:7a0b11f71937
638 | | | | | parent: 8:7a0b11f71937
639 | | | | | user: test
639 | | | | | user: test
640 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
640 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
641 | | | | | summary: (9) expand
641 | | | | | summary: (9) expand
642 | | | | |
642 | | | | |
643 | o-----+ changeset: 8:7a0b11f71937
643 | o-----+ changeset: 8:7a0b11f71937
644 | | | | | parent: 0:e6eb3150255d
644 | | | | | parent: 0:e6eb3150255d
645 |/ / / / parent: 7:b632bb1b1224
645 |/ / / / parent: 7:b632bb1b1224
646 | | | | user: test
646 | | | | user: test
647 | | | | date: Thu Jan 01 00:00:08 1970 +0000
647 | | | | date: Thu Jan 01 00:00:08 1970 +0000
648 | | | | summary: (8) merge two known; one immediate left, one far right
648 | | | | summary: (8) merge two known; one immediate left, one far right
649 | | | |
649 | | | |
650 o | | | changeset: 7:b632bb1b1224
650 o | | | changeset: 7:b632bb1b1224
651 |\ \ \ \ parent: 2:3d9a33b8d1e1
651 |\ \ \ \ parent: 2:3d9a33b8d1e1
652 | | | | | parent: 5:4409d547b708
652 | | | | | parent: 5:4409d547b708
653 | | | | | user: test
653 | | | | | user: test
654 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
654 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
655 | | | | | summary: (7) expand
655 | | | | | summary: (7) expand
656 | | | | |
656 | | | | |
657 +---o | | changeset: 6:b105a072e251
657 +---o | | changeset: 6:b105a072e251
658 | |/ / / parent: 2:3d9a33b8d1e1
658 | |/ / / parent: 2:3d9a33b8d1e1
659 | | | | parent: 5:4409d547b708
659 | | | | parent: 5:4409d547b708
660 | | | | user: test
660 | | | | user: test
661 | | | | date: Thu Jan 01 00:00:06 1970 +0000
661 | | | | date: Thu Jan 01 00:00:06 1970 +0000
662 | | | | summary: (6) merge two known; one immediate left, one far left
662 | | | | summary: (6) merge two known; one immediate left, one far left
663 | | | |
663 | | | |
664 | o | | changeset: 5:4409d547b708
664 | o | | changeset: 5:4409d547b708
665 | |\ \ \ parent: 3:27eef8ed80b4
665 | |\ \ \ parent: 3:27eef8ed80b4
666 | | | | | parent: 4:26a8bac39d9f
666 | | | | | parent: 4:26a8bac39d9f
667 | | | | | user: test
667 | | | | | user: test
668 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
668 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
669 | | | | | summary: (5) expand
669 | | | | | summary: (5) expand
670 | | | | |
670 | | | | |
671 | | o | | changeset: 4:26a8bac39d9f
671 | | o | | changeset: 4:26a8bac39d9f
672 | |/|/ / parent: 1:6db2ef61d156
672 | |/|/ / parent: 1:6db2ef61d156
673 | | | | parent: 3:27eef8ed80b4
673 | | | | parent: 3:27eef8ed80b4
674 | | | | user: test
674 | | | | user: test
675 | | | | date: Thu Jan 01 00:00:04 1970 +0000
675 | | | | date: Thu Jan 01 00:00:04 1970 +0000
676 | | | | summary: (4) merge two known; one immediate left, one immediate right
676 | | | | summary: (4) merge two known; one immediate left, one immediate right
677 | | | |
677 | | | |
678 | o | | changeset: 3:27eef8ed80b4
678 | o | | changeset: 3:27eef8ed80b4
679 |/ / / user: test
679 |/ / / user: test
680 | | | date: Thu Jan 01 00:00:03 1970 +0000
680 | | | date: Thu Jan 01 00:00:03 1970 +0000
681 | | | summary: (3) collapse
681 | | | summary: (3) collapse
682 | | |
682 | | |
683 o | | changeset: 2:3d9a33b8d1e1
683 o | | changeset: 2:3d9a33b8d1e1
684 |/ / user: test
684 |/ / user: test
685 | | date: Thu Jan 01 00:00:02 1970 +0000
685 | | date: Thu Jan 01 00:00:02 1970 +0000
686 | | summary: (2) collapse
686 | | summary: (2) collapse
687 | |
687 | |
688 o | changeset: 1:6db2ef61d156
688 o | changeset: 1:6db2ef61d156
689 |/ user: test
689 |/ user: test
690 | date: Thu Jan 01 00:00:01 1970 +0000
690 | date: Thu Jan 01 00:00:01 1970 +0000
691 | summary: (1) collapse
691 | summary: (1) collapse
692 |
692 |
693 o changeset: 0:e6eb3150255d
693 o changeset: 0:e6eb3150255d
694 user: test
694 user: test
695 date: Thu Jan 01 00:00:00 1970 +0000
695 date: Thu Jan 01 00:00:00 1970 +0000
696 summary: (0) root
696 summary: (0) root
697
697
698
698
699 File glog per revset:
699 File glog per revset:
700
700
701 $ hg log -G -r 'file("a")'
701 $ hg log -G -r 'file("a")'
702 @ changeset: 34:fea3ac5810e0
702 @ changeset: 34:fea3ac5810e0
703 | tag: tip
703 | tag: tip
704 | parent: 32:d06dffa21a31
704 | parent: 32:d06dffa21a31
705 | user: test
705 | user: test
706 | date: Thu Jan 01 00:00:34 1970 +0000
706 | date: Thu Jan 01 00:00:34 1970 +0000
707 | summary: (34) head
707 | summary: (34) head
708 |
708 |
709 | o changeset: 33:68608f5145f9
709 | o changeset: 33:68608f5145f9
710 | | parent: 18:1aa84d96232a
710 | | parent: 18:1aa84d96232a
711 | | user: test
711 | | user: test
712 | | date: Thu Jan 01 00:00:33 1970 +0000
712 | | date: Thu Jan 01 00:00:33 1970 +0000
713 | | summary: (33) head
713 | | summary: (33) head
714 | |
714 | |
715 o | changeset: 32:d06dffa21a31
715 o | changeset: 32:d06dffa21a31
716 |\ \ parent: 27:886ed638191b
716 |\ \ parent: 27:886ed638191b
717 | | | parent: 31:621d83e11f67
717 | | | parent: 31:621d83e11f67
718 | | | user: test
718 | | | user: test
719 | | | date: Thu Jan 01 00:00:32 1970 +0000
719 | | | date: Thu Jan 01 00:00:32 1970 +0000
720 | | | summary: (32) expand
720 | | | summary: (32) expand
721 | | |
721 | | |
722 | o | changeset: 31:621d83e11f67
722 | o | changeset: 31:621d83e11f67
723 | |\ \ parent: 21:d42a756af44d
723 | |\ \ parent: 21:d42a756af44d
724 | | | | parent: 30:6e11cd4b648f
724 | | | | parent: 30:6e11cd4b648f
725 | | | | user: test
725 | | | | user: test
726 | | | | date: Thu Jan 01 00:00:31 1970 +0000
726 | | | | date: Thu Jan 01 00:00:31 1970 +0000
727 | | | | summary: (31) expand
727 | | | | summary: (31) expand
728 | | | |
728 | | | |
729 | | o | changeset: 30:6e11cd4b648f
729 | | o | changeset: 30:6e11cd4b648f
730 | | |\ \ parent: 28:44ecd0b9ae99
730 | | |\ \ parent: 28:44ecd0b9ae99
731 | | | | | parent: 29:cd9bb2be7593
731 | | | | | parent: 29:cd9bb2be7593
732 | | | | | user: test
732 | | | | | user: test
733 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
733 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
734 | | | | | summary: (30) expand
734 | | | | | summary: (30) expand
735 | | | | |
735 | | | | |
736 | | | o | changeset: 29:cd9bb2be7593
736 | | | o | changeset: 29:cd9bb2be7593
737 | | | | | parent: 0:e6eb3150255d
737 | | | | | parent: 0:e6eb3150255d
738 | | | | | user: test
738 | | | | | user: test
739 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
739 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
740 | | | | | summary: (29) regular commit
740 | | | | | summary: (29) regular commit
741 | | | | |
741 | | | | |
742 | | o | | changeset: 28:44ecd0b9ae99
742 | | o | | changeset: 28:44ecd0b9ae99
743 | | |\ \ \ parent: 1:6db2ef61d156
743 | | |\ \ \ parent: 1:6db2ef61d156
744 | | | | | | parent: 26:7f25b6c2f0b9
744 | | | | | | parent: 26:7f25b6c2f0b9
745 | | | | | | user: test
745 | | | | | | user: test
746 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
746 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
747 | | | | | | summary: (28) merge zero known
747 | | | | | | summary: (28) merge zero known
748 | | | | | |
748 | | | | | |
749 o | | | | | changeset: 27:886ed638191b
749 o | | | | | changeset: 27:886ed638191b
750 |/ / / / / parent: 21:d42a756af44d
750 |/ / / / / parent: 21:d42a756af44d
751 | | | | | user: test
751 | | | | | user: test
752 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
752 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
753 | | | | | summary: (27) collapse
753 | | | | | summary: (27) collapse
754 | | | | |
754 | | | | |
755 | | o---+ changeset: 26:7f25b6c2f0b9
755 | | o---+ changeset: 26:7f25b6c2f0b9
756 | | | | | parent: 18:1aa84d96232a
756 | | | | | parent: 18:1aa84d96232a
757 | | | | | parent: 25:91da8ed57247
757 | | | | | parent: 25:91da8ed57247
758 | | | | | user: test
758 | | | | | user: test
759 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
759 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
760 | | | | | summary: (26) merge one known; far right
760 | | | | | summary: (26) merge one known; far right
761 | | | | |
761 | | | | |
762 +---o | | changeset: 25:91da8ed57247
762 +---o | | changeset: 25:91da8ed57247
763 | | | | | parent: 21:d42a756af44d
763 | | | | | parent: 21:d42a756af44d
764 | | | | | parent: 24:a9c19a3d96b7
764 | | | | | parent: 24:a9c19a3d96b7
765 | | | | | user: test
765 | | | | | user: test
766 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
766 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
767 | | | | | summary: (25) merge one known; far left
767 | | | | | summary: (25) merge one known; far left
768 | | | | |
768 | | | | |
769 | | o | | changeset: 24:a9c19a3d96b7
769 | | o | | changeset: 24:a9c19a3d96b7
770 | | |\| | parent: 0:e6eb3150255d
770 | | |\| | parent: 0:e6eb3150255d
771 | | | | | parent: 23:a01cddf0766d
771 | | | | | parent: 23:a01cddf0766d
772 | | | | | user: test
772 | | | | | user: test
773 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
773 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
774 | | | | | summary: (24) merge one known; immediate right
774 | | | | | summary: (24) merge one known; immediate right
775 | | | | |
775 | | | | |
776 | | o | | changeset: 23:a01cddf0766d
776 | | o | | changeset: 23:a01cddf0766d
777 | |/| | | parent: 1:6db2ef61d156
777 | |/| | | parent: 1:6db2ef61d156
778 | | | | | parent: 22:e0d9cccacb5d
778 | | | | | parent: 22:e0d9cccacb5d
779 | | | | | user: test
779 | | | | | user: test
780 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
780 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
781 | | | | | summary: (23) merge one known; immediate left
781 | | | | | summary: (23) merge one known; immediate left
782 | | | | |
782 | | | | |
783 +---o---+ changeset: 22:e0d9cccacb5d
783 +---o---+ changeset: 22:e0d9cccacb5d
784 | | | | parent: 18:1aa84d96232a
784 | | | | parent: 18:1aa84d96232a
785 | | / / parent: 21:d42a756af44d
785 | | / / parent: 21:d42a756af44d
786 | | | | user: test
786 | | | | user: test
787 | | | | date: Thu Jan 01 00:00:22 1970 +0000
787 | | | | date: Thu Jan 01 00:00:22 1970 +0000
788 | | | | summary: (22) merge two known; one far left, one far right
788 | | | | summary: (22) merge two known; one far left, one far right
789 | | | |
789 | | | |
790 o | | | changeset: 21:d42a756af44d
790 o | | | changeset: 21:d42a756af44d
791 |\ \ \ \ parent: 19:31ddc2c1573b
791 |\ \ \ \ parent: 19:31ddc2c1573b
792 | | | | | parent: 20:d30ed6450e32
792 | | | | | parent: 20:d30ed6450e32
793 | | | | | user: test
793 | | | | | user: test
794 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
794 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
795 | | | | | summary: (21) expand
795 | | | | | summary: (21) expand
796 | | | | |
796 | | | | |
797 | o---+-+ changeset: 20:d30ed6450e32
797 | o---+-+ changeset: 20:d30ed6450e32
798 | | | | parent: 0:e6eb3150255d
798 | | | | parent: 0:e6eb3150255d
799 | / / / parent: 18:1aa84d96232a
799 | / / / parent: 18:1aa84d96232a
800 | | | | user: test
800 | | | | user: test
801 | | | | date: Thu Jan 01 00:00:20 1970 +0000
801 | | | | date: Thu Jan 01 00:00:20 1970 +0000
802 | | | | summary: (20) merge two known; two far right
802 | | | | summary: (20) merge two known; two far right
803 | | | |
803 | | | |
804 o | | | changeset: 19:31ddc2c1573b
804 o | | | changeset: 19:31ddc2c1573b
805 |\ \ \ \ parent: 15:1dda3f72782d
805 |\ \ \ \ parent: 15:1dda3f72782d
806 | | | | | parent: 17:44765d7c06e0
806 | | | | | parent: 17:44765d7c06e0
807 | | | | | user: test
807 | | | | | user: test
808 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
808 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
809 | | | | | summary: (19) expand
809 | | | | | summary: (19) expand
810 | | | | |
810 | | | | |
811 +---+---o changeset: 18:1aa84d96232a
811 +---+---o changeset: 18:1aa84d96232a
812 | | | | parent: 1:6db2ef61d156
812 | | | | parent: 1:6db2ef61d156
813 | | | | parent: 15:1dda3f72782d
813 | | | | parent: 15:1dda3f72782d
814 | | | | user: test
814 | | | | user: test
815 | | | | date: Thu Jan 01 00:00:18 1970 +0000
815 | | | | date: Thu Jan 01 00:00:18 1970 +0000
816 | | | | summary: (18) merge two known; two far left
816 | | | | summary: (18) merge two known; two far left
817 | | | |
817 | | | |
818 | o | | changeset: 17:44765d7c06e0
818 | o | | changeset: 17:44765d7c06e0
819 | |\ \ \ parent: 12:86b91144a6e9
819 | |\ \ \ parent: 12:86b91144a6e9
820 | | | | | parent: 16:3677d192927d
820 | | | | | parent: 16:3677d192927d
821 | | | | | user: test
821 | | | | | user: test
822 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
822 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
823 | | | | | summary: (17) expand
823 | | | | | summary: (17) expand
824 | | | | |
824 | | | | |
825 | | o---+ changeset: 16:3677d192927d
825 | | o---+ changeset: 16:3677d192927d
826 | | | | | parent: 0:e6eb3150255d
826 | | | | | parent: 0:e6eb3150255d
827 | | |/ / parent: 1:6db2ef61d156
827 | | |/ / parent: 1:6db2ef61d156
828 | | | | user: test
828 | | | | user: test
829 | | | | date: Thu Jan 01 00:00:16 1970 +0000
829 | | | | date: Thu Jan 01 00:00:16 1970 +0000
830 | | | | summary: (16) merge two known; one immediate right, one near right
830 | | | | summary: (16) merge two known; one immediate right, one near right
831 | | | |
831 | | | |
832 o | | | changeset: 15:1dda3f72782d
832 o | | | changeset: 15:1dda3f72782d
833 |\ \ \ \ parent: 13:22d8966a97e3
833 |\ \ \ \ parent: 13:22d8966a97e3
834 | | | | | parent: 14:8eac370358ef
834 | | | | | parent: 14:8eac370358ef
835 | | | | | user: test
835 | | | | | user: test
836 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
836 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
837 | | | | | summary: (15) expand
837 | | | | | summary: (15) expand
838 | | | | |
838 | | | | |
839 | o-----+ changeset: 14:8eac370358ef
839 | o-----+ changeset: 14:8eac370358ef
840 | | | | | parent: 0:e6eb3150255d
840 | | | | | parent: 0:e6eb3150255d
841 | |/ / / parent: 12:86b91144a6e9
841 | |/ / / parent: 12:86b91144a6e9
842 | | | | user: test
842 | | | | user: test
843 | | | | date: Thu Jan 01 00:00:14 1970 +0000
843 | | | | date: Thu Jan 01 00:00:14 1970 +0000
844 | | | | summary: (14) merge two known; one immediate right, one far right
844 | | | | summary: (14) merge two known; one immediate right, one far right
845 | | | |
845 | | | |
846 o | | | changeset: 13:22d8966a97e3
846 o | | | changeset: 13:22d8966a97e3
847 |\ \ \ \ parent: 9:7010c0af0a35
847 |\ \ \ \ parent: 9:7010c0af0a35
848 | | | | | parent: 11:832d76e6bdf2
848 | | | | | parent: 11:832d76e6bdf2
849 | | | | | user: test
849 | | | | | user: test
850 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
850 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
851 | | | | | summary: (13) expand
851 | | | | | summary: (13) expand
852 | | | | |
852 | | | | |
853 +---o | | changeset: 12:86b91144a6e9
853 +---o | | changeset: 12:86b91144a6e9
854 | | |/ / parent: 1:6db2ef61d156
854 | | |/ / parent: 1:6db2ef61d156
855 | | | | parent: 9:7010c0af0a35
855 | | | | parent: 9:7010c0af0a35
856 | | | | user: test
856 | | | | user: test
857 | | | | date: Thu Jan 01 00:00:12 1970 +0000
857 | | | | date: Thu Jan 01 00:00:12 1970 +0000
858 | | | | summary: (12) merge two known; one immediate right, one far left
858 | | | | summary: (12) merge two known; one immediate right, one far left
859 | | | |
859 | | | |
860 | o | | changeset: 11:832d76e6bdf2
860 | o | | changeset: 11:832d76e6bdf2
861 | |\ \ \ parent: 6:b105a072e251
861 | |\ \ \ parent: 6:b105a072e251
862 | | | | | parent: 10:74c64d036d72
862 | | | | | parent: 10:74c64d036d72
863 | | | | | user: test
863 | | | | | user: test
864 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
864 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
865 | | | | | summary: (11) expand
865 | | | | | summary: (11) expand
866 | | | | |
866 | | | | |
867 | | o---+ changeset: 10:74c64d036d72
867 | | o---+ changeset: 10:74c64d036d72
868 | | | | | parent: 0:e6eb3150255d
868 | | | | | parent: 0:e6eb3150255d
869 | |/ / / parent: 6:b105a072e251
869 | |/ / / parent: 6:b105a072e251
870 | | | | user: test
870 | | | | user: test
871 | | | | date: Thu Jan 01 00:00:10 1970 +0000
871 | | | | date: Thu Jan 01 00:00:10 1970 +0000
872 | | | | summary: (10) merge two known; one immediate left, one near right
872 | | | | summary: (10) merge two known; one immediate left, one near right
873 | | | |
873 | | | |
874 o | | | changeset: 9:7010c0af0a35
874 o | | | changeset: 9:7010c0af0a35
875 |\ \ \ \ parent: 7:b632bb1b1224
875 |\ \ \ \ parent: 7:b632bb1b1224
876 | | | | | parent: 8:7a0b11f71937
876 | | | | | parent: 8:7a0b11f71937
877 | | | | | user: test
877 | | | | | user: test
878 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
878 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
879 | | | | | summary: (9) expand
879 | | | | | summary: (9) expand
880 | | | | |
880 | | | | |
881 | o-----+ changeset: 8:7a0b11f71937
881 | o-----+ changeset: 8:7a0b11f71937
882 | | | | | parent: 0:e6eb3150255d
882 | | | | | parent: 0:e6eb3150255d
883 |/ / / / parent: 7:b632bb1b1224
883 |/ / / / parent: 7:b632bb1b1224
884 | | | | user: test
884 | | | | user: test
885 | | | | date: Thu Jan 01 00:00:08 1970 +0000
885 | | | | date: Thu Jan 01 00:00:08 1970 +0000
886 | | | | summary: (8) merge two known; one immediate left, one far right
886 | | | | summary: (8) merge two known; one immediate left, one far right
887 | | | |
887 | | | |
888 o | | | changeset: 7:b632bb1b1224
888 o | | | changeset: 7:b632bb1b1224
889 |\ \ \ \ parent: 2:3d9a33b8d1e1
889 |\ \ \ \ parent: 2:3d9a33b8d1e1
890 | | | | | parent: 5:4409d547b708
890 | | | | | parent: 5:4409d547b708
891 | | | | | user: test
891 | | | | | user: test
892 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
892 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
893 | | | | | summary: (7) expand
893 | | | | | summary: (7) expand
894 | | | | |
894 | | | | |
895 +---o | | changeset: 6:b105a072e251
895 +---o | | changeset: 6:b105a072e251
896 | |/ / / parent: 2:3d9a33b8d1e1
896 | |/ / / parent: 2:3d9a33b8d1e1
897 | | | | parent: 5:4409d547b708
897 | | | | parent: 5:4409d547b708
898 | | | | user: test
898 | | | | user: test
899 | | | | date: Thu Jan 01 00:00:06 1970 +0000
899 | | | | date: Thu Jan 01 00:00:06 1970 +0000
900 | | | | summary: (6) merge two known; one immediate left, one far left
900 | | | | summary: (6) merge two known; one immediate left, one far left
901 | | | |
901 | | | |
902 | o | | changeset: 5:4409d547b708
902 | o | | changeset: 5:4409d547b708
903 | |\ \ \ parent: 3:27eef8ed80b4
903 | |\ \ \ parent: 3:27eef8ed80b4
904 | | | | | parent: 4:26a8bac39d9f
904 | | | | | parent: 4:26a8bac39d9f
905 | | | | | user: test
905 | | | | | user: test
906 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
906 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
907 | | | | | summary: (5) expand
907 | | | | | summary: (5) expand
908 | | | | |
908 | | | | |
909 | | o | | changeset: 4:26a8bac39d9f
909 | | o | | changeset: 4:26a8bac39d9f
910 | |/|/ / parent: 1:6db2ef61d156
910 | |/|/ / parent: 1:6db2ef61d156
911 | | | | parent: 3:27eef8ed80b4
911 | | | | parent: 3:27eef8ed80b4
912 | | | | user: test
912 | | | | user: test
913 | | | | date: Thu Jan 01 00:00:04 1970 +0000
913 | | | | date: Thu Jan 01 00:00:04 1970 +0000
914 | | | | summary: (4) merge two known; one immediate left, one immediate right
914 | | | | summary: (4) merge two known; one immediate left, one immediate right
915 | | | |
915 | | | |
916 | o | | changeset: 3:27eef8ed80b4
916 | o | | changeset: 3:27eef8ed80b4
917 |/ / / user: test
917 |/ / / user: test
918 | | | date: Thu Jan 01 00:00:03 1970 +0000
918 | | | date: Thu Jan 01 00:00:03 1970 +0000
919 | | | summary: (3) collapse
919 | | | summary: (3) collapse
920 | | |
920 | | |
921 o | | changeset: 2:3d9a33b8d1e1
921 o | | changeset: 2:3d9a33b8d1e1
922 |/ / user: test
922 |/ / user: test
923 | | date: Thu Jan 01 00:00:02 1970 +0000
923 | | date: Thu Jan 01 00:00:02 1970 +0000
924 | | summary: (2) collapse
924 | | summary: (2) collapse
925 | |
925 | |
926 o | changeset: 1:6db2ef61d156
926 o | changeset: 1:6db2ef61d156
927 |/ user: test
927 |/ user: test
928 | date: Thu Jan 01 00:00:01 1970 +0000
928 | date: Thu Jan 01 00:00:01 1970 +0000
929 | summary: (1) collapse
929 | summary: (1) collapse
930 |
930 |
931 o changeset: 0:e6eb3150255d
931 o changeset: 0:e6eb3150255d
932 user: test
932 user: test
933 date: Thu Jan 01 00:00:00 1970 +0000
933 date: Thu Jan 01 00:00:00 1970 +0000
934 summary: (0) root
934 summary: (0) root
935
935
936
936
937
937
938 File glog per revset (only merges):
938 File glog per revset (only merges):
939
939
940 $ hg log -G -r 'file("a")' -m
940 $ hg log -G -r 'file("a")' -m
941 o changeset: 32:d06dffa21a31
941 o changeset: 32:d06dffa21a31
942 |\ parent: 27:886ed638191b
942 |\ parent: 27:886ed638191b
943 | : parent: 31:621d83e11f67
943 | : parent: 31:621d83e11f67
944 | : user: test
944 | : user: test
945 | : date: Thu Jan 01 00:00:32 1970 +0000
945 | : date: Thu Jan 01 00:00:32 1970 +0000
946 | : summary: (32) expand
946 | : summary: (32) expand
947 | :
947 | :
948 o : changeset: 31:621d83e11f67
948 o : changeset: 31:621d83e11f67
949 |\: parent: 21:d42a756af44d
949 |\: parent: 21:d42a756af44d
950 | : parent: 30:6e11cd4b648f
950 | : parent: 30:6e11cd4b648f
951 | : user: test
951 | : user: test
952 | : date: Thu Jan 01 00:00:31 1970 +0000
952 | : date: Thu Jan 01 00:00:31 1970 +0000
953 | : summary: (31) expand
953 | : summary: (31) expand
954 | :
954 | :
955 o : changeset: 30:6e11cd4b648f
955 o : changeset: 30:6e11cd4b648f
956 |\ \ parent: 28:44ecd0b9ae99
956 |\ \ parent: 28:44ecd0b9ae99
957 | ~ : parent: 29:cd9bb2be7593
957 | ~ : parent: 29:cd9bb2be7593
958 | : user: test
958 | : user: test
959 | : date: Thu Jan 01 00:00:30 1970 +0000
959 | : date: Thu Jan 01 00:00:30 1970 +0000
960 | : summary: (30) expand
960 | : summary: (30) expand
961 | /
961 | /
962 o : changeset: 28:44ecd0b9ae99
962 o : changeset: 28:44ecd0b9ae99
963 |\ \ parent: 1:6db2ef61d156
963 |\ \ parent: 1:6db2ef61d156
964 | ~ : parent: 26:7f25b6c2f0b9
964 | ~ : parent: 26:7f25b6c2f0b9
965 | : user: test
965 | : user: test
966 | : date: Thu Jan 01 00:00:28 1970 +0000
966 | : date: Thu Jan 01 00:00:28 1970 +0000
967 | : summary: (28) merge zero known
967 | : summary: (28) merge zero known
968 | /
968 | /
969 o : changeset: 26:7f25b6c2f0b9
969 o : changeset: 26:7f25b6c2f0b9
970 |\ \ parent: 18:1aa84d96232a
970 |\ \ parent: 18:1aa84d96232a
971 | | : parent: 25:91da8ed57247
971 | | : parent: 25:91da8ed57247
972 | | : user: test
972 | | : user: test
973 | | : date: Thu Jan 01 00:00:26 1970 +0000
973 | | : date: Thu Jan 01 00:00:26 1970 +0000
974 | | : summary: (26) merge one known; far right
974 | | : summary: (26) merge one known; far right
975 | | :
975 | | :
976 | o : changeset: 25:91da8ed57247
976 | o : changeset: 25:91da8ed57247
977 | |\: parent: 21:d42a756af44d
977 | |\: parent: 21:d42a756af44d
978 | | : parent: 24:a9c19a3d96b7
978 | | : parent: 24:a9c19a3d96b7
979 | | : user: test
979 | | : user: test
980 | | : date: Thu Jan 01 00:00:25 1970 +0000
980 | | : date: Thu Jan 01 00:00:25 1970 +0000
981 | | : summary: (25) merge one known; far left
981 | | : summary: (25) merge one known; far left
982 | | :
982 | | :
983 | o : changeset: 24:a9c19a3d96b7
983 | o : changeset: 24:a9c19a3d96b7
984 | |\ \ parent: 0:e6eb3150255d
984 | |\ \ parent: 0:e6eb3150255d
985 | | ~ : parent: 23:a01cddf0766d
985 | | ~ : parent: 23:a01cddf0766d
986 | | : user: test
986 | | : user: test
987 | | : date: Thu Jan 01 00:00:24 1970 +0000
987 | | : date: Thu Jan 01 00:00:24 1970 +0000
988 | | : summary: (24) merge one known; immediate right
988 | | : summary: (24) merge one known; immediate right
989 | | /
989 | | /
990 | o : changeset: 23:a01cddf0766d
990 | o : changeset: 23:a01cddf0766d
991 | |\ \ parent: 1:6db2ef61d156
991 | |\ \ parent: 1:6db2ef61d156
992 | | ~ : parent: 22:e0d9cccacb5d
992 | | ~ : parent: 22:e0d9cccacb5d
993 | | : user: test
993 | | : user: test
994 | | : date: Thu Jan 01 00:00:23 1970 +0000
994 | | : date: Thu Jan 01 00:00:23 1970 +0000
995 | | : summary: (23) merge one known; immediate left
995 | | : summary: (23) merge one known; immediate left
996 | | /
996 | | /
997 | o : changeset: 22:e0d9cccacb5d
997 | o : changeset: 22:e0d9cccacb5d
998 |/:/ parent: 18:1aa84d96232a
998 |/:/ parent: 18:1aa84d96232a
999 | : parent: 21:d42a756af44d
999 | : parent: 21:d42a756af44d
1000 | : user: test
1000 | : user: test
1001 | : date: Thu Jan 01 00:00:22 1970 +0000
1001 | : date: Thu Jan 01 00:00:22 1970 +0000
1002 | : summary: (22) merge two known; one far left, one far right
1002 | : summary: (22) merge two known; one far left, one far right
1003 | :
1003 | :
1004 | o changeset: 21:d42a756af44d
1004 | o changeset: 21:d42a756af44d
1005 | |\ parent: 19:31ddc2c1573b
1005 | |\ parent: 19:31ddc2c1573b
1006 | | | parent: 20:d30ed6450e32
1006 | | | parent: 20:d30ed6450e32
1007 | | | user: test
1007 | | | user: test
1008 | | | date: Thu Jan 01 00:00:21 1970 +0000
1008 | | | date: Thu Jan 01 00:00:21 1970 +0000
1009 | | | summary: (21) expand
1009 | | | summary: (21) expand
1010 | | |
1010 | | |
1011 +---o changeset: 20:d30ed6450e32
1011 +---o changeset: 20:d30ed6450e32
1012 | | | parent: 0:e6eb3150255d
1012 | | | parent: 0:e6eb3150255d
1013 | | ~ parent: 18:1aa84d96232a
1013 | | ~ parent: 18:1aa84d96232a
1014 | | user: test
1014 | | user: test
1015 | | date: Thu Jan 01 00:00:20 1970 +0000
1015 | | date: Thu Jan 01 00:00:20 1970 +0000
1016 | | summary: (20) merge two known; two far right
1016 | | summary: (20) merge two known; two far right
1017 | |
1017 | |
1018 | o changeset: 19:31ddc2c1573b
1018 | o changeset: 19:31ddc2c1573b
1019 | |\ parent: 15:1dda3f72782d
1019 | |\ parent: 15:1dda3f72782d
1020 | | | parent: 17:44765d7c06e0
1020 | | | parent: 17:44765d7c06e0
1021 | | | user: test
1021 | | | user: test
1022 | | | date: Thu Jan 01 00:00:19 1970 +0000
1022 | | | date: Thu Jan 01 00:00:19 1970 +0000
1023 | | | summary: (19) expand
1023 | | | summary: (19) expand
1024 | | |
1024 | | |
1025 o | | changeset: 18:1aa84d96232a
1025 o | | changeset: 18:1aa84d96232a
1026 |\| | parent: 1:6db2ef61d156
1026 |\| | parent: 1:6db2ef61d156
1027 ~ | | parent: 15:1dda3f72782d
1027 ~ | | parent: 15:1dda3f72782d
1028 | | user: test
1028 | | user: test
1029 | | date: Thu Jan 01 00:00:18 1970 +0000
1029 | | date: Thu Jan 01 00:00:18 1970 +0000
1030 | | summary: (18) merge two known; two far left
1030 | | summary: (18) merge two known; two far left
1031 / /
1031 / /
1032 | o changeset: 17:44765d7c06e0
1032 | o changeset: 17:44765d7c06e0
1033 | |\ parent: 12:86b91144a6e9
1033 | |\ parent: 12:86b91144a6e9
1034 | | | parent: 16:3677d192927d
1034 | | | parent: 16:3677d192927d
1035 | | | user: test
1035 | | | user: test
1036 | | | date: Thu Jan 01 00:00:17 1970 +0000
1036 | | | date: Thu Jan 01 00:00:17 1970 +0000
1037 | | | summary: (17) expand
1037 | | | summary: (17) expand
1038 | | |
1038 | | |
1039 | | o changeset: 16:3677d192927d
1039 | | o changeset: 16:3677d192927d
1040 | | |\ parent: 0:e6eb3150255d
1040 | | |\ parent: 0:e6eb3150255d
1041 | | ~ ~ parent: 1:6db2ef61d156
1041 | | ~ ~ parent: 1:6db2ef61d156
1042 | | user: test
1042 | | user: test
1043 | | date: Thu Jan 01 00:00:16 1970 +0000
1043 | | date: Thu Jan 01 00:00:16 1970 +0000
1044 | | summary: (16) merge two known; one immediate right, one near right
1044 | | summary: (16) merge two known; one immediate right, one near right
1045 | |
1045 | |
1046 o | changeset: 15:1dda3f72782d
1046 o | changeset: 15:1dda3f72782d
1047 |\ \ parent: 13:22d8966a97e3
1047 |\ \ parent: 13:22d8966a97e3
1048 | | | parent: 14:8eac370358ef
1048 | | | parent: 14:8eac370358ef
1049 | | | user: test
1049 | | | user: test
1050 | | | date: Thu Jan 01 00:00:15 1970 +0000
1050 | | | date: Thu Jan 01 00:00:15 1970 +0000
1051 | | | summary: (15) expand
1051 | | | summary: (15) expand
1052 | | |
1052 | | |
1053 | o | changeset: 14:8eac370358ef
1053 | o | changeset: 14:8eac370358ef
1054 | |\| parent: 0:e6eb3150255d
1054 | |\| parent: 0:e6eb3150255d
1055 | ~ | parent: 12:86b91144a6e9
1055 | ~ | parent: 12:86b91144a6e9
1056 | | user: test
1056 | | user: test
1057 | | date: Thu Jan 01 00:00:14 1970 +0000
1057 | | date: Thu Jan 01 00:00:14 1970 +0000
1058 | | summary: (14) merge two known; one immediate right, one far right
1058 | | summary: (14) merge two known; one immediate right, one far right
1059 | /
1059 | /
1060 o | changeset: 13:22d8966a97e3
1060 o | changeset: 13:22d8966a97e3
1061 |\ \ parent: 9:7010c0af0a35
1061 |\ \ parent: 9:7010c0af0a35
1062 | | | parent: 11:832d76e6bdf2
1062 | | | parent: 11:832d76e6bdf2
1063 | | | user: test
1063 | | | user: test
1064 | | | date: Thu Jan 01 00:00:13 1970 +0000
1064 | | | date: Thu Jan 01 00:00:13 1970 +0000
1065 | | | summary: (13) expand
1065 | | | summary: (13) expand
1066 | | |
1066 | | |
1067 +---o changeset: 12:86b91144a6e9
1067 +---o changeset: 12:86b91144a6e9
1068 | | | parent: 1:6db2ef61d156
1068 | | | parent: 1:6db2ef61d156
1069 | | ~ parent: 9:7010c0af0a35
1069 | | ~ parent: 9:7010c0af0a35
1070 | | user: test
1070 | | user: test
1071 | | date: Thu Jan 01 00:00:12 1970 +0000
1071 | | date: Thu Jan 01 00:00:12 1970 +0000
1072 | | summary: (12) merge two known; one immediate right, one far left
1072 | | summary: (12) merge two known; one immediate right, one far left
1073 | |
1073 | |
1074 | o changeset: 11:832d76e6bdf2
1074 | o changeset: 11:832d76e6bdf2
1075 | |\ parent: 6:b105a072e251
1075 | |\ parent: 6:b105a072e251
1076 | | | parent: 10:74c64d036d72
1076 | | | parent: 10:74c64d036d72
1077 | | | user: test
1077 | | | user: test
1078 | | | date: Thu Jan 01 00:00:11 1970 +0000
1078 | | | date: Thu Jan 01 00:00:11 1970 +0000
1079 | | | summary: (11) expand
1079 | | | summary: (11) expand
1080 | | |
1080 | | |
1081 | | o changeset: 10:74c64d036d72
1081 | | o changeset: 10:74c64d036d72
1082 | |/| parent: 0:e6eb3150255d
1082 | |/| parent: 0:e6eb3150255d
1083 | | ~ parent: 6:b105a072e251
1083 | | ~ parent: 6:b105a072e251
1084 | | user: test
1084 | | user: test
1085 | | date: Thu Jan 01 00:00:10 1970 +0000
1085 | | date: Thu Jan 01 00:00:10 1970 +0000
1086 | | summary: (10) merge two known; one immediate left, one near right
1086 | | summary: (10) merge two known; one immediate left, one near right
1087 | |
1087 | |
1088 o | changeset: 9:7010c0af0a35
1088 o | changeset: 9:7010c0af0a35
1089 |\ \ parent: 7:b632bb1b1224
1089 |\ \ parent: 7:b632bb1b1224
1090 | | | parent: 8:7a0b11f71937
1090 | | | parent: 8:7a0b11f71937
1091 | | | user: test
1091 | | | user: test
1092 | | | date: Thu Jan 01 00:00:09 1970 +0000
1092 | | | date: Thu Jan 01 00:00:09 1970 +0000
1093 | | | summary: (9) expand
1093 | | | summary: (9) expand
1094 | | |
1094 | | |
1095 | o | changeset: 8:7a0b11f71937
1095 | o | changeset: 8:7a0b11f71937
1096 |/| | parent: 0:e6eb3150255d
1096 |/| | parent: 0:e6eb3150255d
1097 | ~ | parent: 7:b632bb1b1224
1097 | ~ | parent: 7:b632bb1b1224
1098 | | user: test
1098 | | user: test
1099 | | date: Thu Jan 01 00:00:08 1970 +0000
1099 | | date: Thu Jan 01 00:00:08 1970 +0000
1100 | | summary: (8) merge two known; one immediate left, one far right
1100 | | summary: (8) merge two known; one immediate left, one far right
1101 | /
1101 | /
1102 o | changeset: 7:b632bb1b1224
1102 o | changeset: 7:b632bb1b1224
1103 |\ \ parent: 2:3d9a33b8d1e1
1103 |\ \ parent: 2:3d9a33b8d1e1
1104 | ~ | parent: 5:4409d547b708
1104 | ~ | parent: 5:4409d547b708
1105 | | user: test
1105 | | user: test
1106 | | date: Thu Jan 01 00:00:07 1970 +0000
1106 | | date: Thu Jan 01 00:00:07 1970 +0000
1107 | | summary: (7) expand
1107 | | summary: (7) expand
1108 | /
1108 | /
1109 | o changeset: 6:b105a072e251
1109 | o changeset: 6:b105a072e251
1110 |/| parent: 2:3d9a33b8d1e1
1110 |/| parent: 2:3d9a33b8d1e1
1111 | ~ parent: 5:4409d547b708
1111 | ~ parent: 5:4409d547b708
1112 | user: test
1112 | user: test
1113 | date: Thu Jan 01 00:00:06 1970 +0000
1113 | date: Thu Jan 01 00:00:06 1970 +0000
1114 | summary: (6) merge two known; one immediate left, one far left
1114 | summary: (6) merge two known; one immediate left, one far left
1115 |
1115 |
1116 o changeset: 5:4409d547b708
1116 o changeset: 5:4409d547b708
1117 |\ parent: 3:27eef8ed80b4
1117 |\ parent: 3:27eef8ed80b4
1118 | ~ parent: 4:26a8bac39d9f
1118 | ~ parent: 4:26a8bac39d9f
1119 | user: test
1119 | user: test
1120 | date: Thu Jan 01 00:00:05 1970 +0000
1120 | date: Thu Jan 01 00:00:05 1970 +0000
1121 | summary: (5) expand
1121 | summary: (5) expand
1122 |
1122 |
1123 o changeset: 4:26a8bac39d9f
1123 o changeset: 4:26a8bac39d9f
1124 |\ parent: 1:6db2ef61d156
1124 |\ parent: 1:6db2ef61d156
1125 ~ ~ parent: 3:27eef8ed80b4
1125 ~ ~ parent: 3:27eef8ed80b4
1126 user: test
1126 user: test
1127 date: Thu Jan 01 00:00:04 1970 +0000
1127 date: Thu Jan 01 00:00:04 1970 +0000
1128 summary: (4) merge two known; one immediate left, one immediate right
1128 summary: (4) merge two known; one immediate left, one immediate right
1129
1129
1130
1130
1131
1131
1132 Empty revision range - display nothing:
1132 Empty revision range - display nothing:
1133 $ hg log -G -r 1..0
1133 $ hg log -G -r 1..0
1134
1134
1135 $ cd ..
1135 $ cd ..
1136
1136
1137 #if no-outer-repo
1137 #if no-outer-repo
1138
1138
1139 From outer space:
1139 From outer space:
1140 $ hg log -G -l1 repo
1140 $ hg log -G -l1 repo
1141 @ changeset: 34:fea3ac5810e0
1141 @ changeset: 34:fea3ac5810e0
1142 | tag: tip
1142 | tag: tip
1143 ~ parent: 32:d06dffa21a31
1143 ~ parent: 32:d06dffa21a31
1144 user: test
1144 user: test
1145 date: Thu Jan 01 00:00:34 1970 +0000
1145 date: Thu Jan 01 00:00:34 1970 +0000
1146 summary: (34) head
1146 summary: (34) head
1147
1147
1148 $ hg log -G -l1 repo/a
1148 $ hg log -G -l1 repo/a
1149 @ changeset: 34:fea3ac5810e0
1149 @ changeset: 34:fea3ac5810e0
1150 | tag: tip
1150 | tag: tip
1151 ~ parent: 32:d06dffa21a31
1151 ~ parent: 32:d06dffa21a31
1152 user: test
1152 user: test
1153 date: Thu Jan 01 00:00:34 1970 +0000
1153 date: Thu Jan 01 00:00:34 1970 +0000
1154 summary: (34) head
1154 summary: (34) head
1155
1155
1156 $ hg log -G -l1 repo/missing
1156 $ hg log -G -l1 repo/missing
1157
1157
1158 #endif
1158 #endif
1159
1159
1160 File log with revs != cset revs:
1160 File log with revs != cset revs:
1161 $ hg init flog
1161 $ hg init flog
1162 $ cd flog
1162 $ cd flog
1163 $ echo one >one
1163 $ echo one >one
1164 $ hg add one
1164 $ hg add one
1165 $ hg commit -mone
1165 $ hg commit -mone
1166 $ echo two >two
1166 $ echo two >two
1167 $ hg add two
1167 $ hg add two
1168 $ hg commit -mtwo
1168 $ hg commit -mtwo
1169 $ echo more >two
1169 $ echo more >two
1170 $ hg commit -mmore
1170 $ hg commit -mmore
1171 $ hg log -G two
1171 $ hg log -G two
1172 @ changeset: 2:12c28321755b
1172 @ changeset: 2:12c28321755b
1173 | tag: tip
1173 | tag: tip
1174 | user: test
1174 | user: test
1175 | date: Thu Jan 01 00:00:00 1970 +0000
1175 | date: Thu Jan 01 00:00:00 1970 +0000
1176 | summary: more
1176 | summary: more
1177 |
1177 |
1178 o changeset: 1:5ac72c0599bf
1178 o changeset: 1:5ac72c0599bf
1179 | user: test
1179 | user: test
1180 ~ date: Thu Jan 01 00:00:00 1970 +0000
1180 ~ date: Thu Jan 01 00:00:00 1970 +0000
1181 summary: two
1181 summary: two
1182
1182
1183
1183
1184 Issue1896: File log with explicit style
1184 Issue1896: File log with explicit style
1185 $ hg log -G --style=default one
1185 $ hg log -G --style=default one
1186 o changeset: 0:3d578b4a1f53
1186 o changeset: 0:3d578b4a1f53
1187 user: test
1187 user: test
1188 date: Thu Jan 01 00:00:00 1970 +0000
1188 date: Thu Jan 01 00:00:00 1970 +0000
1189 summary: one
1189 summary: one
1190
1190
1191 Issue2395: glog --style header and footer
1191 Issue2395: glog --style header and footer
1192 $ hg log -G --style=xml one
1192 $ hg log -G --style=xml one
1193 <?xml version="1.0"?>
1193 <?xml version="1.0"?>
1194 <log>
1194 <log>
1195 o <logentry revision="0" node="3d578b4a1f537d5fcf7301bfa9c0b97adfaa6fb1">
1195 o <logentry revision="0" node="3d578b4a1f537d5fcf7301bfa9c0b97adfaa6fb1">
1196 <author email="test">test</author>
1196 <author email="test">test</author>
1197 <date>1970-01-01T00:00:00+00:00</date>
1197 <date>1970-01-01T00:00:00+00:00</date>
1198 <msg xml:space="preserve">one</msg>
1198 <msg xml:space="preserve">one</msg>
1199 </logentry>
1199 </logentry>
1200 </log>
1200 </log>
1201
1201
1202 $ cd ..
1202 $ cd ..
1203
1203
1204 Incoming and outgoing:
1204 Incoming and outgoing:
1205
1205
1206 $ hg clone -U -r31 repo repo2
1206 $ hg clone -U -r31 repo repo2
1207 adding changesets
1207 adding changesets
1208 adding manifests
1208 adding manifests
1209 adding file changes
1209 adding file changes
1210 added 31 changesets with 31 changes to 1 files
1210 added 31 changesets with 31 changes to 1 files
1211 $ cd repo2
1211 $ cd repo2
1212
1212
1213 $ hg incoming --graph ../repo
1213 $ hg incoming --graph ../repo
1214 comparing with ../repo
1214 comparing with ../repo
1215 searching for changes
1215 searching for changes
1216 o changeset: 34:fea3ac5810e0
1216 o changeset: 34:fea3ac5810e0
1217 | tag: tip
1217 | tag: tip
1218 | parent: 32:d06dffa21a31
1218 | parent: 32:d06dffa21a31
1219 | user: test
1219 | user: test
1220 | date: Thu Jan 01 00:00:34 1970 +0000
1220 | date: Thu Jan 01 00:00:34 1970 +0000
1221 | summary: (34) head
1221 | summary: (34) head
1222 |
1222 |
1223 | o changeset: 33:68608f5145f9
1223 | o changeset: 33:68608f5145f9
1224 | parent: 18:1aa84d96232a
1224 | parent: 18:1aa84d96232a
1225 | user: test
1225 | user: test
1226 | date: Thu Jan 01 00:00:33 1970 +0000
1226 | date: Thu Jan 01 00:00:33 1970 +0000
1227 | summary: (33) head
1227 | summary: (33) head
1228 |
1228 |
1229 o changeset: 32:d06dffa21a31
1229 o changeset: 32:d06dffa21a31
1230 | parent: 27:886ed638191b
1230 | parent: 27:886ed638191b
1231 | parent: 31:621d83e11f67
1231 | parent: 31:621d83e11f67
1232 | user: test
1232 | user: test
1233 | date: Thu Jan 01 00:00:32 1970 +0000
1233 | date: Thu Jan 01 00:00:32 1970 +0000
1234 | summary: (32) expand
1234 | summary: (32) expand
1235 |
1235 |
1236 o changeset: 27:886ed638191b
1236 o changeset: 27:886ed638191b
1237 parent: 21:d42a756af44d
1237 parent: 21:d42a756af44d
1238 user: test
1238 user: test
1239 date: Thu Jan 01 00:00:27 1970 +0000
1239 date: Thu Jan 01 00:00:27 1970 +0000
1240 summary: (27) collapse
1240 summary: (27) collapse
1241
1241
1242 $ cd ..
1242 $ cd ..
1243
1243
1244 $ hg -R repo outgoing --graph repo2
1244 $ hg -R repo outgoing --graph repo2
1245 comparing with repo2
1245 comparing with repo2
1246 searching for changes
1246 searching for changes
1247 @ changeset: 34:fea3ac5810e0
1247 @ changeset: 34:fea3ac5810e0
1248 | tag: tip
1248 | tag: tip
1249 | parent: 32:d06dffa21a31
1249 | parent: 32:d06dffa21a31
1250 | user: test
1250 | user: test
1251 | date: Thu Jan 01 00:00:34 1970 +0000
1251 | date: Thu Jan 01 00:00:34 1970 +0000
1252 | summary: (34) head
1252 | summary: (34) head
1253 |
1253 |
1254 | o changeset: 33:68608f5145f9
1254 | o changeset: 33:68608f5145f9
1255 | parent: 18:1aa84d96232a
1255 | parent: 18:1aa84d96232a
1256 | user: test
1256 | user: test
1257 | date: Thu Jan 01 00:00:33 1970 +0000
1257 | date: Thu Jan 01 00:00:33 1970 +0000
1258 | summary: (33) head
1258 | summary: (33) head
1259 |
1259 |
1260 o changeset: 32:d06dffa21a31
1260 o changeset: 32:d06dffa21a31
1261 | parent: 27:886ed638191b
1261 | parent: 27:886ed638191b
1262 | parent: 31:621d83e11f67
1262 | parent: 31:621d83e11f67
1263 | user: test
1263 | user: test
1264 | date: Thu Jan 01 00:00:32 1970 +0000
1264 | date: Thu Jan 01 00:00:32 1970 +0000
1265 | summary: (32) expand
1265 | summary: (32) expand
1266 |
1266 |
1267 o changeset: 27:886ed638191b
1267 o changeset: 27:886ed638191b
1268 parent: 21:d42a756af44d
1268 parent: 21:d42a756af44d
1269 user: test
1269 user: test
1270 date: Thu Jan 01 00:00:27 1970 +0000
1270 date: Thu Jan 01 00:00:27 1970 +0000
1271 summary: (27) collapse
1271 summary: (27) collapse
1272
1272
1273
1273
1274 File + limit with revs != cset revs:
1274 File + limit with revs != cset revs:
1275 $ cd repo
1275 $ cd repo
1276 $ touch b
1276 $ touch b
1277 $ hg ci -Aqm0
1277 $ hg ci -Aqm0
1278 $ hg log -G -l2 a
1278 $ hg log -G -l2 a
1279 o changeset: 34:fea3ac5810e0
1279 o changeset: 34:fea3ac5810e0
1280 | parent: 32:d06dffa21a31
1280 | parent: 32:d06dffa21a31
1281 ~ user: test
1281 ~ user: test
1282 date: Thu Jan 01 00:00:34 1970 +0000
1282 date: Thu Jan 01 00:00:34 1970 +0000
1283 summary: (34) head
1283 summary: (34) head
1284
1284
1285 o changeset: 33:68608f5145f9
1285 o changeset: 33:68608f5145f9
1286 | parent: 18:1aa84d96232a
1286 | parent: 18:1aa84d96232a
1287 ~ user: test
1287 ~ user: test
1288 date: Thu Jan 01 00:00:33 1970 +0000
1288 date: Thu Jan 01 00:00:33 1970 +0000
1289 summary: (33) head
1289 summary: (33) head
1290
1290
1291
1291
1292 File + limit + -ra:b, (b - a) < limit:
1292 File + limit + -ra:b, (b - a) < limit:
1293 $ hg log -G -l3000 -r32:tip a
1293 $ hg log -G -l3000 -r32:tip a
1294 o changeset: 34:fea3ac5810e0
1294 o changeset: 34:fea3ac5810e0
1295 | parent: 32:d06dffa21a31
1295 | parent: 32:d06dffa21a31
1296 | user: test
1296 | user: test
1297 | date: Thu Jan 01 00:00:34 1970 +0000
1297 | date: Thu Jan 01 00:00:34 1970 +0000
1298 | summary: (34) head
1298 | summary: (34) head
1299 |
1299 |
1300 | o changeset: 33:68608f5145f9
1300 | o changeset: 33:68608f5145f9
1301 | | parent: 18:1aa84d96232a
1301 | | parent: 18:1aa84d96232a
1302 | ~ user: test
1302 | ~ user: test
1303 | date: Thu Jan 01 00:00:33 1970 +0000
1303 | date: Thu Jan 01 00:00:33 1970 +0000
1304 | summary: (33) head
1304 | summary: (33) head
1305 |
1305 |
1306 o changeset: 32:d06dffa21a31
1306 o changeset: 32:d06dffa21a31
1307 |\ parent: 27:886ed638191b
1307 |\ parent: 27:886ed638191b
1308 ~ ~ parent: 31:621d83e11f67
1308 ~ ~ parent: 31:621d83e11f67
1309 user: test
1309 user: test
1310 date: Thu Jan 01 00:00:32 1970 +0000
1310 date: Thu Jan 01 00:00:32 1970 +0000
1311 summary: (32) expand
1311 summary: (32) expand
1312
1312
1313
1313
1314 Point out a common and an uncommon unshown parent
1314 Point out a common and an uncommon unshown parent
1315
1315
1316 $ hg log -G -r 'rev(8) or rev(9)'
1316 $ hg log -G -r 'rev(8) or rev(9)'
1317 o changeset: 9:7010c0af0a35
1317 o changeset: 9:7010c0af0a35
1318 |\ parent: 7:b632bb1b1224
1318 |\ parent: 7:b632bb1b1224
1319 | ~ parent: 8:7a0b11f71937
1319 | ~ parent: 8:7a0b11f71937
1320 | user: test
1320 | user: test
1321 | date: Thu Jan 01 00:00:09 1970 +0000
1321 | date: Thu Jan 01 00:00:09 1970 +0000
1322 | summary: (9) expand
1322 | summary: (9) expand
1323 |
1323 |
1324 o changeset: 8:7a0b11f71937
1324 o changeset: 8:7a0b11f71937
1325 |\ parent: 0:e6eb3150255d
1325 |\ parent: 0:e6eb3150255d
1326 ~ ~ parent: 7:b632bb1b1224
1326 ~ ~ parent: 7:b632bb1b1224
1327 user: test
1327 user: test
1328 date: Thu Jan 01 00:00:08 1970 +0000
1328 date: Thu Jan 01 00:00:08 1970 +0000
1329 summary: (8) merge two known; one immediate left, one far right
1329 summary: (8) merge two known; one immediate left, one far right
1330
1330
1331
1331
1332 File + limit + -ra:b, b < tip:
1332 File + limit + -ra:b, b < tip:
1333
1333
1334 $ hg log -G -l1 -r32:34 a
1334 $ hg log -G -l1 -r32:34 a
1335 o changeset: 34:fea3ac5810e0
1335 o changeset: 34:fea3ac5810e0
1336 | parent: 32:d06dffa21a31
1336 | parent: 32:d06dffa21a31
1337 ~ user: test
1337 ~ user: test
1338 date: Thu Jan 01 00:00:34 1970 +0000
1338 date: Thu Jan 01 00:00:34 1970 +0000
1339 summary: (34) head
1339 summary: (34) head
1340
1340
1341
1341
1342 file(File) + limit + -ra:b, b < tip:
1342 file(File) + limit + -ra:b, b < tip:
1343
1343
1344 $ hg log -G -l1 -r32:34 -r 'file("a")'
1344 $ hg log -G -l1 -r32:34 -r 'file("a")'
1345 o changeset: 34:fea3ac5810e0
1345 o changeset: 34:fea3ac5810e0
1346 | parent: 32:d06dffa21a31
1346 | parent: 32:d06dffa21a31
1347 ~ user: test
1347 ~ user: test
1348 date: Thu Jan 01 00:00:34 1970 +0000
1348 date: Thu Jan 01 00:00:34 1970 +0000
1349 summary: (34) head
1349 summary: (34) head
1350
1350
1351
1351
1352 limit(file(File) and a::b), b < tip:
1352 limit(file(File) and a::b), b < tip:
1353
1353
1354 $ hg log -G -r 'limit(file("a") and 32::34, 1)'
1354 $ hg log -G -r 'limit(file("a") and 32::34, 1)'
1355 o changeset: 32:d06dffa21a31
1355 o changeset: 32:d06dffa21a31
1356 |\ parent: 27:886ed638191b
1356 |\ parent: 27:886ed638191b
1357 ~ ~ parent: 31:621d83e11f67
1357 ~ ~ parent: 31:621d83e11f67
1358 user: test
1358 user: test
1359 date: Thu Jan 01 00:00:32 1970 +0000
1359 date: Thu Jan 01 00:00:32 1970 +0000
1360 summary: (32) expand
1360 summary: (32) expand
1361
1361
1362
1362
1363 File + limit + -ra:b, b < tip:
1363 File + limit + -ra:b, b < tip:
1364
1364
1365 $ hg log -G -r 'limit(file("a") and 34::32, 1)'
1365 $ hg log -G -r 'limit(file("a") and 34::32, 1)'
1366
1366
1367 File + limit + -ra:b, b < tip, (b - a) < limit:
1367 File + limit + -ra:b, b < tip, (b - a) < limit:
1368
1368
1369 $ hg log -G -l10 -r33:34 a
1369 $ hg log -G -l10 -r33:34 a
1370 o changeset: 34:fea3ac5810e0
1370 o changeset: 34:fea3ac5810e0
1371 | parent: 32:d06dffa21a31
1371 | parent: 32:d06dffa21a31
1372 ~ user: test
1372 ~ user: test
1373 date: Thu Jan 01 00:00:34 1970 +0000
1373 date: Thu Jan 01 00:00:34 1970 +0000
1374 summary: (34) head
1374 summary: (34) head
1375
1375
1376 o changeset: 33:68608f5145f9
1376 o changeset: 33:68608f5145f9
1377 | parent: 18:1aa84d96232a
1377 | parent: 18:1aa84d96232a
1378 ~ user: test
1378 ~ user: test
1379 date: Thu Jan 01 00:00:33 1970 +0000
1379 date: Thu Jan 01 00:00:33 1970 +0000
1380 summary: (33) head
1380 summary: (33) head
1381
1381
1382
1382
1383 Do not crash or produce strange graphs if history is buggy
1383 Do not crash or produce strange graphs if history is buggy
1384
1384
1385 $ hg branch branch
1385 $ hg branch branch
1386 marked working directory as branch branch
1386 marked working directory as branch branch
1387 (branches are permanent and global, did you want a bookmark?)
1387 (branches are permanent and global, did you want a bookmark?)
1388 $ commit 36 "buggy merge: identical parents" 35 35
1388 $ commit 36 "buggy merge: identical parents" 35 35
1389 $ hg log -G -l5
1389 $ hg log -G -l5
1390 @ changeset: 36:08a19a744424
1390 @ changeset: 36:08a19a744424
1391 | branch: branch
1391 | branch: branch
1392 | tag: tip
1392 | tag: tip
1393 | parent: 35:9159c3644c5e
1393 | parent: 35:9159c3644c5e
1394 | parent: 35:9159c3644c5e
1394 | parent: 35:9159c3644c5e
1395 | user: test
1395 | user: test
1396 | date: Thu Jan 01 00:00:36 1970 +0000
1396 | date: Thu Jan 01 00:00:36 1970 +0000
1397 | summary: (36) buggy merge: identical parents
1397 | summary: (36) buggy merge: identical parents
1398 |
1398 |
1399 o changeset: 35:9159c3644c5e
1399 o changeset: 35:9159c3644c5e
1400 | user: test
1400 | user: test
1401 | date: Thu Jan 01 00:00:00 1970 +0000
1401 | date: Thu Jan 01 00:00:00 1970 +0000
1402 | summary: 0
1402 | summary: 0
1403 |
1403 |
1404 o changeset: 34:fea3ac5810e0
1404 o changeset: 34:fea3ac5810e0
1405 | parent: 32:d06dffa21a31
1405 | parent: 32:d06dffa21a31
1406 | user: test
1406 | user: test
1407 | date: Thu Jan 01 00:00:34 1970 +0000
1407 | date: Thu Jan 01 00:00:34 1970 +0000
1408 | summary: (34) head
1408 | summary: (34) head
1409 |
1409 |
1410 | o changeset: 33:68608f5145f9
1410 | o changeset: 33:68608f5145f9
1411 | | parent: 18:1aa84d96232a
1411 | | parent: 18:1aa84d96232a
1412 | ~ user: test
1412 | ~ user: test
1413 | date: Thu Jan 01 00:00:33 1970 +0000
1413 | date: Thu Jan 01 00:00:33 1970 +0000
1414 | summary: (33) head
1414 | summary: (33) head
1415 |
1415 |
1416 o changeset: 32:d06dffa21a31
1416 o changeset: 32:d06dffa21a31
1417 |\ parent: 27:886ed638191b
1417 |\ parent: 27:886ed638191b
1418 ~ ~ parent: 31:621d83e11f67
1418 ~ ~ parent: 31:621d83e11f67
1419 user: test
1419 user: test
1420 date: Thu Jan 01 00:00:32 1970 +0000
1420 date: Thu Jan 01 00:00:32 1970 +0000
1421 summary: (32) expand
1421 summary: (32) expand
1422
1422
1423
1423
1424 Test log -G options
1424 Test log -G options
1425
1425
1426 $ testlog() {
1426 $ testlog() {
1427 > hg log -G --print-revset "$@"
1427 > hg log -G --print-revset "$@"
1428 > hg log --template 'nodetag {rev}\n' "$@" | grep nodetag \
1428 > hg log --template 'nodetag {rev}\n' "$@" | grep nodetag \
1429 > | sed 's/.*nodetag/nodetag/' > log.nodes
1429 > | sed 's/.*nodetag/nodetag/' > log.nodes
1430 > hg log -G --template 'nodetag {rev}\n' "$@" | grep nodetag \
1430 > hg log -G --template 'nodetag {rev}\n' "$@" | grep nodetag \
1431 > | sed 's/.*nodetag/nodetag/' > glog.nodes
1431 > | sed 's/.*nodetag/nodetag/' > glog.nodes
1432 > (cmp log.nodes glog.nodes || diff -u log.nodes glog.nodes) \
1432 > (cmp log.nodes glog.nodes || diff -u log.nodes glog.nodes) \
1433 > | grep '^[-+@ ]' || :
1433 > | grep '^[-+@ ]' || :
1434 > }
1434 > }
1435
1435
1436 glog always reorders nodes which explains the difference with log
1436 glog always reorders nodes which explains the difference with log
1437
1437
1438 $ testlog -r 27 -r 25 -r 21 -r 34 -r 32 -r 31
1438 $ testlog -r 27 -r 25 -r 21 -r 34 -r 32 -r 31
1439 ['27', '25', '21', '34', '32', '31']
1439 ['27', '25', '21', '34', '32', '31']
1440 []
1440 []
1441 --- log.nodes * (glob)
1441 --- log.nodes * (glob)
1442 +++ glog.nodes * (glob)
1442 +++ glog.nodes * (glob)
1443 @@ -1,6 +1,6 @@
1443 @@ -1,6 +1,6 @@
1444 -nodetag 27
1444 -nodetag 27
1445 -nodetag 25
1445 -nodetag 25
1446 -nodetag 21
1446 -nodetag 21
1447 nodetag 34
1447 nodetag 34
1448 nodetag 32
1448 nodetag 32
1449 nodetag 31
1449 nodetag 31
1450 +nodetag 27
1450 +nodetag 27
1451 +nodetag 25
1451 +nodetag 25
1452 +nodetag 21
1452 +nodetag 21
1453 $ testlog -u test -u not-a-user
1453 $ testlog -u test -u not-a-user
1454 []
1454 []
1455 (group
1455 (group
1456 (group
1456 (group
1457 (or
1457 (or
1458 (list
1458 (list
1459 (func
1459 (func
1460 ('symbol', 'user')
1460 ('symbol', 'user')
1461 ('string', 'test'))
1461 ('string', 'test'))
1462 (func
1462 (func
1463 ('symbol', 'user')
1463 ('symbol', 'user')
1464 ('string', 'not-a-user'))))))
1464 ('string', 'not-a-user'))))))
1465 $ testlog -b not-a-branch
1465 $ testlog -b not-a-branch
1466 abort: unknown revision 'not-a-branch'!
1466 abort: unknown revision 'not-a-branch'!
1467 abort: unknown revision 'not-a-branch'!
1467 abort: unknown revision 'not-a-branch'!
1468 abort: unknown revision 'not-a-branch'!
1468 abort: unknown revision 'not-a-branch'!
1469 $ testlog -b 35 -b 36 --only-branch branch
1469 $ testlog -b 35 -b 36 --only-branch branch
1470 []
1470 []
1471 (group
1471 (group
1472 (group
1472 (group
1473 (or
1473 (or
1474 (list
1474 (list
1475 (func
1475 (func
1476 ('symbol', 'branch')
1476 ('symbol', 'branch')
1477 ('string', 'default'))
1477 ('string', 'default'))
1478 (func
1478 (func
1479 ('symbol', 'branch')
1479 ('symbol', 'branch')
1480 ('string', 'branch'))
1480 ('string', 'branch'))
1481 (func
1481 (func
1482 ('symbol', 'branch')
1482 ('symbol', 'branch')
1483 ('string', 'branch'))))))
1483 ('string', 'branch'))))))
1484 $ testlog -k expand -k merge
1484 $ testlog -k expand -k merge
1485 []
1485 []
1486 (group
1486 (group
1487 (group
1487 (group
1488 (or
1488 (or
1489 (list
1489 (list
1490 (func
1490 (func
1491 ('symbol', 'keyword')
1491 ('symbol', 'keyword')
1492 ('string', 'expand'))
1492 ('string', 'expand'))
1493 (func
1493 (func
1494 ('symbol', 'keyword')
1494 ('symbol', 'keyword')
1495 ('string', 'merge'))))))
1495 ('string', 'merge'))))))
1496 $ testlog --only-merges
1496 $ testlog --only-merges
1497 []
1497 []
1498 (group
1498 (group
1499 (func
1499 (func
1500 ('symbol', 'merge')
1500 ('symbol', 'merge')
1501 None))
1501 None))
1502 $ testlog --no-merges
1502 $ testlog --no-merges
1503 []
1503 []
1504 (group
1504 (group
1505 (not
1505 (not
1506 (func
1506 (func
1507 ('symbol', 'merge')
1507 ('symbol', 'merge')
1508 None)))
1508 None)))
1509 $ testlog --date '2 0 to 4 0'
1509 $ testlog --date '2 0 to 4 0'
1510 []
1510 []
1511 (group
1511 (group
1512 (func
1512 (func
1513 ('symbol', 'date')
1513 ('symbol', 'date')
1514 ('string', '2 0 to 4 0')))
1514 ('string', '2 0 to 4 0')))
1515 $ hg log -G -d 'brace ) in a date'
1515 $ hg log -G -d 'brace ) in a date'
1516 abort: invalid date: 'brace ) in a date'
1516 abort: invalid date: 'brace ) in a date'
1517 [255]
1517 [255]
1518 $ testlog --prune 31 --prune 32
1518 $ testlog --prune 31 --prune 32
1519 []
1519 []
1520 (group
1520 (group
1521 (group
1521 (group
1522 (and
1522 (and
1523 (not
1523 (not
1524 (group
1524 (group
1525 (or
1525 (or
1526 (list
1526 (list
1527 ('string', '31')
1527 ('string', '31')
1528 (func
1528 (func
1529 ('symbol', 'ancestors')
1529 ('symbol', 'ancestors')
1530 ('string', '31'))))))
1530 ('string', '31'))))))
1531 (not
1531 (not
1532 (group
1532 (group
1533 (or
1533 (or
1534 (list
1534 (list
1535 ('string', '32')
1535 ('string', '32')
1536 (func
1536 (func
1537 ('symbol', 'ancestors')
1537 ('symbol', 'ancestors')
1538 ('string', '32')))))))))
1538 ('string', '32')))))))))
1539
1539
1540 Dedicated repo for --follow and paths filtering. The g is crafted to
1540 Dedicated repo for --follow and paths filtering. The g is crafted to
1541 have 2 filelog topological heads in a linear changeset graph.
1541 have 2 filelog topological heads in a linear changeset graph.
1542
1542
1543 $ cd ..
1543 $ cd ..
1544 $ hg init follow
1544 $ hg init follow
1545 $ cd follow
1545 $ cd follow
1546 $ testlog --follow
1546 $ testlog --follow
1547 []
1547 []
1548 []
1548 []
1549 $ testlog -rnull
1549 $ testlog -rnull
1550 ['null']
1550 ['null']
1551 []
1551 []
1552 $ echo a > a
1552 $ echo a > a
1553 $ echo aa > aa
1553 $ echo aa > aa
1554 $ echo f > f
1554 $ echo f > f
1555 $ hg ci -Am "add a" a aa f
1555 $ hg ci -Am "add a" a aa f
1556 $ hg cp a b
1556 $ hg cp a b
1557 $ hg cp f g
1557 $ hg cp f g
1558 $ hg ci -m "copy a b"
1558 $ hg ci -m "copy a b"
1559 $ mkdir dir
1559 $ mkdir dir
1560 $ hg mv b dir
1560 $ hg mv b dir
1561 $ echo g >> g
1561 $ echo g >> g
1562 $ echo f >> f
1562 $ echo f >> f
1563 $ hg ci -m "mv b dir/b"
1563 $ hg ci -m "mv b dir/b"
1564 $ hg mv a b
1564 $ hg mv a b
1565 $ hg cp -f f g
1565 $ hg cp -f f g
1566 $ echo a > d
1566 $ echo a > d
1567 $ hg add d
1567 $ hg add d
1568 $ hg ci -m "mv a b; add d"
1568 $ hg ci -m "mv a b; add d"
1569 $ hg mv dir/b e
1569 $ hg mv dir/b e
1570 $ hg ci -m "mv dir/b e"
1570 $ hg ci -m "mv dir/b e"
1571 $ hg log -G --template '({rev}) {desc|firstline}\n'
1571 $ hg log -G --template '({rev}) {desc|firstline}\n'
1572 @ (4) mv dir/b e
1572 @ (4) mv dir/b e
1573 |
1573 |
1574 o (3) mv a b; add d
1574 o (3) mv a b; add d
1575 |
1575 |
1576 o (2) mv b dir/b
1576 o (2) mv b dir/b
1577 |
1577 |
1578 o (1) copy a b
1578 o (1) copy a b
1579 |
1579 |
1580 o (0) add a
1580 o (0) add a
1581
1581
1582
1582
1583 $ testlog a
1583 $ testlog a
1584 []
1584 []
1585 (group
1585 (group
1586 (group
1586 (group
1587 (func
1587 (func
1588 ('symbol', 'filelog')
1588 ('symbol', 'filelog')
1589 ('string', 'a'))))
1589 ('string', 'a'))))
1590 $ testlog a b
1590 $ testlog a b
1591 []
1591 []
1592 (group
1592 (group
1593 (group
1593 (group
1594 (or
1594 (or
1595 (list
1595 (list
1596 (func
1596 (func
1597 ('symbol', 'filelog')
1597 ('symbol', 'filelog')
1598 ('string', 'a'))
1598 ('string', 'a'))
1599 (func
1599 (func
1600 ('symbol', 'filelog')
1600 ('symbol', 'filelog')
1601 ('string', 'b'))))))
1601 ('string', 'b'))))))
1602
1602
1603 Test falling back to slow path for non-existing files
1603 Test falling back to slow path for non-existing files
1604
1604
1605 $ testlog a c
1605 $ testlog a c
1606 []
1606 []
1607 (group
1607 (group
1608 (func
1608 (func
1609 ('symbol', '_matchfiles')
1609 ('symbol', '_matchfiles')
1610 (list
1610 (list
1611 ('string', 'r:')
1611 ('string', 'r:')
1612 ('string', 'd:relpath')
1612 ('string', 'd:relpath')
1613 ('string', 'p:a')
1613 ('string', 'p:a')
1614 ('string', 'p:c'))))
1614 ('string', 'p:c'))))
1615
1615
1616 Test multiple --include/--exclude/paths
1616 Test multiple --include/--exclude/paths
1617
1617
1618 $ testlog --include a --include e --exclude b --exclude e a e
1618 $ testlog --include a --include e --exclude b --exclude e a e
1619 []
1619 []
1620 (group
1620 (group
1621 (func
1621 (func
1622 ('symbol', '_matchfiles')
1622 ('symbol', '_matchfiles')
1623 (list
1623 (list
1624 ('string', 'r:')
1624 ('string', 'r:')
1625 ('string', 'd:relpath')
1625 ('string', 'd:relpath')
1626 ('string', 'p:a')
1626 ('string', 'p:a')
1627 ('string', 'p:e')
1627 ('string', 'p:e')
1628 ('string', 'i:a')
1628 ('string', 'i:a')
1629 ('string', 'i:e')
1629 ('string', 'i:e')
1630 ('string', 'x:b')
1630 ('string', 'x:b')
1631 ('string', 'x:e'))))
1631 ('string', 'x:e'))))
1632
1632
1633 Test glob expansion of pats
1633 Test glob expansion of pats
1634
1634
1635 $ expandglobs=`$PYTHON -c "import mercurial.util; \
1635 $ expandglobs=`$PYTHON -c "import mercurial.util; \
1636 > print mercurial.util.expandglobs and 'true' or 'false'"`
1636 > print mercurial.util.expandglobs and 'true' or 'false'"`
1637 $ if [ $expandglobs = "true" ]; then
1637 $ if [ $expandglobs = "true" ]; then
1638 > testlog 'a*';
1638 > testlog 'a*';
1639 > else
1639 > else
1640 > testlog a*;
1640 > testlog a*;
1641 > fi;
1641 > fi;
1642 []
1642 []
1643 (group
1643 (group
1644 (group
1644 (group
1645 (func
1645 (func
1646 ('symbol', 'filelog')
1646 ('symbol', 'filelog')
1647 ('string', 'aa'))))
1647 ('string', 'aa'))))
1648
1648
1649 Test --follow on a non-existent directory
1649 Test --follow on a non-existent directory
1650
1650
1651 $ testlog -f dir
1651 $ testlog -f dir
1652 abort: cannot follow file not in parent revision: "dir"
1652 abort: cannot follow file not in parent revision: "dir"
1653 abort: cannot follow file not in parent revision: "dir"
1653 abort: cannot follow file not in parent revision: "dir"
1654 abort: cannot follow file not in parent revision: "dir"
1654 abort: cannot follow file not in parent revision: "dir"
1655
1655
1656 Test --follow on a directory
1656 Test --follow on a directory
1657
1657
1658 $ hg up -q '.^'
1658 $ hg up -q '.^'
1659 $ testlog -f dir
1659 $ testlog -f dir
1660 []
1660 []
1661 (group
1661 (group
1662 (and
1662 (and
1663 (func
1663 (func
1664 ('symbol', 'ancestors')
1664 ('symbol', 'ancestors')
1665 ('symbol', '.'))
1665 ('symbol', '.'))
1666 (func
1666 (func
1667 ('symbol', '_matchfiles')
1667 ('symbol', '_matchfiles')
1668 (list
1668 (list
1669 ('string', 'r:')
1669 ('string', 'r:')
1670 ('string', 'd:relpath')
1670 ('string', 'd:relpath')
1671 ('string', 'p:dir')))))
1671 ('string', 'p:dir')))))
1672 $ hg up -q tip
1672 $ hg up -q tip
1673
1673
1674 Test --follow on file not in parent revision
1674 Test --follow on file not in parent revision
1675
1675
1676 $ testlog -f a
1676 $ testlog -f a
1677 abort: cannot follow file not in parent revision: "a"
1677 abort: cannot follow file not in parent revision: "a"
1678 abort: cannot follow file not in parent revision: "a"
1678 abort: cannot follow file not in parent revision: "a"
1679 abort: cannot follow file not in parent revision: "a"
1679 abort: cannot follow file not in parent revision: "a"
1680
1680
1681 Test --follow and patterns
1681 Test --follow and patterns
1682
1682
1683 $ testlog -f 'glob:*'
1683 $ testlog -f 'glob:*'
1684 []
1684 []
1685 (group
1685 (group
1686 (and
1686 (and
1687 (func
1687 (func
1688 ('symbol', 'ancestors')
1688 ('symbol', 'ancestors')
1689 ('symbol', '.'))
1689 ('symbol', '.'))
1690 (func
1690 (func
1691 ('symbol', '_matchfiles')
1691 ('symbol', '_matchfiles')
1692 (list
1692 (list
1693 ('string', 'r:')
1693 ('string', 'r:')
1694 ('string', 'd:relpath')
1694 ('string', 'd:relpath')
1695 ('string', 'p:glob:*')))))
1695 ('string', 'p:glob:*')))))
1696
1696
1697 Test --follow on a single rename
1697 Test --follow on a single rename
1698
1698
1699 $ hg up -q 2
1699 $ hg up -q 2
1700 $ testlog -f a
1700 $ testlog -f a
1701 []
1701 []
1702 (group
1702 (group
1703 (group
1703 (group
1704 (func
1704 (func
1705 ('symbol', 'follow')
1705 ('symbol', 'follow')
1706 ('string', 'a'))))
1706 ('string', 'a'))))
1707
1707
1708 Test --follow and multiple renames
1708 Test --follow and multiple renames
1709
1709
1710 $ hg up -q tip
1710 $ hg up -q tip
1711 $ testlog -f e
1711 $ testlog -f e
1712 []
1712 []
1713 (group
1713 (group
1714 (group
1714 (group
1715 (func
1715 (func
1716 ('symbol', 'follow')
1716 ('symbol', 'follow')
1717 ('string', 'e'))))
1717 ('string', 'e'))))
1718
1718
1719 Test --follow and multiple filelog heads
1719 Test --follow and multiple filelog heads
1720
1720
1721 $ hg up -q 2
1721 $ hg up -q 2
1722 $ testlog -f g
1722 $ testlog -f g
1723 []
1723 []
1724 (group
1724 (group
1725 (group
1725 (group
1726 (func
1726 (func
1727 ('symbol', 'follow')
1727 ('symbol', 'follow')
1728 ('string', 'g'))))
1728 ('string', 'g'))))
1729 $ cat log.nodes
1729 $ cat log.nodes
1730 nodetag 2
1730 nodetag 2
1731 nodetag 1
1731 nodetag 1
1732 nodetag 0
1732 nodetag 0
1733 $ hg up -q tip
1733 $ hg up -q tip
1734 $ testlog -f g
1734 $ testlog -f g
1735 []
1735 []
1736 (group
1736 (group
1737 (group
1737 (group
1738 (func
1738 (func
1739 ('symbol', 'follow')
1739 ('symbol', 'follow')
1740 ('string', 'g'))))
1740 ('string', 'g'))))
1741 $ cat log.nodes
1741 $ cat log.nodes
1742 nodetag 3
1742 nodetag 3
1743 nodetag 2
1743 nodetag 2
1744 nodetag 0
1744 nodetag 0
1745
1745
1746 Test --follow and multiple files
1746 Test --follow and multiple files
1747
1747
1748 $ testlog -f g e
1748 $ testlog -f g e
1749 []
1749 []
1750 (group
1750 (group
1751 (group
1751 (group
1752 (or
1752 (or
1753 (list
1753 (list
1754 (func
1754 (func
1755 ('symbol', 'follow')
1755 ('symbol', 'follow')
1756 ('string', 'g'))
1756 ('string', 'g'))
1757 (func
1757 (func
1758 ('symbol', 'follow')
1758 ('symbol', 'follow')
1759 ('string', 'e'))))))
1759 ('string', 'e'))))))
1760 $ cat log.nodes
1760 $ cat log.nodes
1761 nodetag 4
1761 nodetag 4
1762 nodetag 3
1762 nodetag 3
1763 nodetag 2
1763 nodetag 2
1764 nodetag 1
1764 nodetag 1
1765 nodetag 0
1765 nodetag 0
1766
1766
1767 Test --follow null parent
1767 Test --follow null parent
1768
1768
1769 $ hg up -q null
1769 $ hg up -q null
1770 $ testlog -f
1770 $ testlog -f
1771 []
1771 []
1772 []
1772 []
1773
1773
1774 Test --follow-first
1774 Test --follow-first
1775
1775
1776 $ hg up -q 3
1776 $ hg up -q 3
1777 $ echo ee > e
1777 $ echo ee > e
1778 $ hg ci -Am "add another e" e
1778 $ hg ci -Am "add another e" e
1779 created new head
1779 created new head
1780 $ hg merge --tool internal:other 4
1780 $ hg merge --tool internal:other 4
1781 0 files updated, 1 files merged, 1 files removed, 0 files unresolved
1781 0 files updated, 1 files merged, 1 files removed, 0 files unresolved
1782 (branch merge, don't forget to commit)
1782 (branch merge, don't forget to commit)
1783 $ echo merge > e
1783 $ echo merge > e
1784 $ hg ci -m "merge 5 and 4"
1784 $ hg ci -m "merge 5 and 4"
1785 $ testlog --follow-first
1785 $ testlog --follow-first
1786 []
1786 []
1787 (group
1787 (group
1788 (func
1788 (func
1789 ('symbol', '_firstancestors')
1789 ('symbol', '_firstancestors')
1790 (func
1790 (func
1791 ('symbol', 'rev')
1791 ('symbol', 'rev')
1792 ('symbol', '6'))))
1792 ('symbol', '6'))))
1793
1793
1794 Cannot compare with log --follow-first FILE as it never worked
1794 Cannot compare with log --follow-first FILE as it never worked
1795
1795
1796 $ hg log -G --print-revset --follow-first e
1796 $ hg log -G --print-revset --follow-first e
1797 []
1797 []
1798 (group
1798 (group
1799 (group
1799 (group
1800 (func
1800 (func
1801 ('symbol', '_followfirst')
1801 ('symbol', '_followfirst')
1802 ('string', 'e'))))
1802 ('string', 'e'))))
1803 $ hg log -G --follow-first e --template '{rev} {desc|firstline}\n'
1803 $ hg log -G --follow-first e --template '{rev} {desc|firstline}\n'
1804 @ 6 merge 5 and 4
1804 @ 6 merge 5 and 4
1805 |\
1805 |\
1806 | ~
1806 | ~
1807 o 5 add another e
1807 o 5 add another e
1808 |
1808 |
1809 ~
1809 ~
1810
1810
1811 Test --copies
1811 Test --copies
1812
1812
1813 $ hg log -G --copies --template "{rev} {desc|firstline} \
1813 $ hg log -G --copies --template "{rev} {desc|firstline} \
1814 > copies: {file_copies_switch}\n"
1814 > copies: {file_copies_switch}\n"
1815 @ 6 merge 5 and 4 copies:
1815 @ 6 merge 5 and 4 copies:
1816 |\
1816 |\
1817 | o 5 add another e copies:
1817 | o 5 add another e copies:
1818 | |
1818 | |
1819 o | 4 mv dir/b e copies: e (dir/b)
1819 o | 4 mv dir/b e copies: e (dir/b)
1820 |/
1820 |/
1821 o 3 mv a b; add d copies: b (a)g (f)
1821 o 3 mv a b; add d copies: b (a)g (f)
1822 |
1822 |
1823 o 2 mv b dir/b copies: dir/b (b)
1823 o 2 mv b dir/b copies: dir/b (b)
1824 |
1824 |
1825 o 1 copy a b copies: b (a)g (f)
1825 o 1 copy a b copies: b (a)g (f)
1826 |
1826 |
1827 o 0 add a copies:
1827 o 0 add a copies:
1828
1828
1829 Test "set:..." and parent revision
1829 Test "set:..." and parent revision
1830
1830
1831 $ hg up -q 4
1831 $ hg up -q 4
1832 $ testlog "set:copied()"
1832 $ testlog "set:copied()"
1833 []
1833 []
1834 (group
1834 (group
1835 (func
1835 (func
1836 ('symbol', '_matchfiles')
1836 ('symbol', '_matchfiles')
1837 (list
1837 (list
1838 ('string', 'r:')
1838 ('string', 'r:')
1839 ('string', 'd:relpath')
1839 ('string', 'd:relpath')
1840 ('string', 'p:set:copied()'))))
1840 ('string', 'p:set:copied()'))))
1841 $ testlog --include "set:copied()"
1841 $ testlog --include "set:copied()"
1842 []
1842 []
1843 (group
1843 (group
1844 (func
1844 (func
1845 ('symbol', '_matchfiles')
1845 ('symbol', '_matchfiles')
1846 (list
1846 (list
1847 ('string', 'r:')
1847 ('string', 'r:')
1848 ('string', 'd:relpath')
1848 ('string', 'd:relpath')
1849 ('string', 'i:set:copied()'))))
1849 ('string', 'i:set:copied()'))))
1850 $ testlog -r "sort(file('set:copied()'), -rev)"
1850 $ testlog -r "sort(file('set:copied()'), -rev)"
1851 ["sort(file('set:copied()'), -rev)"]
1851 ["sort(file('set:copied()'), -rev)"]
1852 []
1852 []
1853
1853
1854 Test --removed
1854 Test --removed
1855
1855
1856 $ testlog --removed
1856 $ testlog --removed
1857 []
1857 []
1858 []
1858 []
1859 $ testlog --removed a
1859 $ testlog --removed a
1860 []
1860 []
1861 (group
1861 (group
1862 (func
1862 (func
1863 ('symbol', '_matchfiles')
1863 ('symbol', '_matchfiles')
1864 (list
1864 (list
1865 ('string', 'r:')
1865 ('string', 'r:')
1866 ('string', 'd:relpath')
1866 ('string', 'd:relpath')
1867 ('string', 'p:a'))))
1867 ('string', 'p:a'))))
1868 $ testlog --removed --follow a
1868 $ testlog --removed --follow a
1869 []
1869 []
1870 (group
1870 (group
1871 (and
1871 (and
1872 (func
1872 (func
1873 ('symbol', 'ancestors')
1873 ('symbol', 'ancestors')
1874 ('symbol', '.'))
1874 ('symbol', '.'))
1875 (func
1875 (func
1876 ('symbol', '_matchfiles')
1876 ('symbol', '_matchfiles')
1877 (list
1877 (list
1878 ('string', 'r:')
1878 ('string', 'r:')
1879 ('string', 'd:relpath')
1879 ('string', 'd:relpath')
1880 ('string', 'p:a')))))
1880 ('string', 'p:a')))))
1881
1881
1882 Test --patch and --stat with --follow and --follow-first
1882 Test --patch and --stat with --follow and --follow-first
1883
1883
1884 $ hg up -q 3
1884 $ hg up -q 3
1885 $ hg log -G --git --patch b
1885 $ hg log -G --git --patch b
1886 o changeset: 1:216d4c92cf98
1886 o changeset: 1:216d4c92cf98
1887 | user: test
1887 | user: test
1888 ~ date: Thu Jan 01 00:00:00 1970 +0000
1888 ~ date: Thu Jan 01 00:00:00 1970 +0000
1889 summary: copy a b
1889 summary: copy a b
1890
1890
1891 diff --git a/a b/b
1891 diff --git a/a b/b
1892 copy from a
1892 copy from a
1893 copy to b
1893 copy to b
1894
1894
1895
1895
1896 $ hg log -G --git --stat b
1896 $ hg log -G --git --stat b
1897 o changeset: 1:216d4c92cf98
1897 o changeset: 1:216d4c92cf98
1898 | user: test
1898 | user: test
1899 ~ date: Thu Jan 01 00:00:00 1970 +0000
1899 ~ date: Thu Jan 01 00:00:00 1970 +0000
1900 summary: copy a b
1900 summary: copy a b
1901
1901
1902 b | 0
1902 b | 0
1903 1 files changed, 0 insertions(+), 0 deletions(-)
1903 1 files changed, 0 insertions(+), 0 deletions(-)
1904
1904
1905
1905
1906 $ hg log -G --git --patch --follow b
1906 $ hg log -G --git --patch --follow b
1907 o changeset: 1:216d4c92cf98
1907 o changeset: 1:216d4c92cf98
1908 | user: test
1908 | user: test
1909 | date: Thu Jan 01 00:00:00 1970 +0000
1909 | date: Thu Jan 01 00:00:00 1970 +0000
1910 | summary: copy a b
1910 | summary: copy a b
1911 |
1911 |
1912 | diff --git a/a b/b
1912 | diff --git a/a b/b
1913 | copy from a
1913 | copy from a
1914 | copy to b
1914 | copy to b
1915 |
1915 |
1916 o changeset: 0:f8035bb17114
1916 o changeset: 0:f8035bb17114
1917 user: test
1917 user: test
1918 date: Thu Jan 01 00:00:00 1970 +0000
1918 date: Thu Jan 01 00:00:00 1970 +0000
1919 summary: add a
1919 summary: add a
1920
1920
1921 diff --git a/a b/a
1921 diff --git a/a b/a
1922 new file mode 100644
1922 new file mode 100644
1923 --- /dev/null
1923 --- /dev/null
1924 +++ b/a
1924 +++ b/a
1925 @@ -0,0 +1,1 @@
1925 @@ -0,0 +1,1 @@
1926 +a
1926 +a
1927
1927
1928
1928
1929 $ hg log -G --git --stat --follow b
1929 $ hg log -G --git --stat --follow b
1930 o changeset: 1:216d4c92cf98
1930 o changeset: 1:216d4c92cf98
1931 | user: test
1931 | user: test
1932 | date: Thu Jan 01 00:00:00 1970 +0000
1932 | date: Thu Jan 01 00:00:00 1970 +0000
1933 | summary: copy a b
1933 | summary: copy a b
1934 |
1934 |
1935 | b | 0
1935 | b | 0
1936 | 1 files changed, 0 insertions(+), 0 deletions(-)
1936 | 1 files changed, 0 insertions(+), 0 deletions(-)
1937 |
1937 |
1938 o changeset: 0:f8035bb17114
1938 o changeset: 0:f8035bb17114
1939 user: test
1939 user: test
1940 date: Thu Jan 01 00:00:00 1970 +0000
1940 date: Thu Jan 01 00:00:00 1970 +0000
1941 summary: add a
1941 summary: add a
1942
1942
1943 a | 1 +
1943 a | 1 +
1944 1 files changed, 1 insertions(+), 0 deletions(-)
1944 1 files changed, 1 insertions(+), 0 deletions(-)
1945
1945
1946
1946
1947 $ hg up -q 6
1947 $ hg up -q 6
1948 $ hg log -G --git --patch --follow-first e
1948 $ hg log -G --git --patch --follow-first e
1949 @ changeset: 6:fc281d8ff18d
1949 @ changeset: 6:fc281d8ff18d
1950 |\ tag: tip
1950 |\ tag: tip
1951 | ~ parent: 5:99b31f1c2782
1951 | ~ parent: 5:99b31f1c2782
1952 | parent: 4:17d952250a9d
1952 | parent: 4:17d952250a9d
1953 | user: test
1953 | user: test
1954 | date: Thu Jan 01 00:00:00 1970 +0000
1954 | date: Thu Jan 01 00:00:00 1970 +0000
1955 | summary: merge 5 and 4
1955 | summary: merge 5 and 4
1956 |
1956 |
1957 | diff --git a/e b/e
1957 | diff --git a/e b/e
1958 | --- a/e
1958 | --- a/e
1959 | +++ b/e
1959 | +++ b/e
1960 | @@ -1,1 +1,1 @@
1960 | @@ -1,1 +1,1 @@
1961 | -ee
1961 | -ee
1962 | +merge
1962 | +merge
1963 |
1963 |
1964 o changeset: 5:99b31f1c2782
1964 o changeset: 5:99b31f1c2782
1965 | parent: 3:5918b8d165d1
1965 | parent: 3:5918b8d165d1
1966 ~ user: test
1966 ~ user: test
1967 date: Thu Jan 01 00:00:00 1970 +0000
1967 date: Thu Jan 01 00:00:00 1970 +0000
1968 summary: add another e
1968 summary: add another e
1969
1969
1970 diff --git a/e b/e
1970 diff --git a/e b/e
1971 new file mode 100644
1971 new file mode 100644
1972 --- /dev/null
1972 --- /dev/null
1973 +++ b/e
1973 +++ b/e
1974 @@ -0,0 +1,1 @@
1974 @@ -0,0 +1,1 @@
1975 +ee
1975 +ee
1976
1976
1977
1977
1978 Test old-style --rev
1978 Test old-style --rev
1979
1979
1980 $ hg tag 'foo-bar'
1980 $ hg tag 'foo-bar'
1981 $ testlog -r 'foo-bar'
1981 $ testlog -r 'foo-bar'
1982 ['foo-bar']
1982 ['foo-bar']
1983 []
1983 []
1984
1984
1985 Test --follow and forward --rev
1985 Test --follow and forward --rev
1986
1986
1987 $ hg up -q 6
1987 $ hg up -q 6
1988 $ echo g > g
1988 $ echo g > g
1989 $ hg ci -Am 'add g' g
1989 $ hg ci -Am 'add g' g
1990 created new head
1990 created new head
1991 $ hg up -q 2
1991 $ hg up -q 2
1992 $ hg log -G --template "{rev} {desc|firstline}\n"
1992 $ hg log -G --template "{rev} {desc|firstline}\n"
1993 o 8 add g
1993 o 8 add g
1994 |
1994 |
1995 | o 7 Added tag foo-bar for changeset fc281d8ff18d
1995 | o 7 Added tag foo-bar for changeset fc281d8ff18d
1996 |/
1996 |/
1997 o 6 merge 5 and 4
1997 o 6 merge 5 and 4
1998 |\
1998 |\
1999 | o 5 add another e
1999 | o 5 add another e
2000 | |
2000 | |
2001 o | 4 mv dir/b e
2001 o | 4 mv dir/b e
2002 |/
2002 |/
2003 o 3 mv a b; add d
2003 o 3 mv a b; add d
2004 |
2004 |
2005 @ 2 mv b dir/b
2005 @ 2 mv b dir/b
2006 |
2006 |
2007 o 1 copy a b
2007 o 1 copy a b
2008 |
2008 |
2009 o 0 add a
2009 o 0 add a
2010
2010
2011 $ hg archive -r 7 archive
2011 $ hg archive -r 7 archive
2012 $ grep changessincelatesttag archive/.hg_archival.txt
2012 $ grep changessincelatesttag archive/.hg_archival.txt
2013 changessincelatesttag: 1
2013 changessincelatesttag: 1
2014 $ rm -r archive
2014 $ rm -r archive
2015
2015
2016 changessincelatesttag with no prior tag
2016 changessincelatesttag with no prior tag
2017 $ hg archive -r 4 archive
2017 $ hg archive -r 4 archive
2018 $ grep changessincelatesttag archive/.hg_archival.txt
2018 $ grep changessincelatesttag archive/.hg_archival.txt
2019 changessincelatesttag: 5
2019 changessincelatesttag: 5
2020
2020
2021 $ hg export 'all()'
2021 $ hg export 'all()'
2022 # HG changeset patch
2022 # HG changeset patch
2023 # User test
2023 # User test
2024 # Date 0 0
2024 # Date 0 0
2025 # Thu Jan 01 00:00:00 1970 +0000
2025 # Thu Jan 01 00:00:00 1970 +0000
2026 # Node ID f8035bb17114da16215af3436ec5222428ace8ee
2026 # Node ID f8035bb17114da16215af3436ec5222428ace8ee
2027 # Parent 0000000000000000000000000000000000000000
2027 # Parent 0000000000000000000000000000000000000000
2028 add a
2028 add a
2029
2029
2030 diff -r 000000000000 -r f8035bb17114 a
2030 diff -r 000000000000 -r f8035bb17114 a
2031 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2031 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2032 +++ b/a Thu Jan 01 00:00:00 1970 +0000
2032 +++ b/a Thu Jan 01 00:00:00 1970 +0000
2033 @@ -0,0 +1,1 @@
2033 @@ -0,0 +1,1 @@
2034 +a
2034 +a
2035 diff -r 000000000000 -r f8035bb17114 aa
2035 diff -r 000000000000 -r f8035bb17114 aa
2036 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2036 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2037 +++ b/aa Thu Jan 01 00:00:00 1970 +0000
2037 +++ b/aa Thu Jan 01 00:00:00 1970 +0000
2038 @@ -0,0 +1,1 @@
2038 @@ -0,0 +1,1 @@
2039 +aa
2039 +aa
2040 diff -r 000000000000 -r f8035bb17114 f
2040 diff -r 000000000000 -r f8035bb17114 f
2041 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2041 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2042 +++ b/f Thu Jan 01 00:00:00 1970 +0000
2042 +++ b/f Thu Jan 01 00:00:00 1970 +0000
2043 @@ -0,0 +1,1 @@
2043 @@ -0,0 +1,1 @@
2044 +f
2044 +f
2045 # HG changeset patch
2045 # HG changeset patch
2046 # User test
2046 # User test
2047 # Date 0 0
2047 # Date 0 0
2048 # Thu Jan 01 00:00:00 1970 +0000
2048 # Thu Jan 01 00:00:00 1970 +0000
2049 # Node ID 216d4c92cf98ff2b4641d508b76b529f3d424c92
2049 # Node ID 216d4c92cf98ff2b4641d508b76b529f3d424c92
2050 # Parent f8035bb17114da16215af3436ec5222428ace8ee
2050 # Parent f8035bb17114da16215af3436ec5222428ace8ee
2051 copy a b
2051 copy a b
2052
2052
2053 diff -r f8035bb17114 -r 216d4c92cf98 b
2053 diff -r f8035bb17114 -r 216d4c92cf98 b
2054 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2054 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2055 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2055 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2056 @@ -0,0 +1,1 @@
2056 @@ -0,0 +1,1 @@
2057 +a
2057 +a
2058 diff -r f8035bb17114 -r 216d4c92cf98 g
2058 diff -r f8035bb17114 -r 216d4c92cf98 g
2059 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2059 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2060 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2060 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2061 @@ -0,0 +1,1 @@
2061 @@ -0,0 +1,1 @@
2062 +f
2062 +f
2063 # HG changeset patch
2063 # HG changeset patch
2064 # User test
2064 # User test
2065 # Date 0 0
2065 # Date 0 0
2066 # Thu Jan 01 00:00:00 1970 +0000
2066 # Thu Jan 01 00:00:00 1970 +0000
2067 # Node ID bb573313a9e8349099b6ea2b2fb1fc7f424446f3
2067 # Node ID bb573313a9e8349099b6ea2b2fb1fc7f424446f3
2068 # Parent 216d4c92cf98ff2b4641d508b76b529f3d424c92
2068 # Parent 216d4c92cf98ff2b4641d508b76b529f3d424c92
2069 mv b dir/b
2069 mv b dir/b
2070
2070
2071 diff -r 216d4c92cf98 -r bb573313a9e8 b
2071 diff -r 216d4c92cf98 -r bb573313a9e8 b
2072 --- a/b Thu Jan 01 00:00:00 1970 +0000
2072 --- a/b Thu Jan 01 00:00:00 1970 +0000
2073 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2073 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2074 @@ -1,1 +0,0 @@
2074 @@ -1,1 +0,0 @@
2075 -a
2075 -a
2076 diff -r 216d4c92cf98 -r bb573313a9e8 dir/b
2076 diff -r 216d4c92cf98 -r bb573313a9e8 dir/b
2077 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2077 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2078 +++ b/dir/b Thu Jan 01 00:00:00 1970 +0000
2078 +++ b/dir/b Thu Jan 01 00:00:00 1970 +0000
2079 @@ -0,0 +1,1 @@
2079 @@ -0,0 +1,1 @@
2080 +a
2080 +a
2081 diff -r 216d4c92cf98 -r bb573313a9e8 f
2081 diff -r 216d4c92cf98 -r bb573313a9e8 f
2082 --- a/f Thu Jan 01 00:00:00 1970 +0000
2082 --- a/f Thu Jan 01 00:00:00 1970 +0000
2083 +++ b/f Thu Jan 01 00:00:00 1970 +0000
2083 +++ b/f Thu Jan 01 00:00:00 1970 +0000
2084 @@ -1,1 +1,2 @@
2084 @@ -1,1 +1,2 @@
2085 f
2085 f
2086 +f
2086 +f
2087 diff -r 216d4c92cf98 -r bb573313a9e8 g
2087 diff -r 216d4c92cf98 -r bb573313a9e8 g
2088 --- a/g Thu Jan 01 00:00:00 1970 +0000
2088 --- a/g Thu Jan 01 00:00:00 1970 +0000
2089 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2089 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2090 @@ -1,1 +1,2 @@
2090 @@ -1,1 +1,2 @@
2091 f
2091 f
2092 +g
2092 +g
2093 # HG changeset patch
2093 # HG changeset patch
2094 # User test
2094 # User test
2095 # Date 0 0
2095 # Date 0 0
2096 # Thu Jan 01 00:00:00 1970 +0000
2096 # Thu Jan 01 00:00:00 1970 +0000
2097 # Node ID 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2097 # Node ID 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2098 # Parent bb573313a9e8349099b6ea2b2fb1fc7f424446f3
2098 # Parent bb573313a9e8349099b6ea2b2fb1fc7f424446f3
2099 mv a b; add d
2099 mv a b; add d
2100
2100
2101 diff -r bb573313a9e8 -r 5918b8d165d1 a
2101 diff -r bb573313a9e8 -r 5918b8d165d1 a
2102 --- a/a Thu Jan 01 00:00:00 1970 +0000
2102 --- a/a Thu Jan 01 00:00:00 1970 +0000
2103 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2103 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2104 @@ -1,1 +0,0 @@
2104 @@ -1,1 +0,0 @@
2105 -a
2105 -a
2106 diff -r bb573313a9e8 -r 5918b8d165d1 b
2106 diff -r bb573313a9e8 -r 5918b8d165d1 b
2107 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2107 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2108 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2108 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2109 @@ -0,0 +1,1 @@
2109 @@ -0,0 +1,1 @@
2110 +a
2110 +a
2111 diff -r bb573313a9e8 -r 5918b8d165d1 d
2111 diff -r bb573313a9e8 -r 5918b8d165d1 d
2112 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2112 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2113 +++ b/d Thu Jan 01 00:00:00 1970 +0000
2113 +++ b/d Thu Jan 01 00:00:00 1970 +0000
2114 @@ -0,0 +1,1 @@
2114 @@ -0,0 +1,1 @@
2115 +a
2115 +a
2116 diff -r bb573313a9e8 -r 5918b8d165d1 g
2116 diff -r bb573313a9e8 -r 5918b8d165d1 g
2117 --- a/g Thu Jan 01 00:00:00 1970 +0000
2117 --- a/g Thu Jan 01 00:00:00 1970 +0000
2118 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2118 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2119 @@ -1,2 +1,2 @@
2119 @@ -1,2 +1,2 @@
2120 f
2120 f
2121 -g
2121 -g
2122 +f
2122 +f
2123 # HG changeset patch
2123 # HG changeset patch
2124 # User test
2124 # User test
2125 # Date 0 0
2125 # Date 0 0
2126 # Thu Jan 01 00:00:00 1970 +0000
2126 # Thu Jan 01 00:00:00 1970 +0000
2127 # Node ID 17d952250a9d03cc3dc77b199ab60e959b9b0260
2127 # Node ID 17d952250a9d03cc3dc77b199ab60e959b9b0260
2128 # Parent 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2128 # Parent 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2129 mv dir/b e
2129 mv dir/b e
2130
2130
2131 diff -r 5918b8d165d1 -r 17d952250a9d dir/b
2131 diff -r 5918b8d165d1 -r 17d952250a9d dir/b
2132 --- a/dir/b Thu Jan 01 00:00:00 1970 +0000
2132 --- a/dir/b Thu Jan 01 00:00:00 1970 +0000
2133 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2133 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2134 @@ -1,1 +0,0 @@
2134 @@ -1,1 +0,0 @@
2135 -a
2135 -a
2136 diff -r 5918b8d165d1 -r 17d952250a9d e
2136 diff -r 5918b8d165d1 -r 17d952250a9d e
2137 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2137 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2138 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2138 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2139 @@ -0,0 +1,1 @@
2139 @@ -0,0 +1,1 @@
2140 +a
2140 +a
2141 # HG changeset patch
2141 # HG changeset patch
2142 # User test
2142 # User test
2143 # Date 0 0
2143 # Date 0 0
2144 # Thu Jan 01 00:00:00 1970 +0000
2144 # Thu Jan 01 00:00:00 1970 +0000
2145 # Node ID 99b31f1c2782e2deb1723cef08930f70fc84b37b
2145 # Node ID 99b31f1c2782e2deb1723cef08930f70fc84b37b
2146 # Parent 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2146 # Parent 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2147 add another e
2147 add another e
2148
2148
2149 diff -r 5918b8d165d1 -r 99b31f1c2782 e
2149 diff -r 5918b8d165d1 -r 99b31f1c2782 e
2150 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2150 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2151 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2151 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2152 @@ -0,0 +1,1 @@
2152 @@ -0,0 +1,1 @@
2153 +ee
2153 +ee
2154 # HG changeset patch
2154 # HG changeset patch
2155 # User test
2155 # User test
2156 # Date 0 0
2156 # Date 0 0
2157 # Thu Jan 01 00:00:00 1970 +0000
2157 # Thu Jan 01 00:00:00 1970 +0000
2158 # Node ID fc281d8ff18d999ad6497b3d27390bcd695dcc73
2158 # Node ID fc281d8ff18d999ad6497b3d27390bcd695dcc73
2159 # Parent 99b31f1c2782e2deb1723cef08930f70fc84b37b
2159 # Parent 99b31f1c2782e2deb1723cef08930f70fc84b37b
2160 # Parent 17d952250a9d03cc3dc77b199ab60e959b9b0260
2160 # Parent 17d952250a9d03cc3dc77b199ab60e959b9b0260
2161 merge 5 and 4
2161 merge 5 and 4
2162
2162
2163 diff -r 99b31f1c2782 -r fc281d8ff18d dir/b
2163 diff -r 99b31f1c2782 -r fc281d8ff18d dir/b
2164 --- a/dir/b Thu Jan 01 00:00:00 1970 +0000
2164 --- a/dir/b Thu Jan 01 00:00:00 1970 +0000
2165 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2165 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2166 @@ -1,1 +0,0 @@
2166 @@ -1,1 +0,0 @@
2167 -a
2167 -a
2168 diff -r 99b31f1c2782 -r fc281d8ff18d e
2168 diff -r 99b31f1c2782 -r fc281d8ff18d e
2169 --- a/e Thu Jan 01 00:00:00 1970 +0000
2169 --- a/e Thu Jan 01 00:00:00 1970 +0000
2170 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2170 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2171 @@ -1,1 +1,1 @@
2171 @@ -1,1 +1,1 @@
2172 -ee
2172 -ee
2173 +merge
2173 +merge
2174 # HG changeset patch
2174 # HG changeset patch
2175 # User test
2175 # User test
2176 # Date 0 0
2176 # Date 0 0
2177 # Thu Jan 01 00:00:00 1970 +0000
2177 # Thu Jan 01 00:00:00 1970 +0000
2178 # Node ID 02dbb8e276b8ab7abfd07cab50c901647e75c2dd
2178 # Node ID 02dbb8e276b8ab7abfd07cab50c901647e75c2dd
2179 # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73
2179 # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73
2180 Added tag foo-bar for changeset fc281d8ff18d
2180 Added tag foo-bar for changeset fc281d8ff18d
2181
2181
2182 diff -r fc281d8ff18d -r 02dbb8e276b8 .hgtags
2182 diff -r fc281d8ff18d -r 02dbb8e276b8 .hgtags
2183 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2183 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2184 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
2184 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
2185 @@ -0,0 +1,1 @@
2185 @@ -0,0 +1,1 @@
2186 +fc281d8ff18d999ad6497b3d27390bcd695dcc73 foo-bar
2186 +fc281d8ff18d999ad6497b3d27390bcd695dcc73 foo-bar
2187 # HG changeset patch
2187 # HG changeset patch
2188 # User test
2188 # User test
2189 # Date 0 0
2189 # Date 0 0
2190 # Thu Jan 01 00:00:00 1970 +0000
2190 # Thu Jan 01 00:00:00 1970 +0000
2191 # Node ID 24c2e826ddebf80f9dcd60b856bdb8e6715c5449
2191 # Node ID 24c2e826ddebf80f9dcd60b856bdb8e6715c5449
2192 # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73
2192 # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73
2193 add g
2193 add g
2194
2194
2195 diff -r fc281d8ff18d -r 24c2e826ddeb g
2195 diff -r fc281d8ff18d -r 24c2e826ddeb g
2196 --- a/g Thu Jan 01 00:00:00 1970 +0000
2196 --- a/g Thu Jan 01 00:00:00 1970 +0000
2197 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2197 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2198 @@ -1,2 +1,1 @@
2198 @@ -1,2 +1,1 @@
2199 -f
2199 -f
2200 -f
2200 -f
2201 +g
2201 +g
2202 $ testlog --follow -r6 -r8 -r5 -r7 -r4
2202 $ testlog --follow -r6 -r8 -r5 -r7 -r4
2203 ['6', '8', '5', '7', '4']
2203 ['6', '8', '5', '7', '4']
2204 (group
2204 (group
2205 (func
2205 (func
2206 ('symbol', 'descendants')
2206 ('symbol', 'descendants')
2207 (func
2207 (func
2208 ('symbol', 'rev')
2208 ('symbol', 'rev')
2209 ('symbol', '6'))))
2209 ('symbol', '6'))))
2210
2210
2211 Test --follow-first and forward --rev
2211 Test --follow-first and forward --rev
2212
2212
2213 $ testlog --follow-first -r6 -r8 -r5 -r7 -r4
2213 $ testlog --follow-first -r6 -r8 -r5 -r7 -r4
2214 ['6', '8', '5', '7', '4']
2214 ['6', '8', '5', '7', '4']
2215 (group
2215 (group
2216 (func
2216 (func
2217 ('symbol', '_firstdescendants')
2217 ('symbol', '_firstdescendants')
2218 (func
2218 (func
2219 ('symbol', 'rev')
2219 ('symbol', 'rev')
2220 ('symbol', '6'))))
2220 ('symbol', '6'))))
2221 --- log.nodes * (glob)
2221 --- log.nodes * (glob)
2222 +++ glog.nodes * (glob)
2222 +++ glog.nodes * (glob)
2223 @@ -1,3 +1,3 @@
2223 @@ -1,3 +1,3 @@
2224 -nodetag 6
2224 -nodetag 6
2225 nodetag 8
2225 nodetag 8
2226 nodetag 7
2226 nodetag 7
2227 +nodetag 6
2227 +nodetag 6
2228
2228
2229 Test --follow and backward --rev
2229 Test --follow and backward --rev
2230
2230
2231 $ testlog --follow -r6 -r5 -r7 -r8 -r4
2231 $ testlog --follow -r6 -r5 -r7 -r8 -r4
2232 ['6', '5', '7', '8', '4']
2232 ['6', '5', '7', '8', '4']
2233 (group
2233 (group
2234 (func
2234 (func
2235 ('symbol', 'ancestors')
2235 ('symbol', 'ancestors')
2236 (func
2236 (func
2237 ('symbol', 'rev')
2237 ('symbol', 'rev')
2238 ('symbol', '6'))))
2238 ('symbol', '6'))))
2239
2239
2240 Test --follow-first and backward --rev
2240 Test --follow-first and backward --rev
2241
2241
2242 $ testlog --follow-first -r6 -r5 -r7 -r8 -r4
2242 $ testlog --follow-first -r6 -r5 -r7 -r8 -r4
2243 ['6', '5', '7', '8', '4']
2243 ['6', '5', '7', '8', '4']
2244 (group
2244 (group
2245 (func
2245 (func
2246 ('symbol', '_firstancestors')
2246 ('symbol', '_firstancestors')
2247 (func
2247 (func
2248 ('symbol', 'rev')
2248 ('symbol', 'rev')
2249 ('symbol', '6'))))
2249 ('symbol', '6'))))
2250
2250
2251 Test --follow with --rev of graphlog extension
2251 Test --follow with --rev of graphlog extension
2252
2252
2253 $ hg --config extensions.graphlog= glog -qfr1
2253 $ hg --config extensions.graphlog= glog -qfr1
2254 o 1:216d4c92cf98
2254 o 1:216d4c92cf98
2255 |
2255 |
2256 o 0:f8035bb17114
2256 o 0:f8035bb17114
2257
2257
2258
2258
2259 Test subdir
2259 Test subdir
2260
2260
2261 $ hg up -q 3
2261 $ hg up -q 3
2262 $ cd dir
2262 $ cd dir
2263 $ testlog .
2263 $ testlog .
2264 []
2264 []
2265 (group
2265 (group
2266 (func
2266 (func
2267 ('symbol', '_matchfiles')
2267 ('symbol', '_matchfiles')
2268 (list
2268 (list
2269 ('string', 'r:')
2269 ('string', 'r:')
2270 ('string', 'd:relpath')
2270 ('string', 'd:relpath')
2271 ('string', 'p:.'))))
2271 ('string', 'p:.'))))
2272 $ testlog ../b
2272 $ testlog ../b
2273 []
2273 []
2274 (group
2274 (group
2275 (group
2275 (group
2276 (func
2276 (func
2277 ('symbol', 'filelog')
2277 ('symbol', 'filelog')
2278 ('string', '../b'))))
2278 ('string', '../b'))))
2279 $ testlog -f ../b
2279 $ testlog -f ../b
2280 []
2280 []
2281 (group
2281 (group
2282 (group
2282 (group
2283 (func
2283 (func
2284 ('symbol', 'follow')
2284 ('symbol', 'follow')
2285 ('string', 'b'))))
2285 ('string', 'b'))))
2286 $ cd ..
2286 $ cd ..
2287
2287
2288 Test --hidden
2288 Test --hidden
2289 (enable obsolete)
2289 (enable obsolete)
2290
2290
2291 $ cat >> $HGRCPATH << EOF
2291 $ cat >> $HGRCPATH << EOF
2292 > [experimental]
2292 > [experimental]
2293 > evolution=createmarkers
2293 > evolution=createmarkers
2294 > EOF
2294 > EOF
2295
2295
2296 $ hg debugobsolete `hg id --debug -i -r 8`
2296 $ hg debugobsolete `hg id --debug -i -r 8`
2297 $ testlog
2297 $ testlog
2298 []
2298 []
2299 []
2299 []
2300 $ testlog --hidden
2300 $ testlog --hidden
2301 []
2301 []
2302 []
2302 []
2303 $ hg log -G --template '{rev} {desc}\n'
2303 $ hg log -G --template '{rev} {desc}\n'
2304 o 7 Added tag foo-bar for changeset fc281d8ff18d
2304 o 7 Added tag foo-bar for changeset fc281d8ff18d
2305 |
2305 |
2306 o 6 merge 5 and 4
2306 o 6 merge 5 and 4
2307 |\
2307 |\
2308 | o 5 add another e
2308 | o 5 add another e
2309 | |
2309 | |
2310 o | 4 mv dir/b e
2310 o | 4 mv dir/b e
2311 |/
2311 |/
2312 @ 3 mv a b; add d
2312 @ 3 mv a b; add d
2313 |
2313 |
2314 o 2 mv b dir/b
2314 o 2 mv b dir/b
2315 |
2315 |
2316 o 1 copy a b
2316 o 1 copy a b
2317 |
2317 |
2318 o 0 add a
2318 o 0 add a
2319
2319
2320
2320
2321 A template without trailing newline should do something sane
2321 A template without trailing newline should do something sane
2322
2322
2323 $ hg log -G -r ::2 --template '{rev} {desc}'
2323 $ hg log -G -r ::2 --template '{rev} {desc}'
2324 o 2 mv b dir/b
2324 o 2 mv b dir/b
2325 |
2325 |
2326 o 1 copy a b
2326 o 1 copy a b
2327 |
2327 |
2328 o 0 add a
2328 o 0 add a
2329
2329
2330
2330
2331 Extra newlines must be preserved
2331 Extra newlines must be preserved
2332
2332
2333 $ hg log -G -r ::2 --template '\n{rev} {desc}\n\n'
2333 $ hg log -G -r ::2 --template '\n{rev} {desc}\n\n'
2334 o
2334 o
2335 | 2 mv b dir/b
2335 | 2 mv b dir/b
2336 |
2336 |
2337 o
2337 o
2338 | 1 copy a b
2338 | 1 copy a b
2339 |
2339 |
2340 o
2340 o
2341 0 add a
2341 0 add a
2342
2342
2343
2343
2344 The almost-empty template should do something sane too ...
2344 The almost-empty template should do something sane too ...
2345
2345
2346 $ hg log -G -r ::2 --template '\n'
2346 $ hg log -G -r ::2 --template '\n'
2347 o
2347 o
2348 |
2348 |
2349 o
2349 o
2350 |
2350 |
2351 o
2351 o
2352
2352
2353
2353
2354 issue3772
2354 issue3772
2355
2355
2356 $ hg log -G -r :null
2356 $ hg log -G -r :null
2357 o changeset: 0:f8035bb17114
2357 o changeset: 0:f8035bb17114
2358 | user: test
2358 | user: test
2359 | date: Thu Jan 01 00:00:00 1970 +0000
2359 | date: Thu Jan 01 00:00:00 1970 +0000
2360 | summary: add a
2360 | summary: add a
2361 |
2361 |
2362 o changeset: -1:000000000000
2362 o changeset: -1:000000000000
2363 user:
2363 user:
2364 date: Thu Jan 01 00:00:00 1970 +0000
2364 date: Thu Jan 01 00:00:00 1970 +0000
2365
2365
2366 $ hg log -G -r null:null
2366 $ hg log -G -r null:null
2367 o changeset: -1:000000000000
2367 o changeset: -1:000000000000
2368 user:
2368 user:
2369 date: Thu Jan 01 00:00:00 1970 +0000
2369 date: Thu Jan 01 00:00:00 1970 +0000
2370
2370
2371
2371
2372 should not draw line down to null due to the magic of fullreposet
2372 should not draw line down to null due to the magic of fullreposet
2373
2373
2374 $ hg log -G -r 'all()' | tail -6
2374 $ hg log -G -r 'all()' | tail -6
2375 |
2375 |
2376 o changeset: 0:f8035bb17114
2376 o changeset: 0:f8035bb17114
2377 user: test
2377 user: test
2378 date: Thu Jan 01 00:00:00 1970 +0000
2378 date: Thu Jan 01 00:00:00 1970 +0000
2379 summary: add a
2379 summary: add a
2380
2380
2381
2381
2382 $ hg log -G -r 'branch(default)' | tail -6
2382 $ hg log -G -r 'branch(default)' | tail -6
2383 |
2383 |
2384 o changeset: 0:f8035bb17114
2384 o changeset: 0:f8035bb17114
2385 user: test
2385 user: test
2386 date: Thu Jan 01 00:00:00 1970 +0000
2386 date: Thu Jan 01 00:00:00 1970 +0000
2387 summary: add a
2387 summary: add a
2388
2388
2389
2389
2390 working-directory revision
2390 working-directory revision
2391
2391
2392 $ hg log -G -qr '. + wdir()'
2392 $ hg log -G -qr '. + wdir()'
2393 o 2147483647:ffffffffffff
2393 o 2147483647:ffffffffffff
2394 |
2394 |
2395 @ 3:5918b8d165d1
2395 @ 3:5918b8d165d1
2396 |
2396 |
2397 ~
2397 ~
2398
2398
2399 node template with changeset_printer:
2399 node template with changeset_printer:
2400
2400
2401 $ hg log -Gqr 5:7 --config ui.graphnodetemplate='{rev}'
2401 $ hg log -Gqr 5:7 --config ui.graphnodetemplate='{rev}'
2402 7 7:02dbb8e276b8
2402 7 7:02dbb8e276b8
2403 |
2403 |
2404 6 6:fc281d8ff18d
2404 6 6:fc281d8ff18d
2405 |\
2405 |\
2406 | ~
2406 | ~
2407 5 5:99b31f1c2782
2407 5 5:99b31f1c2782
2408 |
2408 |
2409 ~
2409 ~
2410
2410
2411 node template with changeset_templater (shared cache variable):
2411 node template with changeset_templater (shared cache variable):
2412
2412
2413 $ hg log -Gr 5:7 -T '{latesttag % "{rev} {tag}+{distance}"}\n' \
2413 $ hg log -Gr 5:7 -T '{latesttag % "{rev} {tag}+{distance}"}\n' \
2414 > --config ui.graphnodetemplate='{ifeq(latesttagdistance, 0, "#", graphnode)}'
2414 > --config ui.graphnodetemplate='{ifeq(latesttagdistance, 0, "#", graphnode)}'
2415 o 7 foo-bar+1
2415 o 7 foo-bar+1
2416 |
2416 |
2417 # 6 foo-bar+0
2417 # 6 foo-bar+0
2418 |\
2418 |\
2419 | ~
2419 | ~
2420 o 5 null+5
2420 o 5 null+5
2421 |
2421 |
2422 ~
2422 ~
2423
2423
2424 label() should just work in node template:
2424 label() should just work in node template:
2425
2425
2426 $ hg log -Gqr 7 --config extensions.color= --color=debug \
2426 $ hg log -Gqr 7 --config extensions.color= --color=debug \
2427 > --config ui.graphnodetemplate='{label("branch.{branch}", rev)}'
2427 > --config ui.graphnodetemplate='{label("branch.{branch}", rev)}'
2428 [branch.default|7] [log.node|7:02dbb8e276b8]
2428 [branch.default|7] [log.node|7:02dbb8e276b8]
2429 |
2429 |
2430 ~
2430 ~
2431
2431
2432 $ cd ..
2432 $ cd ..
2433
2433
2434 change graph edge styling
2434 change graph edge styling
2435
2435
2436 $ cd repo
2436 $ cd repo
2437 $ cat << EOF >> $HGRCPATH
2437 $ cat << EOF >> $HGRCPATH
2438 > [experimental]
2438 > [experimental]
2439 > graphstyle.parent = |
2439 > graphstyle.parent = |
2440 > graphstyle.grandparent = :
2440 > graphstyle.grandparent = :
2441 > graphstyle.missing =
2441 > graphstyle.missing =
2442 > EOF
2442 > EOF
2443 $ hg log -G -r 'file("a")' -m
2443 $ hg log -G -r 'file("a")' -m
2444 @ changeset: 36:08a19a744424
2444 @ changeset: 36:08a19a744424
2445 : branch: branch
2445 : branch: branch
2446 : tag: tip
2446 : tag: tip
2447 : parent: 35:9159c3644c5e
2447 : parent: 35:9159c3644c5e
2448 : parent: 35:9159c3644c5e
2448 : parent: 35:9159c3644c5e
2449 : user: test
2449 : user: test
2450 : date: Thu Jan 01 00:00:36 1970 +0000
2450 : date: Thu Jan 01 00:00:36 1970 +0000
2451 : summary: (36) buggy merge: identical parents
2451 : summary: (36) buggy merge: identical parents
2452 :
2452 :
2453 o changeset: 32:d06dffa21a31
2453 o changeset: 32:d06dffa21a31
2454 |\ parent: 27:886ed638191b
2454 |\ parent: 27:886ed638191b
2455 | : parent: 31:621d83e11f67
2455 | : parent: 31:621d83e11f67
2456 | : user: test
2456 | : user: test
2457 | : date: Thu Jan 01 00:00:32 1970 +0000
2457 | : date: Thu Jan 01 00:00:32 1970 +0000
2458 | : summary: (32) expand
2458 | : summary: (32) expand
2459 | :
2459 | :
2460 o : changeset: 31:621d83e11f67
2460 o : changeset: 31:621d83e11f67
2461 |\: parent: 21:d42a756af44d
2461 |\: parent: 21:d42a756af44d
2462 | : parent: 30:6e11cd4b648f
2462 | : parent: 30:6e11cd4b648f
2463 | : user: test
2463 | : user: test
2464 | : date: Thu Jan 01 00:00:31 1970 +0000
2464 | : date: Thu Jan 01 00:00:31 1970 +0000
2465 | : summary: (31) expand
2465 | : summary: (31) expand
2466 | :
2466 | :
2467 o : changeset: 30:6e11cd4b648f
2467 o : changeset: 30:6e11cd4b648f
2468 |\ \ parent: 28:44ecd0b9ae99
2468 |\ \ parent: 28:44ecd0b9ae99
2469 | ~ : parent: 29:cd9bb2be7593
2469 | ~ : parent: 29:cd9bb2be7593
2470 | : user: test
2470 | : user: test
2471 | : date: Thu Jan 01 00:00:30 1970 +0000
2471 | : date: Thu Jan 01 00:00:30 1970 +0000
2472 | : summary: (30) expand
2472 | : summary: (30) expand
2473 | /
2473 | /
2474 o : changeset: 28:44ecd0b9ae99
2474 o : changeset: 28:44ecd0b9ae99
2475 |\ \ parent: 1:6db2ef61d156
2475 |\ \ parent: 1:6db2ef61d156
2476 | ~ : parent: 26:7f25b6c2f0b9
2476 | ~ : parent: 26:7f25b6c2f0b9
2477 | : user: test
2477 | : user: test
2478 | : date: Thu Jan 01 00:00:28 1970 +0000
2478 | : date: Thu Jan 01 00:00:28 1970 +0000
2479 | : summary: (28) merge zero known
2479 | : summary: (28) merge zero known
2480 | /
2480 | /
2481 o : changeset: 26:7f25b6c2f0b9
2481 o : changeset: 26:7f25b6c2f0b9
2482 |\ \ parent: 18:1aa84d96232a
2482 |\ \ parent: 18:1aa84d96232a
2483 | | : parent: 25:91da8ed57247
2483 | | : parent: 25:91da8ed57247
2484 | | : user: test
2484 | | : user: test
2485 | | : date: Thu Jan 01 00:00:26 1970 +0000
2485 | | : date: Thu Jan 01 00:00:26 1970 +0000
2486 | | : summary: (26) merge one known; far right
2486 | | : summary: (26) merge one known; far right
2487 | | :
2487 | | :
2488 | o : changeset: 25:91da8ed57247
2488 | o : changeset: 25:91da8ed57247
2489 | |\: parent: 21:d42a756af44d
2489 | |\: parent: 21:d42a756af44d
2490 | | : parent: 24:a9c19a3d96b7
2490 | | : parent: 24:a9c19a3d96b7
2491 | | : user: test
2491 | | : user: test
2492 | | : date: Thu Jan 01 00:00:25 1970 +0000
2492 | | : date: Thu Jan 01 00:00:25 1970 +0000
2493 | | : summary: (25) merge one known; far left
2493 | | : summary: (25) merge one known; far left
2494 | | :
2494 | | :
2495 | o : changeset: 24:a9c19a3d96b7
2495 | o : changeset: 24:a9c19a3d96b7
2496 | |\ \ parent: 0:e6eb3150255d
2496 | |\ \ parent: 0:e6eb3150255d
2497 | | ~ : parent: 23:a01cddf0766d
2497 | | ~ : parent: 23:a01cddf0766d
2498 | | : user: test
2498 | | : user: test
2499 | | : date: Thu Jan 01 00:00:24 1970 +0000
2499 | | : date: Thu Jan 01 00:00:24 1970 +0000
2500 | | : summary: (24) merge one known; immediate right
2500 | | : summary: (24) merge one known; immediate right
2501 | | /
2501 | | /
2502 | o : changeset: 23:a01cddf0766d
2502 | o : changeset: 23:a01cddf0766d
2503 | |\ \ parent: 1:6db2ef61d156
2503 | |\ \ parent: 1:6db2ef61d156
2504 | | ~ : parent: 22:e0d9cccacb5d
2504 | | ~ : parent: 22:e0d9cccacb5d
2505 | | : user: test
2505 | | : user: test
2506 | | : date: Thu Jan 01 00:00:23 1970 +0000
2506 | | : date: Thu Jan 01 00:00:23 1970 +0000
2507 | | : summary: (23) merge one known; immediate left
2507 | | : summary: (23) merge one known; immediate left
2508 | | /
2508 | | /
2509 | o : changeset: 22:e0d9cccacb5d
2509 | o : changeset: 22:e0d9cccacb5d
2510 |/:/ parent: 18:1aa84d96232a
2510 |/:/ parent: 18:1aa84d96232a
2511 | : parent: 21:d42a756af44d
2511 | : parent: 21:d42a756af44d
2512 | : user: test
2512 | : user: test
2513 | : date: Thu Jan 01 00:00:22 1970 +0000
2513 | : date: Thu Jan 01 00:00:22 1970 +0000
2514 | : summary: (22) merge two known; one far left, one far right
2514 | : summary: (22) merge two known; one far left, one far right
2515 | :
2515 | :
2516 | o changeset: 21:d42a756af44d
2516 | o changeset: 21:d42a756af44d
2517 | |\ parent: 19:31ddc2c1573b
2517 | |\ parent: 19:31ddc2c1573b
2518 | | | parent: 20:d30ed6450e32
2518 | | | parent: 20:d30ed6450e32
2519 | | | user: test
2519 | | | user: test
2520 | | | date: Thu Jan 01 00:00:21 1970 +0000
2520 | | | date: Thu Jan 01 00:00:21 1970 +0000
2521 | | | summary: (21) expand
2521 | | | summary: (21) expand
2522 | | |
2522 | | |
2523 +---o changeset: 20:d30ed6450e32
2523 +---o changeset: 20:d30ed6450e32
2524 | | | parent: 0:e6eb3150255d
2524 | | | parent: 0:e6eb3150255d
2525 | | ~ parent: 18:1aa84d96232a
2525 | | ~ parent: 18:1aa84d96232a
2526 | | user: test
2526 | | user: test
2527 | | date: Thu Jan 01 00:00:20 1970 +0000
2527 | | date: Thu Jan 01 00:00:20 1970 +0000
2528 | | summary: (20) merge two known; two far right
2528 | | summary: (20) merge two known; two far right
2529 | |
2529 | |
2530 | o changeset: 19:31ddc2c1573b
2530 | o changeset: 19:31ddc2c1573b
2531 | |\ parent: 15:1dda3f72782d
2531 | |\ parent: 15:1dda3f72782d
2532 | | | parent: 17:44765d7c06e0
2532 | | | parent: 17:44765d7c06e0
2533 | | | user: test
2533 | | | user: test
2534 | | | date: Thu Jan 01 00:00:19 1970 +0000
2534 | | | date: Thu Jan 01 00:00:19 1970 +0000
2535 | | | summary: (19) expand
2535 | | | summary: (19) expand
2536 | | |
2536 | | |
2537 o | | changeset: 18:1aa84d96232a
2537 o | | changeset: 18:1aa84d96232a
2538 |\| | parent: 1:6db2ef61d156
2538 |\| | parent: 1:6db2ef61d156
2539 ~ | | parent: 15:1dda3f72782d
2539 ~ | | parent: 15:1dda3f72782d
2540 | | user: test
2540 | | user: test
2541 | | date: Thu Jan 01 00:00:18 1970 +0000
2541 | | date: Thu Jan 01 00:00:18 1970 +0000
2542 | | summary: (18) merge two known; two far left
2542 | | summary: (18) merge two known; two far left
2543 / /
2543 / /
2544 | o changeset: 17:44765d7c06e0
2544 | o changeset: 17:44765d7c06e0
2545 | |\ parent: 12:86b91144a6e9
2545 | |\ parent: 12:86b91144a6e9
2546 | | | parent: 16:3677d192927d
2546 | | | parent: 16:3677d192927d
2547 | | | user: test
2547 | | | user: test
2548 | | | date: Thu Jan 01 00:00:17 1970 +0000
2548 | | | date: Thu Jan 01 00:00:17 1970 +0000
2549 | | | summary: (17) expand
2549 | | | summary: (17) expand
2550 | | |
2550 | | |
2551 | | o changeset: 16:3677d192927d
2551 | | o changeset: 16:3677d192927d
2552 | | |\ parent: 0:e6eb3150255d
2552 | | |\ parent: 0:e6eb3150255d
2553 | | ~ ~ parent: 1:6db2ef61d156
2553 | | ~ ~ parent: 1:6db2ef61d156
2554 | | user: test
2554 | | user: test
2555 | | date: Thu Jan 01 00:00:16 1970 +0000
2555 | | date: Thu Jan 01 00:00:16 1970 +0000
2556 | | summary: (16) merge two known; one immediate right, one near right
2556 | | summary: (16) merge two known; one immediate right, one near right
2557 | |
2557 | |
2558 o | changeset: 15:1dda3f72782d
2558 o | changeset: 15:1dda3f72782d
2559 |\ \ parent: 13:22d8966a97e3
2559 |\ \ parent: 13:22d8966a97e3
2560 | | | parent: 14:8eac370358ef
2560 | | | parent: 14:8eac370358ef
2561 | | | user: test
2561 | | | user: test
2562 | | | date: Thu Jan 01 00:00:15 1970 +0000
2562 | | | date: Thu Jan 01 00:00:15 1970 +0000
2563 | | | summary: (15) expand
2563 | | | summary: (15) expand
2564 | | |
2564 | | |
2565 | o | changeset: 14:8eac370358ef
2565 | o | changeset: 14:8eac370358ef
2566 | |\| parent: 0:e6eb3150255d
2566 | |\| parent: 0:e6eb3150255d
2567 | ~ | parent: 12:86b91144a6e9
2567 | ~ | parent: 12:86b91144a6e9
2568 | | user: test
2568 | | user: test
2569 | | date: Thu Jan 01 00:00:14 1970 +0000
2569 | | date: Thu Jan 01 00:00:14 1970 +0000
2570 | | summary: (14) merge two known; one immediate right, one far right
2570 | | summary: (14) merge two known; one immediate right, one far right
2571 | /
2571 | /
2572 o | changeset: 13:22d8966a97e3
2572 o | changeset: 13:22d8966a97e3
2573 |\ \ parent: 9:7010c0af0a35
2573 |\ \ parent: 9:7010c0af0a35
2574 | | | parent: 11:832d76e6bdf2
2574 | | | parent: 11:832d76e6bdf2
2575 | | | user: test
2575 | | | user: test
2576 | | | date: Thu Jan 01 00:00:13 1970 +0000
2576 | | | date: Thu Jan 01 00:00:13 1970 +0000
2577 | | | summary: (13) expand
2577 | | | summary: (13) expand
2578 | | |
2578 | | |
2579 +---o changeset: 12:86b91144a6e9
2579 +---o changeset: 12:86b91144a6e9
2580 | | | parent: 1:6db2ef61d156
2580 | | | parent: 1:6db2ef61d156
2581 | | ~ parent: 9:7010c0af0a35
2581 | | ~ parent: 9:7010c0af0a35
2582 | | user: test
2582 | | user: test
2583 | | date: Thu Jan 01 00:00:12 1970 +0000
2583 | | date: Thu Jan 01 00:00:12 1970 +0000
2584 | | summary: (12) merge two known; one immediate right, one far left
2584 | | summary: (12) merge two known; one immediate right, one far left
2585 | |
2585 | |
2586 | o changeset: 11:832d76e6bdf2
2586 | o changeset: 11:832d76e6bdf2
2587 | |\ parent: 6:b105a072e251
2587 | |\ parent: 6:b105a072e251
2588 | | | parent: 10:74c64d036d72
2588 | | | parent: 10:74c64d036d72
2589 | | | user: test
2589 | | | user: test
2590 | | | date: Thu Jan 01 00:00:11 1970 +0000
2590 | | | date: Thu Jan 01 00:00:11 1970 +0000
2591 | | | summary: (11) expand
2591 | | | summary: (11) expand
2592 | | |
2592 | | |
2593 | | o changeset: 10:74c64d036d72
2593 | | o changeset: 10:74c64d036d72
2594 | |/| parent: 0:e6eb3150255d
2594 | |/| parent: 0:e6eb3150255d
2595 | | ~ parent: 6:b105a072e251
2595 | | ~ parent: 6:b105a072e251
2596 | | user: test
2596 | | user: test
2597 | | date: Thu Jan 01 00:00:10 1970 +0000
2597 | | date: Thu Jan 01 00:00:10 1970 +0000
2598 | | summary: (10) merge two known; one immediate left, one near right
2598 | | summary: (10) merge two known; one immediate left, one near right
2599 | |
2599 | |
2600 o | changeset: 9:7010c0af0a35
2600 o | changeset: 9:7010c0af0a35
2601 |\ \ parent: 7:b632bb1b1224
2601 |\ \ parent: 7:b632bb1b1224
2602 | | | parent: 8:7a0b11f71937
2602 | | | parent: 8:7a0b11f71937
2603 | | | user: test
2603 | | | user: test
2604 | | | date: Thu Jan 01 00:00:09 1970 +0000
2604 | | | date: Thu Jan 01 00:00:09 1970 +0000
2605 | | | summary: (9) expand
2605 | | | summary: (9) expand
2606 | | |
2606 | | |
2607 | o | changeset: 8:7a0b11f71937
2607 | o | changeset: 8:7a0b11f71937
2608 |/| | parent: 0:e6eb3150255d
2608 |/| | parent: 0:e6eb3150255d
2609 | ~ | parent: 7:b632bb1b1224
2609 | ~ | parent: 7:b632bb1b1224
2610 | | user: test
2610 | | user: test
2611 | | date: Thu Jan 01 00:00:08 1970 +0000
2611 | | date: Thu Jan 01 00:00:08 1970 +0000
2612 | | summary: (8) merge two known; one immediate left, one far right
2612 | | summary: (8) merge two known; one immediate left, one far right
2613 | /
2613 | /
2614 o | changeset: 7:b632bb1b1224
2614 o | changeset: 7:b632bb1b1224
2615 |\ \ parent: 2:3d9a33b8d1e1
2615 |\ \ parent: 2:3d9a33b8d1e1
2616 | ~ | parent: 5:4409d547b708
2616 | ~ | parent: 5:4409d547b708
2617 | | user: test
2617 | | user: test
2618 | | date: Thu Jan 01 00:00:07 1970 +0000
2618 | | date: Thu Jan 01 00:00:07 1970 +0000
2619 | | summary: (7) expand
2619 | | summary: (7) expand
2620 | /
2620 | /
2621 | o changeset: 6:b105a072e251
2621 | o changeset: 6:b105a072e251
2622 |/| parent: 2:3d9a33b8d1e1
2622 |/| parent: 2:3d9a33b8d1e1
2623 | ~ parent: 5:4409d547b708
2623 | ~ parent: 5:4409d547b708
2624 | user: test
2624 | user: test
2625 | date: Thu Jan 01 00:00:06 1970 +0000
2625 | date: Thu Jan 01 00:00:06 1970 +0000
2626 | summary: (6) merge two known; one immediate left, one far left
2626 | summary: (6) merge two known; one immediate left, one far left
2627 |
2627 |
2628 o changeset: 5:4409d547b708
2628 o changeset: 5:4409d547b708
2629 |\ parent: 3:27eef8ed80b4
2629 |\ parent: 3:27eef8ed80b4
2630 | ~ parent: 4:26a8bac39d9f
2630 | ~ parent: 4:26a8bac39d9f
2631 | user: test
2631 | user: test
2632 | date: Thu Jan 01 00:00:05 1970 +0000
2632 | date: Thu Jan 01 00:00:05 1970 +0000
2633 | summary: (5) expand
2633 | summary: (5) expand
2634 |
2634 |
2635 o changeset: 4:26a8bac39d9f
2635 o changeset: 4:26a8bac39d9f
2636 |\ parent: 1:6db2ef61d156
2636 |\ parent: 1:6db2ef61d156
2637 ~ ~ parent: 3:27eef8ed80b4
2637 ~ ~ parent: 3:27eef8ed80b4
2638 user: test
2638 user: test
2639 date: Thu Jan 01 00:00:04 1970 +0000
2639 date: Thu Jan 01 00:00:04 1970 +0000
2640 summary: (4) merge two known; one immediate left, one immediate right
2640 summary: (4) merge two known; one immediate left, one immediate right
2641
2641
2642
2642
2643 Setting HGPLAIN ignores graphmod styling:
2643 Setting HGPLAIN ignores graphmod styling:
2644
2644
2645 $ HGPLAIN=1 hg log -G -r 'file("a")' -m
2645 $ HGPLAIN=1 hg log -G -r 'file("a")' -m
2646 @ changeset: 36:08a19a744424
2646 @ changeset: 36:08a19a744424
2647 | branch: branch
2647 | branch: branch
2648 | tag: tip
2648 | tag: tip
2649 | parent: 35:9159c3644c5e
2649 | parent: 35:9159c3644c5e
2650 | parent: 35:9159c3644c5e
2650 | parent: 35:9159c3644c5e
2651 | user: test
2651 | user: test
2652 | date: Thu Jan 01 00:00:36 1970 +0000
2652 | date: Thu Jan 01 00:00:36 1970 +0000
2653 | summary: (36) buggy merge: identical parents
2653 | summary: (36) buggy merge: identical parents
2654 |
2654 |
2655 o changeset: 32:d06dffa21a31
2655 o changeset: 32:d06dffa21a31
2656 |\ parent: 27:886ed638191b
2656 |\ parent: 27:886ed638191b
2657 | | parent: 31:621d83e11f67
2657 | | parent: 31:621d83e11f67
2658 | | user: test
2658 | | user: test
2659 | | date: Thu Jan 01 00:00:32 1970 +0000
2659 | | date: Thu Jan 01 00:00:32 1970 +0000
2660 | | summary: (32) expand
2660 | | summary: (32) expand
2661 | |
2661 | |
2662 o | changeset: 31:621d83e11f67
2662 o | changeset: 31:621d83e11f67
2663 |\| parent: 21:d42a756af44d
2663 |\| parent: 21:d42a756af44d
2664 | | parent: 30:6e11cd4b648f
2664 | | parent: 30:6e11cd4b648f
2665 | | user: test
2665 | | user: test
2666 | | date: Thu Jan 01 00:00:31 1970 +0000
2666 | | date: Thu Jan 01 00:00:31 1970 +0000
2667 | | summary: (31) expand
2667 | | summary: (31) expand
2668 | |
2668 | |
2669 o | changeset: 30:6e11cd4b648f
2669 o | changeset: 30:6e11cd4b648f
2670 |\ \ parent: 28:44ecd0b9ae99
2670 |\ \ parent: 28:44ecd0b9ae99
2671 | | | parent: 29:cd9bb2be7593
2671 | | | parent: 29:cd9bb2be7593
2672 | | | user: test
2672 | | | user: test
2673 | | | date: Thu Jan 01 00:00:30 1970 +0000
2673 | | | date: Thu Jan 01 00:00:30 1970 +0000
2674 | | | summary: (30) expand
2674 | | | summary: (30) expand
2675 | | |
2675 | | |
2676 o | | changeset: 28:44ecd0b9ae99
2676 o | | changeset: 28:44ecd0b9ae99
2677 |\ \ \ parent: 1:6db2ef61d156
2677 |\ \ \ parent: 1:6db2ef61d156
2678 | | | | parent: 26:7f25b6c2f0b9
2678 | | | | parent: 26:7f25b6c2f0b9
2679 | | | | user: test
2679 | | | | user: test
2680 | | | | date: Thu Jan 01 00:00:28 1970 +0000
2680 | | | | date: Thu Jan 01 00:00:28 1970 +0000
2681 | | | | summary: (28) merge zero known
2681 | | | | summary: (28) merge zero known
2682 | | | |
2682 | | | |
2683 o | | | changeset: 26:7f25b6c2f0b9
2683 o | | | changeset: 26:7f25b6c2f0b9
2684 |\ \ \ \ parent: 18:1aa84d96232a
2684 |\ \ \ \ parent: 18:1aa84d96232a
2685 | | | | | parent: 25:91da8ed57247
2685 | | | | | parent: 25:91da8ed57247
2686 | | | | | user: test
2686 | | | | | user: test
2687 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
2687 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
2688 | | | | | summary: (26) merge one known; far right
2688 | | | | | summary: (26) merge one known; far right
2689 | | | | |
2689 | | | | |
2690 | o-----+ changeset: 25:91da8ed57247
2690 | o-----+ changeset: 25:91da8ed57247
2691 | | | | | parent: 21:d42a756af44d
2691 | | | | | parent: 21:d42a756af44d
2692 | | | | | parent: 24:a9c19a3d96b7
2692 | | | | | parent: 24:a9c19a3d96b7
2693 | | | | | user: test
2693 | | | | | user: test
2694 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
2694 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
2695 | | | | | summary: (25) merge one known; far left
2695 | | | | | summary: (25) merge one known; far left
2696 | | | | |
2696 | | | | |
2697 | o | | | changeset: 24:a9c19a3d96b7
2697 | o | | | changeset: 24:a9c19a3d96b7
2698 | |\ \ \ \ parent: 0:e6eb3150255d
2698 | |\ \ \ \ parent: 0:e6eb3150255d
2699 | | | | | | parent: 23:a01cddf0766d
2699 | | | | | | parent: 23:a01cddf0766d
2700 | | | | | | user: test
2700 | | | | | | user: test
2701 | | | | | | date: Thu Jan 01 00:00:24 1970 +0000
2701 | | | | | | date: Thu Jan 01 00:00:24 1970 +0000
2702 | | | | | | summary: (24) merge one known; immediate right
2702 | | | | | | summary: (24) merge one known; immediate right
2703 | | | | | |
2703 | | | | | |
2704 | o---+ | | changeset: 23:a01cddf0766d
2704 | o---+ | | changeset: 23:a01cddf0766d
2705 | | | | | | parent: 1:6db2ef61d156
2705 | | | | | | parent: 1:6db2ef61d156
2706 | | | | | | parent: 22:e0d9cccacb5d
2706 | | | | | | parent: 22:e0d9cccacb5d
2707 | | | | | | user: test
2707 | | | | | | user: test
2708 | | | | | | date: Thu Jan 01 00:00:23 1970 +0000
2708 | | | | | | date: Thu Jan 01 00:00:23 1970 +0000
2709 | | | | | | summary: (23) merge one known; immediate left
2709 | | | | | | summary: (23) merge one known; immediate left
2710 | | | | | |
2710 | | | | | |
2711 | o-------+ changeset: 22:e0d9cccacb5d
2711 | o-------+ changeset: 22:e0d9cccacb5d
2712 | | | | | | parent: 18:1aa84d96232a
2712 | | | | | | parent: 18:1aa84d96232a
2713 |/ / / / / parent: 21:d42a756af44d
2713 |/ / / / / parent: 21:d42a756af44d
2714 | | | | | user: test
2714 | | | | | user: test
2715 | | | | | date: Thu Jan 01 00:00:22 1970 +0000
2715 | | | | | date: Thu Jan 01 00:00:22 1970 +0000
2716 | | | | | summary: (22) merge two known; one far left, one far right
2716 | | | | | summary: (22) merge two known; one far left, one far right
2717 | | | | |
2717 | | | | |
2718 | | | | o changeset: 21:d42a756af44d
2718 | | | | o changeset: 21:d42a756af44d
2719 | | | | |\ parent: 19:31ddc2c1573b
2719 | | | | |\ parent: 19:31ddc2c1573b
2720 | | | | | | parent: 20:d30ed6450e32
2720 | | | | | | parent: 20:d30ed6450e32
2721 | | | | | | user: test
2721 | | | | | | user: test
2722 | | | | | | date: Thu Jan 01 00:00:21 1970 +0000
2722 | | | | | | date: Thu Jan 01 00:00:21 1970 +0000
2723 | | | | | | summary: (21) expand
2723 | | | | | | summary: (21) expand
2724 | | | | | |
2724 | | | | | |
2725 +-+-------o changeset: 20:d30ed6450e32
2725 +-+-------o changeset: 20:d30ed6450e32
2726 | | | | | parent: 0:e6eb3150255d
2726 | | | | | parent: 0:e6eb3150255d
2727 | | | | | parent: 18:1aa84d96232a
2727 | | | | | parent: 18:1aa84d96232a
2728 | | | | | user: test
2728 | | | | | user: test
2729 | | | | | date: Thu Jan 01 00:00:20 1970 +0000
2729 | | | | | date: Thu Jan 01 00:00:20 1970 +0000
2730 | | | | | summary: (20) merge two known; two far right
2730 | | | | | summary: (20) merge two known; two far right
2731 | | | | |
2731 | | | | |
2732 | | | | o changeset: 19:31ddc2c1573b
2732 | | | | o changeset: 19:31ddc2c1573b
2733 | | | | |\ parent: 15:1dda3f72782d
2733 | | | | |\ parent: 15:1dda3f72782d
2734 | | | | | | parent: 17:44765d7c06e0
2734 | | | | | | parent: 17:44765d7c06e0
2735 | | | | | | user: test
2735 | | | | | | user: test
2736 | | | | | | date: Thu Jan 01 00:00:19 1970 +0000
2736 | | | | | | date: Thu Jan 01 00:00:19 1970 +0000
2737 | | | | | | summary: (19) expand
2737 | | | | | | summary: (19) expand
2738 | | | | | |
2738 | | | | | |
2739 o---+---+ | changeset: 18:1aa84d96232a
2739 o---+---+ | changeset: 18:1aa84d96232a
2740 | | | | | parent: 1:6db2ef61d156
2740 | | | | | parent: 1:6db2ef61d156
2741 / / / / / parent: 15:1dda3f72782d
2741 / / / / / parent: 15:1dda3f72782d
2742 | | | | | user: test
2742 | | | | | user: test
2743 | | | | | date: Thu Jan 01 00:00:18 1970 +0000
2743 | | | | | date: Thu Jan 01 00:00:18 1970 +0000
2744 | | | | | summary: (18) merge two known; two far left
2744 | | | | | summary: (18) merge two known; two far left
2745 | | | | |
2745 | | | | |
2746 | | | | o changeset: 17:44765d7c06e0
2746 | | | | o changeset: 17:44765d7c06e0
2747 | | | | |\ parent: 12:86b91144a6e9
2747 | | | | |\ parent: 12:86b91144a6e9
2748 | | | | | | parent: 16:3677d192927d
2748 | | | | | | parent: 16:3677d192927d
2749 | | | | | | user: test
2749 | | | | | | user: test
2750 | | | | | | date: Thu Jan 01 00:00:17 1970 +0000
2750 | | | | | | date: Thu Jan 01 00:00:17 1970 +0000
2751 | | | | | | summary: (17) expand
2751 | | | | | | summary: (17) expand
2752 | | | | | |
2752 | | | | | |
2753 +-+-------o changeset: 16:3677d192927d
2753 +-+-------o changeset: 16:3677d192927d
2754 | | | | | parent: 0:e6eb3150255d
2754 | | | | | parent: 0:e6eb3150255d
2755 | | | | | parent: 1:6db2ef61d156
2755 | | | | | parent: 1:6db2ef61d156
2756 | | | | | user: test
2756 | | | | | user: test
2757 | | | | | date: Thu Jan 01 00:00:16 1970 +0000
2757 | | | | | date: Thu Jan 01 00:00:16 1970 +0000
2758 | | | | | summary: (16) merge two known; one immediate right, one near right
2758 | | | | | summary: (16) merge two known; one immediate right, one near right
2759 | | | | |
2759 | | | | |
2760 | | | o | changeset: 15:1dda3f72782d
2760 | | | o | changeset: 15:1dda3f72782d
2761 | | | |\ \ parent: 13:22d8966a97e3
2761 | | | |\ \ parent: 13:22d8966a97e3
2762 | | | | | | parent: 14:8eac370358ef
2762 | | | | | | parent: 14:8eac370358ef
2763 | | | | | | user: test
2763 | | | | | | user: test
2764 | | | | | | date: Thu Jan 01 00:00:15 1970 +0000
2764 | | | | | | date: Thu Jan 01 00:00:15 1970 +0000
2765 | | | | | | summary: (15) expand
2765 | | | | | | summary: (15) expand
2766 | | | | | |
2766 | | | | | |
2767 +-------o | changeset: 14:8eac370358ef
2767 +-------o | changeset: 14:8eac370358ef
2768 | | | | |/ parent: 0:e6eb3150255d
2768 | | | | |/ parent: 0:e6eb3150255d
2769 | | | | | parent: 12:86b91144a6e9
2769 | | | | | parent: 12:86b91144a6e9
2770 | | | | | user: test
2770 | | | | | user: test
2771 | | | | | date: Thu Jan 01 00:00:14 1970 +0000
2771 | | | | | date: Thu Jan 01 00:00:14 1970 +0000
2772 | | | | | summary: (14) merge two known; one immediate right, one far right
2772 | | | | | summary: (14) merge two known; one immediate right, one far right
2773 | | | | |
2773 | | | | |
2774 | | | o | changeset: 13:22d8966a97e3
2774 | | | o | changeset: 13:22d8966a97e3
2775 | | | |\ \ parent: 9:7010c0af0a35
2775 | | | |\ \ parent: 9:7010c0af0a35
2776 | | | | | | parent: 11:832d76e6bdf2
2776 | | | | | | parent: 11:832d76e6bdf2
2777 | | | | | | user: test
2777 | | | | | | user: test
2778 | | | | | | date: Thu Jan 01 00:00:13 1970 +0000
2778 | | | | | | date: Thu Jan 01 00:00:13 1970 +0000
2779 | | | | | | summary: (13) expand
2779 | | | | | | summary: (13) expand
2780 | | | | | |
2780 | | | | | |
2781 | +---+---o changeset: 12:86b91144a6e9
2781 | +---+---o changeset: 12:86b91144a6e9
2782 | | | | | parent: 1:6db2ef61d156
2782 | | | | | parent: 1:6db2ef61d156
2783 | | | | | parent: 9:7010c0af0a35
2783 | | | | | parent: 9:7010c0af0a35
2784 | | | | | user: test
2784 | | | | | user: test
2785 | | | | | date: Thu Jan 01 00:00:12 1970 +0000
2785 | | | | | date: Thu Jan 01 00:00:12 1970 +0000
2786 | | | | | summary: (12) merge two known; one immediate right, one far left
2786 | | | | | summary: (12) merge two known; one immediate right, one far left
2787 | | | | |
2787 | | | | |
2788 | | | | o changeset: 11:832d76e6bdf2
2788 | | | | o changeset: 11:832d76e6bdf2
2789 | | | | |\ parent: 6:b105a072e251
2789 | | | | |\ parent: 6:b105a072e251
2790 | | | | | | parent: 10:74c64d036d72
2790 | | | | | | parent: 10:74c64d036d72
2791 | | | | | | user: test
2791 | | | | | | user: test
2792 | | | | | | date: Thu Jan 01 00:00:11 1970 +0000
2792 | | | | | | date: Thu Jan 01 00:00:11 1970 +0000
2793 | | | | | | summary: (11) expand
2793 | | | | | | summary: (11) expand
2794 | | | | | |
2794 | | | | | |
2795 +---------o changeset: 10:74c64d036d72
2795 +---------o changeset: 10:74c64d036d72
2796 | | | | |/ parent: 0:e6eb3150255d
2796 | | | | |/ parent: 0:e6eb3150255d
2797 | | | | | parent: 6:b105a072e251
2797 | | | | | parent: 6:b105a072e251
2798 | | | | | user: test
2798 | | | | | user: test
2799 | | | | | date: Thu Jan 01 00:00:10 1970 +0000
2799 | | | | | date: Thu Jan 01 00:00:10 1970 +0000
2800 | | | | | summary: (10) merge two known; one immediate left, one near right
2800 | | | | | summary: (10) merge two known; one immediate left, one near right
2801 | | | | |
2801 | | | | |
2802 | | | o | changeset: 9:7010c0af0a35
2802 | | | o | changeset: 9:7010c0af0a35
2803 | | | |\ \ parent: 7:b632bb1b1224
2803 | | | |\ \ parent: 7:b632bb1b1224
2804 | | | | | | parent: 8:7a0b11f71937
2804 | | | | | | parent: 8:7a0b11f71937
2805 | | | | | | user: test
2805 | | | | | | user: test
2806 | | | | | | date: Thu Jan 01 00:00:09 1970 +0000
2806 | | | | | | date: Thu Jan 01 00:00:09 1970 +0000
2807 | | | | | | summary: (9) expand
2807 | | | | | | summary: (9) expand
2808 | | | | | |
2808 | | | | | |
2809 +-------o | changeset: 8:7a0b11f71937
2809 +-------o | changeset: 8:7a0b11f71937
2810 | | | |/ / parent: 0:e6eb3150255d
2810 | | | |/ / parent: 0:e6eb3150255d
2811 | | | | | parent: 7:b632bb1b1224
2811 | | | | | parent: 7:b632bb1b1224
2812 | | | | | user: test
2812 | | | | | user: test
2813 | | | | | date: Thu Jan 01 00:00:08 1970 +0000
2813 | | | | | date: Thu Jan 01 00:00:08 1970 +0000
2814 | | | | | summary: (8) merge two known; one immediate left, one far right
2814 | | | | | summary: (8) merge two known; one immediate left, one far right
2815 | | | | |
2815 | | | | |
2816 | | | o | changeset: 7:b632bb1b1224
2816 | | | o | changeset: 7:b632bb1b1224
2817 | | | |\ \ parent: 2:3d9a33b8d1e1
2817 | | | |\ \ parent: 2:3d9a33b8d1e1
2818 | | | | | | parent: 5:4409d547b708
2818 | | | | | | parent: 5:4409d547b708
2819 | | | | | | user: test
2819 | | | | | | user: test
2820 | | | | | | date: Thu Jan 01 00:00:07 1970 +0000
2820 | | | | | | date: Thu Jan 01 00:00:07 1970 +0000
2821 | | | | | | summary: (7) expand
2821 | | | | | | summary: (7) expand
2822 | | | | | |
2822 | | | | | |
2823 | | | +---o changeset: 6:b105a072e251
2823 | | | +---o changeset: 6:b105a072e251
2824 | | | | |/ parent: 2:3d9a33b8d1e1
2824 | | | | |/ parent: 2:3d9a33b8d1e1
2825 | | | | | parent: 5:4409d547b708
2825 | | | | | parent: 5:4409d547b708
2826 | | | | | user: test
2826 | | | | | user: test
2827 | | | | | date: Thu Jan 01 00:00:06 1970 +0000
2827 | | | | | date: Thu Jan 01 00:00:06 1970 +0000
2828 | | | | | summary: (6) merge two known; one immediate left, one far left
2828 | | | | | summary: (6) merge two known; one immediate left, one far left
2829 | | | | |
2829 | | | | |
2830 | | | o | changeset: 5:4409d547b708
2830 | | | o | changeset: 5:4409d547b708
2831 | | | |\ \ parent: 3:27eef8ed80b4
2831 | | | |\ \ parent: 3:27eef8ed80b4
2832 | | | | | | parent: 4:26a8bac39d9f
2832 | | | | | | parent: 4:26a8bac39d9f
2833 | | | | | | user: test
2833 | | | | | | user: test
2834 | | | | | | date: Thu Jan 01 00:00:05 1970 +0000
2834 | | | | | | date: Thu Jan 01 00:00:05 1970 +0000
2835 | | | | | | summary: (5) expand
2835 | | | | | | summary: (5) expand
2836 | | | | | |
2836 | | | | | |
2837 | +---o | | changeset: 4:26a8bac39d9f
2837 | +---o | | changeset: 4:26a8bac39d9f
2838 | | | |/ / parent: 1:6db2ef61d156
2838 | | | |/ / parent: 1:6db2ef61d156
2839 | | | | | parent: 3:27eef8ed80b4
2839 | | | | | parent: 3:27eef8ed80b4
2840 | | | | | user: test
2840 | | | | | user: test
2841 | | | | | date: Thu Jan 01 00:00:04 1970 +0000
2841 | | | | | date: Thu Jan 01 00:00:04 1970 +0000
2842 | | | | | summary: (4) merge two known; one immediate left, one immediate right
2842 | | | | | summary: (4) merge two known; one immediate left, one immediate right
2843 | | | | |
2843 | | | | |
2844
2844
2845 .. unless HGPLAINEXCEPT=graph is set:
2845 .. unless HGPLAINEXCEPT=graph is set:
2846
2846
2847 $ HGPLAIN=1 HGPLAINEXCEPT=graph hg log -G -r 'file("a")' -m
2847 $ HGPLAIN=1 HGPLAINEXCEPT=graph hg log -G -r 'file("a")' -m
2848 @ changeset: 36:08a19a744424
2848 @ changeset: 36:08a19a744424
2849 : branch: branch
2849 : branch: branch
2850 : tag: tip
2850 : tag: tip
2851 : parent: 35:9159c3644c5e
2851 : parent: 35:9159c3644c5e
2852 : parent: 35:9159c3644c5e
2852 : parent: 35:9159c3644c5e
2853 : user: test
2853 : user: test
2854 : date: Thu Jan 01 00:00:36 1970 +0000
2854 : date: Thu Jan 01 00:00:36 1970 +0000
2855 : summary: (36) buggy merge: identical parents
2855 : summary: (36) buggy merge: identical parents
2856 :
2856 :
2857 o changeset: 32:d06dffa21a31
2857 o changeset: 32:d06dffa21a31
2858 |\ parent: 27:886ed638191b
2858 |\ parent: 27:886ed638191b
2859 | : parent: 31:621d83e11f67
2859 | : parent: 31:621d83e11f67
2860 | : user: test
2860 | : user: test
2861 | : date: Thu Jan 01 00:00:32 1970 +0000
2861 | : date: Thu Jan 01 00:00:32 1970 +0000
2862 | : summary: (32) expand
2862 | : summary: (32) expand
2863 | :
2863 | :
2864 o : changeset: 31:621d83e11f67
2864 o : changeset: 31:621d83e11f67
2865 |\: parent: 21:d42a756af44d
2865 |\: parent: 21:d42a756af44d
2866 | : parent: 30:6e11cd4b648f
2866 | : parent: 30:6e11cd4b648f
2867 | : user: test
2867 | : user: test
2868 | : date: Thu Jan 01 00:00:31 1970 +0000
2868 | : date: Thu Jan 01 00:00:31 1970 +0000
2869 | : summary: (31) expand
2869 | : summary: (31) expand
2870 | :
2870 | :
2871 o : changeset: 30:6e11cd4b648f
2871 o : changeset: 30:6e11cd4b648f
2872 |\ \ parent: 28:44ecd0b9ae99
2872 |\ \ parent: 28:44ecd0b9ae99
2873 | ~ : parent: 29:cd9bb2be7593
2873 | ~ : parent: 29:cd9bb2be7593
2874 | : user: test
2874 | : user: test
2875 | : date: Thu Jan 01 00:00:30 1970 +0000
2875 | : date: Thu Jan 01 00:00:30 1970 +0000
2876 | : summary: (30) expand
2876 | : summary: (30) expand
2877 | /
2877 | /
2878 o : changeset: 28:44ecd0b9ae99
2878 o : changeset: 28:44ecd0b9ae99
2879 |\ \ parent: 1:6db2ef61d156
2879 |\ \ parent: 1:6db2ef61d156
2880 | ~ : parent: 26:7f25b6c2f0b9
2880 | ~ : parent: 26:7f25b6c2f0b9
2881 | : user: test
2881 | : user: test
2882 | : date: Thu Jan 01 00:00:28 1970 +0000
2882 | : date: Thu Jan 01 00:00:28 1970 +0000
2883 | : summary: (28) merge zero known
2883 | : summary: (28) merge zero known
2884 | /
2884 | /
2885 o : changeset: 26:7f25b6c2f0b9
2885 o : changeset: 26:7f25b6c2f0b9
2886 |\ \ parent: 18:1aa84d96232a
2886 |\ \ parent: 18:1aa84d96232a
2887 | | : parent: 25:91da8ed57247
2887 | | : parent: 25:91da8ed57247
2888 | | : user: test
2888 | | : user: test
2889 | | : date: Thu Jan 01 00:00:26 1970 +0000
2889 | | : date: Thu Jan 01 00:00:26 1970 +0000
2890 | | : summary: (26) merge one known; far right
2890 | | : summary: (26) merge one known; far right
2891 | | :
2891 | | :
2892 | o : changeset: 25:91da8ed57247
2892 | o : changeset: 25:91da8ed57247
2893 | |\: parent: 21:d42a756af44d
2893 | |\: parent: 21:d42a756af44d
2894 | | : parent: 24:a9c19a3d96b7
2894 | | : parent: 24:a9c19a3d96b7
2895 | | : user: test
2895 | | : user: test
2896 | | : date: Thu Jan 01 00:00:25 1970 +0000
2896 | | : date: Thu Jan 01 00:00:25 1970 +0000
2897 | | : summary: (25) merge one known; far left
2897 | | : summary: (25) merge one known; far left
2898 | | :
2898 | | :
2899 | o : changeset: 24:a9c19a3d96b7
2899 | o : changeset: 24:a9c19a3d96b7
2900 | |\ \ parent: 0:e6eb3150255d
2900 | |\ \ parent: 0:e6eb3150255d
2901 | | ~ : parent: 23:a01cddf0766d
2901 | | ~ : parent: 23:a01cddf0766d
2902 | | : user: test
2902 | | : user: test
2903 | | : date: Thu Jan 01 00:00:24 1970 +0000
2903 | | : date: Thu Jan 01 00:00:24 1970 +0000
2904 | | : summary: (24) merge one known; immediate right
2904 | | : summary: (24) merge one known; immediate right
2905 | | /
2905 | | /
2906 | o : changeset: 23:a01cddf0766d
2906 | o : changeset: 23:a01cddf0766d
2907 | |\ \ parent: 1:6db2ef61d156
2907 | |\ \ parent: 1:6db2ef61d156
2908 | | ~ : parent: 22:e0d9cccacb5d
2908 | | ~ : parent: 22:e0d9cccacb5d
2909 | | : user: test
2909 | | : user: test
2910 | | : date: Thu Jan 01 00:00:23 1970 +0000
2910 | | : date: Thu Jan 01 00:00:23 1970 +0000
2911 | | : summary: (23) merge one known; immediate left
2911 | | : summary: (23) merge one known; immediate left
2912 | | /
2912 | | /
2913 | o : changeset: 22:e0d9cccacb5d
2913 | o : changeset: 22:e0d9cccacb5d
2914 |/:/ parent: 18:1aa84d96232a
2914 |/:/ parent: 18:1aa84d96232a
2915 | : parent: 21:d42a756af44d
2915 | : parent: 21:d42a756af44d
2916 | : user: test
2916 | : user: test
2917 | : date: Thu Jan 01 00:00:22 1970 +0000
2917 | : date: Thu Jan 01 00:00:22 1970 +0000
2918 | : summary: (22) merge two known; one far left, one far right
2918 | : summary: (22) merge two known; one far left, one far right
2919 | :
2919 | :
2920 | o changeset: 21:d42a756af44d
2920 | o changeset: 21:d42a756af44d
2921 | |\ parent: 19:31ddc2c1573b
2921 | |\ parent: 19:31ddc2c1573b
2922 | | | parent: 20:d30ed6450e32
2922 | | | parent: 20:d30ed6450e32
2923 | | | user: test
2923 | | | user: test
2924 | | | date: Thu Jan 01 00:00:21 1970 +0000
2924 | | | date: Thu Jan 01 00:00:21 1970 +0000
2925 | | | summary: (21) expand
2925 | | | summary: (21) expand
2926 | | |
2926 | | |
2927 +---o changeset: 20:d30ed6450e32
2927 +---o changeset: 20:d30ed6450e32
2928 | | | parent: 0:e6eb3150255d
2928 | | | parent: 0:e6eb3150255d
2929 | | ~ parent: 18:1aa84d96232a
2929 | | ~ parent: 18:1aa84d96232a
2930 | | user: test
2930 | | user: test
2931 | | date: Thu Jan 01 00:00:20 1970 +0000
2931 | | date: Thu Jan 01 00:00:20 1970 +0000
2932 | | summary: (20) merge two known; two far right
2932 | | summary: (20) merge two known; two far right
2933 | |
2933 | |
2934 | o changeset: 19:31ddc2c1573b
2934 | o changeset: 19:31ddc2c1573b
2935 | |\ parent: 15:1dda3f72782d
2935 | |\ parent: 15:1dda3f72782d
2936 | | | parent: 17:44765d7c06e0
2936 | | | parent: 17:44765d7c06e0
2937 | | | user: test
2937 | | | user: test
2938 | | | date: Thu Jan 01 00:00:19 1970 +0000
2938 | | | date: Thu Jan 01 00:00:19 1970 +0000
2939 | | | summary: (19) expand
2939 | | | summary: (19) expand
2940 | | |
2940 | | |
2941 o | | changeset: 18:1aa84d96232a
2941 o | | changeset: 18:1aa84d96232a
2942 |\| | parent: 1:6db2ef61d156
2942 |\| | parent: 1:6db2ef61d156
2943 ~ | | parent: 15:1dda3f72782d
2943 ~ | | parent: 15:1dda3f72782d
2944 | | user: test
2944 | | user: test
2945 | | date: Thu Jan 01 00:00:18 1970 +0000
2945 | | date: Thu Jan 01 00:00:18 1970 +0000
2946 | | summary: (18) merge two known; two far left
2946 | | summary: (18) merge two known; two far left
2947 / /
2947 / /
2948 | o changeset: 17:44765d7c06e0
2948 | o changeset: 17:44765d7c06e0
2949 | |\ parent: 12:86b91144a6e9
2949 | |\ parent: 12:86b91144a6e9
2950 | | | parent: 16:3677d192927d
2950 | | | parent: 16:3677d192927d
2951 | | | user: test
2951 | | | user: test
2952 | | | date: Thu Jan 01 00:00:17 1970 +0000
2952 | | | date: Thu Jan 01 00:00:17 1970 +0000
2953 | | | summary: (17) expand
2953 | | | summary: (17) expand
2954 | | |
2954 | | |
2955 | | o changeset: 16:3677d192927d
2955 | | o changeset: 16:3677d192927d
2956 | | |\ parent: 0:e6eb3150255d
2956 | | |\ parent: 0:e6eb3150255d
2957 | | ~ ~ parent: 1:6db2ef61d156
2957 | | ~ ~ parent: 1:6db2ef61d156
2958 | | user: test
2958 | | user: test
2959 | | date: Thu Jan 01 00:00:16 1970 +0000
2959 | | date: Thu Jan 01 00:00:16 1970 +0000
2960 | | summary: (16) merge two known; one immediate right, one near right
2960 | | summary: (16) merge two known; one immediate right, one near right
2961 | |
2961 | |
2962 o | changeset: 15:1dda3f72782d
2962 o | changeset: 15:1dda3f72782d
2963 |\ \ parent: 13:22d8966a97e3
2963 |\ \ parent: 13:22d8966a97e3
2964 | | | parent: 14:8eac370358ef
2964 | | | parent: 14:8eac370358ef
2965 | | | user: test
2965 | | | user: test
2966 | | | date: Thu Jan 01 00:00:15 1970 +0000
2966 | | | date: Thu Jan 01 00:00:15 1970 +0000
2967 | | | summary: (15) expand
2967 | | | summary: (15) expand
2968 | | |
2968 | | |
2969 | o | changeset: 14:8eac370358ef
2969 | o | changeset: 14:8eac370358ef
2970 | |\| parent: 0:e6eb3150255d
2970 | |\| parent: 0:e6eb3150255d
2971 | ~ | parent: 12:86b91144a6e9
2971 | ~ | parent: 12:86b91144a6e9
2972 | | user: test
2972 | | user: test
2973 | | date: Thu Jan 01 00:00:14 1970 +0000
2973 | | date: Thu Jan 01 00:00:14 1970 +0000
2974 | | summary: (14) merge two known; one immediate right, one far right
2974 | | summary: (14) merge two known; one immediate right, one far right
2975 | /
2975 | /
2976 o | changeset: 13:22d8966a97e3
2976 o | changeset: 13:22d8966a97e3
2977 |\ \ parent: 9:7010c0af0a35
2977 |\ \ parent: 9:7010c0af0a35
2978 | | | parent: 11:832d76e6bdf2
2978 | | | parent: 11:832d76e6bdf2
2979 | | | user: test
2979 | | | user: test
2980 | | | date: Thu Jan 01 00:00:13 1970 +0000
2980 | | | date: Thu Jan 01 00:00:13 1970 +0000
2981 | | | summary: (13) expand
2981 | | | summary: (13) expand
2982 | | |
2982 | | |
2983 +---o changeset: 12:86b91144a6e9
2983 +---o changeset: 12:86b91144a6e9
2984 | | | parent: 1:6db2ef61d156
2984 | | | parent: 1:6db2ef61d156
2985 | | ~ parent: 9:7010c0af0a35
2985 | | ~ parent: 9:7010c0af0a35
2986 | | user: test
2986 | | user: test
2987 | | date: Thu Jan 01 00:00:12 1970 +0000
2987 | | date: Thu Jan 01 00:00:12 1970 +0000
2988 | | summary: (12) merge two known; one immediate right, one far left
2988 | | summary: (12) merge two known; one immediate right, one far left
2989 | |
2989 | |
2990 | o changeset: 11:832d76e6bdf2
2990 | o changeset: 11:832d76e6bdf2
2991 | |\ parent: 6:b105a072e251
2991 | |\ parent: 6:b105a072e251
2992 | | | parent: 10:74c64d036d72
2992 | | | parent: 10:74c64d036d72
2993 | | | user: test
2993 | | | user: test
2994 | | | date: Thu Jan 01 00:00:11 1970 +0000
2994 | | | date: Thu Jan 01 00:00:11 1970 +0000
2995 | | | summary: (11) expand
2995 | | | summary: (11) expand
2996 | | |
2996 | | |
2997 | | o changeset: 10:74c64d036d72
2997 | | o changeset: 10:74c64d036d72
2998 | |/| parent: 0:e6eb3150255d
2998 | |/| parent: 0:e6eb3150255d
2999 | | ~ parent: 6:b105a072e251
2999 | | ~ parent: 6:b105a072e251
3000 | | user: test
3000 | | user: test
3001 | | date: Thu Jan 01 00:00:10 1970 +0000
3001 | | date: Thu Jan 01 00:00:10 1970 +0000
3002 | | summary: (10) merge two known; one immediate left, one near right
3002 | | summary: (10) merge two known; one immediate left, one near right
3003 | |
3003 | |
3004 o | changeset: 9:7010c0af0a35
3004 o | changeset: 9:7010c0af0a35
3005 |\ \ parent: 7:b632bb1b1224
3005 |\ \ parent: 7:b632bb1b1224
3006 | | | parent: 8:7a0b11f71937
3006 | | | parent: 8:7a0b11f71937
3007 | | | user: test
3007 | | | user: test
3008 | | | date: Thu Jan 01 00:00:09 1970 +0000
3008 | | | date: Thu Jan 01 00:00:09 1970 +0000
3009 | | | summary: (9) expand
3009 | | | summary: (9) expand
3010 | | |
3010 | | |
3011 | o | changeset: 8:7a0b11f71937
3011 | o | changeset: 8:7a0b11f71937
3012 |/| | parent: 0:e6eb3150255d
3012 |/| | parent: 0:e6eb3150255d
3013 | ~ | parent: 7:b632bb1b1224
3013 | ~ | parent: 7:b632bb1b1224
3014 | | user: test
3014 | | user: test
3015 | | date: Thu Jan 01 00:00:08 1970 +0000
3015 | | date: Thu Jan 01 00:00:08 1970 +0000
3016 | | summary: (8) merge two known; one immediate left, one far right
3016 | | summary: (8) merge two known; one immediate left, one far right
3017 | /
3017 | /
3018 o | changeset: 7:b632bb1b1224
3018 o | changeset: 7:b632bb1b1224
3019 |\ \ parent: 2:3d9a33b8d1e1
3019 |\ \ parent: 2:3d9a33b8d1e1
3020 | ~ | parent: 5:4409d547b708
3020 | ~ | parent: 5:4409d547b708
3021 | | user: test
3021 | | user: test
3022 | | date: Thu Jan 01 00:00:07 1970 +0000
3022 | | date: Thu Jan 01 00:00:07 1970 +0000
3023 | | summary: (7) expand
3023 | | summary: (7) expand
3024 | /
3024 | /
3025 | o changeset: 6:b105a072e251
3025 | o changeset: 6:b105a072e251
3026 |/| parent: 2:3d9a33b8d1e1
3026 |/| parent: 2:3d9a33b8d1e1
3027 | ~ parent: 5:4409d547b708
3027 | ~ parent: 5:4409d547b708
3028 | user: test
3028 | user: test
3029 | date: Thu Jan 01 00:00:06 1970 +0000
3029 | date: Thu Jan 01 00:00:06 1970 +0000
3030 | summary: (6) merge two known; one immediate left, one far left
3030 | summary: (6) merge two known; one immediate left, one far left
3031 |
3031 |
3032 o changeset: 5:4409d547b708
3032 o changeset: 5:4409d547b708
3033 |\ parent: 3:27eef8ed80b4
3033 |\ parent: 3:27eef8ed80b4
3034 | ~ parent: 4:26a8bac39d9f
3034 | ~ parent: 4:26a8bac39d9f
3035 | user: test
3035 | user: test
3036 | date: Thu Jan 01 00:00:05 1970 +0000
3036 | date: Thu Jan 01 00:00:05 1970 +0000
3037 | summary: (5) expand
3037 | summary: (5) expand
3038 |
3038 |
3039 o changeset: 4:26a8bac39d9f
3039 o changeset: 4:26a8bac39d9f
3040 |\ parent: 1:6db2ef61d156
3040 |\ parent: 1:6db2ef61d156
3041 ~ ~ parent: 3:27eef8ed80b4
3041 ~ ~ parent: 3:27eef8ed80b4
3042 user: test
3042 user: test
3043 date: Thu Jan 01 00:00:04 1970 +0000
3043 date: Thu Jan 01 00:00:04 1970 +0000
3044 summary: (4) merge two known; one immediate left, one immediate right
3044 summary: (4) merge two known; one immediate left, one immediate right
3045
3045
3046 Draw only part of a grandparent line differently with "<N><char>"; only the
3046 Draw only part of a grandparent line differently with "<N><char>"; only the
3047 last N lines (for positive N) or everything but the first N lines (for
3047 last N lines (for positive N) or everything but the first N lines (for
3048 negative N) along the current node use the style, the rest of the edge uses
3048 negative N) along the current node use the style, the rest of the edge uses
3049 the parent edge styling.
3049 the parent edge styling.
3050
3050
3051 Last 3 lines:
3051 Last 3 lines:
3052
3052
3053 $ cat << EOF >> $HGRCPATH
3053 $ cat << EOF >> $HGRCPATH
3054 > [experimental]
3054 > [experimental]
3055 > graphstyle.parent = !
3055 > graphstyle.parent = !
3056 > graphstyle.grandparent = 3.
3056 > graphstyle.grandparent = 3.
3057 > graphstyle.missing =
3057 > graphstyle.missing =
3058 > EOF
3058 > EOF
3059 $ hg log -G -r '36:18 & file("a")' -m
3059 $ hg log -G -r '36:18 & file("a")' -m
3060 @ changeset: 36:08a19a744424
3060 @ changeset: 36:08a19a744424
3061 ! branch: branch
3061 ! branch: branch
3062 ! tag: tip
3062 ! tag: tip
3063 ! parent: 35:9159c3644c5e
3063 ! parent: 35:9159c3644c5e
3064 ! parent: 35:9159c3644c5e
3064 ! parent: 35:9159c3644c5e
3065 ! user: test
3065 ! user: test
3066 . date: Thu Jan 01 00:00:36 1970 +0000
3066 . date: Thu Jan 01 00:00:36 1970 +0000
3067 . summary: (36) buggy merge: identical parents
3067 . summary: (36) buggy merge: identical parents
3068 .
3068 .
3069 o changeset: 32:d06dffa21a31
3069 o changeset: 32:d06dffa21a31
3070 !\ parent: 27:886ed638191b
3070 !\ parent: 27:886ed638191b
3071 ! ! parent: 31:621d83e11f67
3071 ! ! parent: 31:621d83e11f67
3072 ! ! user: test
3072 ! ! user: test
3073 ! . date: Thu Jan 01 00:00:32 1970 +0000
3073 ! . date: Thu Jan 01 00:00:32 1970 +0000
3074 ! . summary: (32) expand
3074 ! . summary: (32) expand
3075 ! .
3075 ! .
3076 o ! changeset: 31:621d83e11f67
3076 o ! changeset: 31:621d83e11f67
3077 !\! parent: 21:d42a756af44d
3077 !\! parent: 21:d42a756af44d
3078 ! ! parent: 30:6e11cd4b648f
3078 ! ! parent: 30:6e11cd4b648f
3079 ! ! user: test
3079 ! ! user: test
3080 ! ! date: Thu Jan 01 00:00:31 1970 +0000
3080 ! ! date: Thu Jan 01 00:00:31 1970 +0000
3081 ! ! summary: (31) expand
3081 ! ! summary: (31) expand
3082 ! !
3082 ! !
3083 o ! changeset: 30:6e11cd4b648f
3083 o ! changeset: 30:6e11cd4b648f
3084 !\ \ parent: 28:44ecd0b9ae99
3084 !\ \ parent: 28:44ecd0b9ae99
3085 ! ~ ! parent: 29:cd9bb2be7593
3085 ! ~ ! parent: 29:cd9bb2be7593
3086 ! ! user: test
3086 ! ! user: test
3087 ! ! date: Thu Jan 01 00:00:30 1970 +0000
3087 ! ! date: Thu Jan 01 00:00:30 1970 +0000
3088 ! ! summary: (30) expand
3088 ! ! summary: (30) expand
3089 ! /
3089 ! /
3090 o ! changeset: 28:44ecd0b9ae99
3090 o ! changeset: 28:44ecd0b9ae99
3091 !\ \ parent: 1:6db2ef61d156
3091 !\ \ parent: 1:6db2ef61d156
3092 ! ~ ! parent: 26:7f25b6c2f0b9
3092 ! ~ ! parent: 26:7f25b6c2f0b9
3093 ! ! user: test
3093 ! ! user: test
3094 ! ! date: Thu Jan 01 00:00:28 1970 +0000
3094 ! ! date: Thu Jan 01 00:00:28 1970 +0000
3095 ! ! summary: (28) merge zero known
3095 ! ! summary: (28) merge zero known
3096 ! /
3096 ! /
3097 o ! changeset: 26:7f25b6c2f0b9
3097 o ! changeset: 26:7f25b6c2f0b9
3098 !\ \ parent: 18:1aa84d96232a
3098 !\ \ parent: 18:1aa84d96232a
3099 ! ! ! parent: 25:91da8ed57247
3099 ! ! ! parent: 25:91da8ed57247
3100 ! ! ! user: test
3100 ! ! ! user: test
3101 ! ! ! date: Thu Jan 01 00:00:26 1970 +0000
3101 ! ! ! date: Thu Jan 01 00:00:26 1970 +0000
3102 ! ! ! summary: (26) merge one known; far right
3102 ! ! ! summary: (26) merge one known; far right
3103 ! ! !
3103 ! ! !
3104 ! o ! changeset: 25:91da8ed57247
3104 ! o ! changeset: 25:91da8ed57247
3105 ! !\! parent: 21:d42a756af44d
3105 ! !\! parent: 21:d42a756af44d
3106 ! ! ! parent: 24:a9c19a3d96b7
3106 ! ! ! parent: 24:a9c19a3d96b7
3107 ! ! ! user: test
3107 ! ! ! user: test
3108 ! ! ! date: Thu Jan 01 00:00:25 1970 +0000
3108 ! ! ! date: Thu Jan 01 00:00:25 1970 +0000
3109 ! ! ! summary: (25) merge one known; far left
3109 ! ! ! summary: (25) merge one known; far left
3110 ! ! !
3110 ! ! !
3111 ! o ! changeset: 24:a9c19a3d96b7
3111 ! o ! changeset: 24:a9c19a3d96b7
3112 ! !\ \ parent: 0:e6eb3150255d
3112 ! !\ \ parent: 0:e6eb3150255d
3113 ! ! ~ ! parent: 23:a01cddf0766d
3113 ! ! ~ ! parent: 23:a01cddf0766d
3114 ! ! ! user: test
3114 ! ! ! user: test
3115 ! ! ! date: Thu Jan 01 00:00:24 1970 +0000
3115 ! ! ! date: Thu Jan 01 00:00:24 1970 +0000
3116 ! ! ! summary: (24) merge one known; immediate right
3116 ! ! ! summary: (24) merge one known; immediate right
3117 ! ! /
3117 ! ! /
3118 ! o ! changeset: 23:a01cddf0766d
3118 ! o ! changeset: 23:a01cddf0766d
3119 ! !\ \ parent: 1:6db2ef61d156
3119 ! !\ \ parent: 1:6db2ef61d156
3120 ! ! ~ ! parent: 22:e0d9cccacb5d
3120 ! ! ~ ! parent: 22:e0d9cccacb5d
3121 ! ! ! user: test
3121 ! ! ! user: test
3122 ! ! ! date: Thu Jan 01 00:00:23 1970 +0000
3122 ! ! ! date: Thu Jan 01 00:00:23 1970 +0000
3123 ! ! ! summary: (23) merge one known; immediate left
3123 ! ! ! summary: (23) merge one known; immediate left
3124 ! ! /
3124 ! ! /
3125 ! o ! changeset: 22:e0d9cccacb5d
3125 ! o ! changeset: 22:e0d9cccacb5d
3126 !/!/ parent: 18:1aa84d96232a
3126 !/!/ parent: 18:1aa84d96232a
3127 ! ! parent: 21:d42a756af44d
3127 ! ! parent: 21:d42a756af44d
3128 ! ! user: test
3128 ! ! user: test
3129 ! ! date: Thu Jan 01 00:00:22 1970 +0000
3129 ! ! date: Thu Jan 01 00:00:22 1970 +0000
3130 ! ! summary: (22) merge two known; one far left, one far right
3130 ! ! summary: (22) merge two known; one far left, one far right
3131 ! !
3131 ! !
3132 ! o changeset: 21:d42a756af44d
3132 ! o changeset: 21:d42a756af44d
3133 ! !\ parent: 19:31ddc2c1573b
3133 ! !\ parent: 19:31ddc2c1573b
3134 ! ! ! parent: 20:d30ed6450e32
3134 ! ! ! parent: 20:d30ed6450e32
3135 ! ! ! user: test
3135 ! ! ! user: test
3136 ! ! ! date: Thu Jan 01 00:00:21 1970 +0000
3136 ! ! ! date: Thu Jan 01 00:00:21 1970 +0000
3137 ! ! ! summary: (21) expand
3137 ! ! ! summary: (21) expand
3138 ! ! !
3138 ! ! !
3139 +---o changeset: 20:d30ed6450e32
3139 +---o changeset: 20:d30ed6450e32
3140 ! ! | parent: 0:e6eb3150255d
3140 ! ! | parent: 0:e6eb3150255d
3141 ! ! ~ parent: 18:1aa84d96232a
3141 ! ! ~ parent: 18:1aa84d96232a
3142 ! ! user: test
3142 ! ! user: test
3143 ! ! date: Thu Jan 01 00:00:20 1970 +0000
3143 ! ! date: Thu Jan 01 00:00:20 1970 +0000
3144 ! ! summary: (20) merge two known; two far right
3144 ! ! summary: (20) merge two known; two far right
3145 ! !
3145 ! !
3146 ! o changeset: 19:31ddc2c1573b
3146 ! o changeset: 19:31ddc2c1573b
3147 ! |\ parent: 15:1dda3f72782d
3147 ! |\ parent: 15:1dda3f72782d
3148 ! ~ ~ parent: 17:44765d7c06e0
3148 ! ~ ~ parent: 17:44765d7c06e0
3149 ! user: test
3149 ! user: test
3150 ! date: Thu Jan 01 00:00:19 1970 +0000
3150 ! date: Thu Jan 01 00:00:19 1970 +0000
3151 ! summary: (19) expand
3151 ! summary: (19) expand
3152 !
3152 !
3153 o changeset: 18:1aa84d96232a
3153 o changeset: 18:1aa84d96232a
3154 |\ parent: 1:6db2ef61d156
3154 |\ parent: 1:6db2ef61d156
3155 ~ ~ parent: 15:1dda3f72782d
3155 ~ ~ parent: 15:1dda3f72782d
3156 user: test
3156 user: test
3157 date: Thu Jan 01 00:00:18 1970 +0000
3157 date: Thu Jan 01 00:00:18 1970 +0000
3158 summary: (18) merge two known; two far left
3158 summary: (18) merge two known; two far left
3159
3159
3160 All but the first 3 lines:
3160 All but the first 3 lines:
3161
3161
3162 $ cat << EOF >> $HGRCPATH
3162 $ cat << EOF >> $HGRCPATH
3163 > [experimental]
3163 > [experimental]
3164 > graphstyle.parent = !
3164 > graphstyle.parent = !
3165 > graphstyle.grandparent = -3.
3165 > graphstyle.grandparent = -3.
3166 > graphstyle.missing =
3166 > graphstyle.missing =
3167 > EOF
3167 > EOF
3168 $ hg log -G -r '36:18 & file("a")' -m
3168 $ hg log -G -r '36:18 & file("a")' -m
3169 @ changeset: 36:08a19a744424
3169 @ changeset: 36:08a19a744424
3170 ! branch: branch
3170 ! branch: branch
3171 ! tag: tip
3171 ! tag: tip
3172 . parent: 35:9159c3644c5e
3172 . parent: 35:9159c3644c5e
3173 . parent: 35:9159c3644c5e
3173 . parent: 35:9159c3644c5e
3174 . user: test
3174 . user: test
3175 . date: Thu Jan 01 00:00:36 1970 +0000
3175 . date: Thu Jan 01 00:00:36 1970 +0000
3176 . summary: (36) buggy merge: identical parents
3176 . summary: (36) buggy merge: identical parents
3177 .
3177 .
3178 o changeset: 32:d06dffa21a31
3178 o changeset: 32:d06dffa21a31
3179 !\ parent: 27:886ed638191b
3179 !\ parent: 27:886ed638191b
3180 ! ! parent: 31:621d83e11f67
3180 ! ! parent: 31:621d83e11f67
3181 ! . user: test
3181 ! . user: test
3182 ! . date: Thu Jan 01 00:00:32 1970 +0000
3182 ! . date: Thu Jan 01 00:00:32 1970 +0000
3183 ! . summary: (32) expand
3183 ! . summary: (32) expand
3184 ! .
3184 ! .
3185 o ! changeset: 31:621d83e11f67
3185 o ! changeset: 31:621d83e11f67
3186 !\! parent: 21:d42a756af44d
3186 !\! parent: 21:d42a756af44d
3187 ! ! parent: 30:6e11cd4b648f
3187 ! ! parent: 30:6e11cd4b648f
3188 ! ! user: test
3188 ! ! user: test
3189 ! ! date: Thu Jan 01 00:00:31 1970 +0000
3189 ! ! date: Thu Jan 01 00:00:31 1970 +0000
3190 ! ! summary: (31) expand
3190 ! ! summary: (31) expand
3191 ! !
3191 ! !
3192 o ! changeset: 30:6e11cd4b648f
3192 o ! changeset: 30:6e11cd4b648f
3193 !\ \ parent: 28:44ecd0b9ae99
3193 !\ \ parent: 28:44ecd0b9ae99
3194 ! ~ ! parent: 29:cd9bb2be7593
3194 ! ~ ! parent: 29:cd9bb2be7593
3195 ! ! user: test
3195 ! ! user: test
3196 ! ! date: Thu Jan 01 00:00:30 1970 +0000
3196 ! ! date: Thu Jan 01 00:00:30 1970 +0000
3197 ! ! summary: (30) expand
3197 ! ! summary: (30) expand
3198 ! /
3198 ! /
3199 o ! changeset: 28:44ecd0b9ae99
3199 o ! changeset: 28:44ecd0b9ae99
3200 !\ \ parent: 1:6db2ef61d156
3200 !\ \ parent: 1:6db2ef61d156
3201 ! ~ ! parent: 26:7f25b6c2f0b9
3201 ! ~ ! parent: 26:7f25b6c2f0b9
3202 ! ! user: test
3202 ! ! user: test
3203 ! ! date: Thu Jan 01 00:00:28 1970 +0000
3203 ! ! date: Thu Jan 01 00:00:28 1970 +0000
3204 ! ! summary: (28) merge zero known
3204 ! ! summary: (28) merge zero known
3205 ! /
3205 ! /
3206 o ! changeset: 26:7f25b6c2f0b9
3206 o ! changeset: 26:7f25b6c2f0b9
3207 !\ \ parent: 18:1aa84d96232a
3207 !\ \ parent: 18:1aa84d96232a
3208 ! ! ! parent: 25:91da8ed57247
3208 ! ! ! parent: 25:91da8ed57247
3209 ! ! ! user: test
3209 ! ! ! user: test
3210 ! ! ! date: Thu Jan 01 00:00:26 1970 +0000
3210 ! ! ! date: Thu Jan 01 00:00:26 1970 +0000
3211 ! ! ! summary: (26) merge one known; far right
3211 ! ! ! summary: (26) merge one known; far right
3212 ! ! !
3212 ! ! !
3213 ! o ! changeset: 25:91da8ed57247
3213 ! o ! changeset: 25:91da8ed57247
3214 ! !\! parent: 21:d42a756af44d
3214 ! !\! parent: 21:d42a756af44d
3215 ! ! ! parent: 24:a9c19a3d96b7
3215 ! ! ! parent: 24:a9c19a3d96b7
3216 ! ! ! user: test
3216 ! ! ! user: test
3217 ! ! ! date: Thu Jan 01 00:00:25 1970 +0000
3217 ! ! ! date: Thu Jan 01 00:00:25 1970 +0000
3218 ! ! ! summary: (25) merge one known; far left
3218 ! ! ! summary: (25) merge one known; far left
3219 ! ! !
3219 ! ! !
3220 ! o ! changeset: 24:a9c19a3d96b7
3220 ! o ! changeset: 24:a9c19a3d96b7
3221 ! !\ \ parent: 0:e6eb3150255d
3221 ! !\ \ parent: 0:e6eb3150255d
3222 ! ! ~ ! parent: 23:a01cddf0766d
3222 ! ! ~ ! parent: 23:a01cddf0766d
3223 ! ! ! user: test
3223 ! ! ! user: test
3224 ! ! ! date: Thu Jan 01 00:00:24 1970 +0000
3224 ! ! ! date: Thu Jan 01 00:00:24 1970 +0000
3225 ! ! ! summary: (24) merge one known; immediate right
3225 ! ! ! summary: (24) merge one known; immediate right
3226 ! ! /
3226 ! ! /
3227 ! o ! changeset: 23:a01cddf0766d
3227 ! o ! changeset: 23:a01cddf0766d
3228 ! !\ \ parent: 1:6db2ef61d156
3228 ! !\ \ parent: 1:6db2ef61d156
3229 ! ! ~ ! parent: 22:e0d9cccacb5d
3229 ! ! ~ ! parent: 22:e0d9cccacb5d
3230 ! ! ! user: test
3230 ! ! ! user: test
3231 ! ! ! date: Thu Jan 01 00:00:23 1970 +0000
3231 ! ! ! date: Thu Jan 01 00:00:23 1970 +0000
3232 ! ! ! summary: (23) merge one known; immediate left
3232 ! ! ! summary: (23) merge one known; immediate left
3233 ! ! /
3233 ! ! /
3234 ! o ! changeset: 22:e0d9cccacb5d
3234 ! o ! changeset: 22:e0d9cccacb5d
3235 !/!/ parent: 18:1aa84d96232a
3235 !/!/ parent: 18:1aa84d96232a
3236 ! ! parent: 21:d42a756af44d
3236 ! ! parent: 21:d42a756af44d
3237 ! ! user: test
3237 ! ! user: test
3238 ! ! date: Thu Jan 01 00:00:22 1970 +0000
3238 ! ! date: Thu Jan 01 00:00:22 1970 +0000
3239 ! ! summary: (22) merge two known; one far left, one far right
3239 ! ! summary: (22) merge two known; one far left, one far right
3240 ! !
3240 ! !
3241 ! o changeset: 21:d42a756af44d
3241 ! o changeset: 21:d42a756af44d
3242 ! !\ parent: 19:31ddc2c1573b
3242 ! !\ parent: 19:31ddc2c1573b
3243 ! ! ! parent: 20:d30ed6450e32
3243 ! ! ! parent: 20:d30ed6450e32
3244 ! ! ! user: test
3244 ! ! ! user: test
3245 ! ! ! date: Thu Jan 01 00:00:21 1970 +0000
3245 ! ! ! date: Thu Jan 01 00:00:21 1970 +0000
3246 ! ! ! summary: (21) expand
3246 ! ! ! summary: (21) expand
3247 ! ! !
3247 ! ! !
3248 +---o changeset: 20:d30ed6450e32
3248 +---o changeset: 20:d30ed6450e32
3249 ! ! | parent: 0:e6eb3150255d
3249 ! ! | parent: 0:e6eb3150255d
3250 ! ! ~ parent: 18:1aa84d96232a
3250 ! ! ~ parent: 18:1aa84d96232a
3251 ! ! user: test
3251 ! ! user: test
3252 ! ! date: Thu Jan 01 00:00:20 1970 +0000
3252 ! ! date: Thu Jan 01 00:00:20 1970 +0000
3253 ! ! summary: (20) merge two known; two far right
3253 ! ! summary: (20) merge two known; two far right
3254 ! !
3254 ! !
3255 ! o changeset: 19:31ddc2c1573b
3255 ! o changeset: 19:31ddc2c1573b
3256 ! |\ parent: 15:1dda3f72782d
3256 ! |\ parent: 15:1dda3f72782d
3257 ! ~ ~ parent: 17:44765d7c06e0
3257 ! ~ ~ parent: 17:44765d7c06e0
3258 ! user: test
3258 ! user: test
3259 ! date: Thu Jan 01 00:00:19 1970 +0000
3259 ! date: Thu Jan 01 00:00:19 1970 +0000
3260 ! summary: (19) expand
3260 ! summary: (19) expand
3261 !
3261 !
3262 o changeset: 18:1aa84d96232a
3262 o changeset: 18:1aa84d96232a
3263 |\ parent: 1:6db2ef61d156
3263 |\ parent: 1:6db2ef61d156
3264 ~ ~ parent: 15:1dda3f72782d
3264 ~ ~ parent: 15:1dda3f72782d
3265 user: test
3265 user: test
3266 date: Thu Jan 01 00:00:18 1970 +0000
3266 date: Thu Jan 01 00:00:18 1970 +0000
3267 summary: (18) merge two known; two far left
3267 summary: (18) merge two known; two far left
3268
3268
3269 $ cd ..
3269 $ cd ..
3270
3270
3271 Change graph shorten, test better with graphstyle.missing not none
3271 Change graph shorten, test better with graphstyle.missing not none
3272
3272
3273 $ cd repo
3273 $ cd repo
3274 $ cat << EOF >> $HGRCPATH
3274 $ cat << EOF >> $HGRCPATH
3275 > [experimental]
3275 > [experimental]
3276 > graphstyle.parent = |
3276 > graphstyle.parent = |
3277 > graphstyle.grandparent = :
3277 > graphstyle.grandparent = :
3278 > graphstyle.missing = '
3278 > graphstyle.missing = '
3279 > graphshorten = true
3279 > graphshorten = true
3280 > EOF
3280 > EOF
3281 $ hg log -G -r 'file("a")' -m -T '{rev} {desc}'
3281 $ hg log -G -r 'file("a")' -m -T '{rev} {desc}'
3282 @ 36 (36) buggy merge: identical parents
3282 @ 36 (36) buggy merge: identical parents
3283 o 32 (32) expand
3283 o 32 (32) expand
3284 |\
3284 |\
3285 o : 31 (31) expand
3285 o : 31 (31) expand
3286 |\:
3286 |\:
3287 o : 30 (30) expand
3287 o : 30 (30) expand
3288 |\ \
3288 |\ \
3289 o \ \ 28 (28) merge zero known
3289 o \ \ 28 (28) merge zero known
3290 |\ \ \
3290 |\ \ \
3291 o \ \ \ 26 (26) merge one known; far right
3291 o \ \ \ 26 (26) merge one known; far right
3292 |\ \ \ \
3292 |\ \ \ \
3293 | o-----+ 25 (25) merge one known; far left
3293 | o-----+ 25 (25) merge one known; far left
3294 | o ' ' : 24 (24) merge one known; immediate right
3294 | o ' ' : 24 (24) merge one known; immediate right
3295 | |\ \ \ \
3295 | |\ \ \ \
3296 | o---+ ' : 23 (23) merge one known; immediate left
3296 | o---+ ' : 23 (23) merge one known; immediate left
3297 | o-------+ 22 (22) merge two known; one far left, one far right
3297 | o-------+ 22 (22) merge two known; one far left, one far right
3298 |/ / / / /
3298 |/ / / / /
3299 | ' ' ' o 21 (21) expand
3299 | ' ' ' o 21 (21) expand
3300 | ' ' ' |\
3300 | ' ' ' |\
3301 +-+-------o 20 (20) merge two known; two far right
3301 +-+-------o 20 (20) merge two known; two far right
3302 | ' ' ' o 19 (19) expand
3302 | ' ' ' o 19 (19) expand
3303 | ' ' ' |\
3303 | ' ' ' |\
3304 o---+---+ | 18 (18) merge two known; two far left
3304 o---+---+ | 18 (18) merge two known; two far left
3305 / / / / /
3305 / / / / /
3306 ' ' ' | o 17 (17) expand
3306 ' ' ' | o 17 (17) expand
3307 ' ' ' | |\
3307 ' ' ' | |\
3308 +-+-------o 16 (16) merge two known; one immediate right, one near right
3308 +-+-------o 16 (16) merge two known; one immediate right, one near right
3309 ' ' ' o | 15 (15) expand
3309 ' ' ' o | 15 (15) expand
3310 ' ' ' |\ \
3310 ' ' ' |\ \
3311 +-------o | 14 (14) merge two known; one immediate right, one far right
3311 +-------o | 14 (14) merge two known; one immediate right, one far right
3312 ' ' ' | |/
3312 ' ' ' | |/
3313 ' ' ' o | 13 (13) expand
3313 ' ' ' o | 13 (13) expand
3314 ' ' ' |\ \
3314 ' ' ' |\ \
3315 ' +---+---o 12 (12) merge two known; one immediate right, one far left
3315 ' +---+---o 12 (12) merge two known; one immediate right, one far left
3316 ' ' ' | o 11 (11) expand
3316 ' ' ' | o 11 (11) expand
3317 ' ' ' | |\
3317 ' ' ' | |\
3318 +---------o 10 (10) merge two known; one immediate left, one near right
3318 +---------o 10 (10) merge two known; one immediate left, one near right
3319 ' ' ' | |/
3319 ' ' ' | |/
3320 ' ' ' o | 9 (9) expand
3320 ' ' ' o | 9 (9) expand
3321 ' ' ' |\ \
3321 ' ' ' |\ \
3322 +-------o | 8 (8) merge two known; one immediate left, one far right
3322 +-------o | 8 (8) merge two known; one immediate left, one far right
3323 ' ' ' |/ /
3323 ' ' ' |/ /
3324 ' ' ' o | 7 (7) expand
3324 ' ' ' o | 7 (7) expand
3325 ' ' ' |\ \
3325 ' ' ' |\ \
3326 ' ' ' +---o 6 (6) merge two known; one immediate left, one far left
3326 ' ' ' +---o 6 (6) merge two known; one immediate left, one far left
3327 ' ' ' | '/
3327 ' ' ' | '/
3328 ' ' ' o ' 5 (5) expand
3328 ' ' ' o ' 5 (5) expand
3329 ' ' ' |\ \
3329 ' ' ' |\ \
3330 ' +---o ' ' 4 (4) merge two known; one immediate left, one immediate right
3330 ' +---o ' ' 4 (4) merge two known; one immediate left, one immediate right
3331 ' ' ' '/ /
3331 ' ' ' '/ /
3332
3332
3333 behavior with newlines
3333 behavior with newlines
3334
3334
3335 $ hg log -G -r ::2 -T '{rev} {desc}'
3335 $ hg log -G -r ::2 -T '{rev} {desc}'
3336 o 2 (2) collapse
3336 o 2 (2) collapse
3337 o 1 (1) collapse
3337 o 1 (1) collapse
3338 o 0 (0) root
3338 o 0 (0) root
3339
3339
3340 $ hg log -G -r ::2 -T '{rev} {desc}\n'
3340 $ hg log -G -r ::2 -T '{rev} {desc}\n'
3341 o 2 (2) collapse
3341 o 2 (2) collapse
3342 o 1 (1) collapse
3342 o 1 (1) collapse
3343 o 0 (0) root
3343 o 0 (0) root
3344
3344
3345 $ hg log -G -r ::2 -T '{rev} {desc}\n\n'
3345 $ hg log -G -r ::2 -T '{rev} {desc}\n\n'
3346 o 2 (2) collapse
3346 o 2 (2) collapse
3347 |
3347 |
3348 o 1 (1) collapse
3348 o 1 (1) collapse
3349 |
3349 |
3350 o 0 (0) root
3350 o 0 (0) root
3351
3351
3352
3352
3353 $ hg log -G -r ::2 -T '\n{rev} {desc}'
3353 $ hg log -G -r ::2 -T '\n{rev} {desc}'
3354 o
3354 o
3355 | 2 (2) collapse
3355 | 2 (2) collapse
3356 o
3356 o
3357 | 1 (1) collapse
3357 | 1 (1) collapse
3358 o
3358 o
3359 0 (0) root
3359 0 (0) root
3360
3360
3361 $ hg log -G -r ::2 -T '{rev} {desc}\n\n\n'
3361 $ hg log -G -r ::2 -T '{rev} {desc}\n\n\n'
3362 o 2 (2) collapse
3362 o 2 (2) collapse
3363 |
3363 |
3364 |
3364 |
3365 o 1 (1) collapse
3365 o 1 (1) collapse
3366 |
3366 |
3367 |
3367 |
3368 o 0 (0) root
3368 o 0 (0) root
3369
3369
3370
3370
3371 $ cd ..
3371 $ cd ..
3372
3372
3373 When inserting extra line nodes to handle more than 2 parents, ensure that
3373 When inserting extra line nodes to handle more than 2 parents, ensure that
3374 the right node styles are used (issue5174):
3374 the right node styles are used (issue5174):
3375
3375
3376 $ hg init repo-issue5174
3376 $ hg init repo-issue5174
3377 $ cd repo-issue5174
3377 $ cd repo-issue5174
3378 $ echo a > f0
3378 $ echo a > f0
3379 $ hg ci -Aqm 0
3379 $ hg ci -Aqm 0
3380 $ echo a > f1
3380 $ echo a > f1
3381 $ hg ci -Aqm 1
3381 $ hg ci -Aqm 1
3382 $ echo a > f2
3382 $ echo a > f2
3383 $ hg ci -Aqm 2
3383 $ hg ci -Aqm 2
3384 $ hg co ".^"
3384 $ hg co ".^"
3385 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
3385 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
3386 $ echo a > f3
3386 $ echo a > f3
3387 $ hg ci -Aqm 3
3387 $ hg ci -Aqm 3
3388 $ hg co ".^^"
3388 $ hg co ".^^"
3389 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
3389 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
3390 $ echo a > f4
3390 $ echo a > f4
3391 $ hg ci -Aqm 4
3391 $ hg ci -Aqm 4
3392 $ hg merge -r 2
3392 $ hg merge -r 2
3393 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
3393 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
3394 (branch merge, don't forget to commit)
3394 (branch merge, don't forget to commit)
3395 $ hg ci -qm 5
3395 $ hg ci -qm 5
3396 $ hg merge -r 3
3396 $ hg merge -r 3
3397 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
3397 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
3398 (branch merge, don't forget to commit)
3398 (branch merge, don't forget to commit)
3399 $ hg ci -qm 6
3399 $ hg ci -qm 6
3400 $ hg log -G -r '0 | 1 | 2 | 6'
3400 $ hg log -G -r '0 | 1 | 2 | 6'
3401 @ changeset: 6:851fe89689ad
3401 @ changeset: 6:851fe89689ad
3402 :\ tag: tip
3402 :\ tag: tip
3403 : : parent: 5:4f1e3cf15f5d
3403 : : parent: 5:4f1e3cf15f5d
3404 : : parent: 3:b74ba7084d2d
3404 : : parent: 3:b74ba7084d2d
3405 : : user: test
3405 : : user: test
3406 : : date: Thu Jan 01 00:00:00 1970 +0000
3406 : : date: Thu Jan 01 00:00:00 1970 +0000
3407 : : summary: 6
3407 : : summary: 6
3408 : :
3408 : :
3409 : \
3409 : \
3410 : :\
3410 : :\
3411 : o : changeset: 2:3e6599df4cce
3411 : o : changeset: 2:3e6599df4cce
3412 : :/ user: test
3412 : :/ user: test
3413 : : date: Thu Jan 01 00:00:00 1970 +0000
3413 : : date: Thu Jan 01 00:00:00 1970 +0000
3414 : : summary: 2
3414 : : summary: 2
3415 : :
3415 : :
3416 : o changeset: 1:bd9a55143933
3416 : o changeset: 1:bd9a55143933
3417 :/ user: test
3417 :/ user: test
3418 : date: Thu Jan 01 00:00:00 1970 +0000
3418 : date: Thu Jan 01 00:00:00 1970 +0000
3419 : summary: 1
3419 : summary: 1
3420 :
3420 :
3421 o changeset: 0:870a5edc339c
3421 o changeset: 0:870a5edc339c
3422 user: test
3422 user: test
3423 date: Thu Jan 01 00:00:00 1970 +0000
3423 date: Thu Jan 01 00:00:00 1970 +0000
3424 summary: 0
3424 summary: 0
3425
3425
3426
3426
3427 $ cd ..
3428
3429 Multiple roots (issue5440):
3430
3431 $ hg init multiroots
3432 $ cd multiroots
3433 $ cat <<EOF > .hg/hgrc
3434 > [ui]
3435 > logtemplate = '{rev} {desc}\n\n'
3436 > EOF
3437
3438 $ touch foo
3439 $ hg ci -Aqm foo
3440 $ hg co -q null
3441 $ touch bar
3442 $ hg ci -Aqm bar
3443
3444 $ hg log -Gr null:
3445 @ 1 bar
3446 |
3447 | o 0 foo
3448 |/
3449 o -1
3450
3451 $ hg log -Gr null+0
3452 o 0 foo
3453 |
3454 o -1
3455
3456 $ hg log -Gr null+1
3457 @ 1 bar
3458 |
3459 o -1
3460
3461
3462 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now