##// END OF EJS Templates
graphmod: don't try to visit nullrev (issue3772)
Bryan O'Sullivan -
r18467:e441657b stable
parent child Browse files
Show More
@@ -1,368 +1,368 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 mercurial.node import nullrev
20 from mercurial.node import nullrev
21 import util
21 import util
22
22
23 CHANGESET = 'C'
23 CHANGESET = 'C'
24
24
25 def dagwalker(repo, revs):
25 def dagwalker(repo, revs):
26 """cset DAG generator yielding (id, CHANGESET, ctx, [parentids]) tuples
26 """cset DAG generator yielding (id, CHANGESET, ctx, [parentids]) tuples
27
27
28 This generator function walks through revisions (which should be ordered
28 This generator function walks through revisions (which should be ordered
29 from bigger to lower). It returns a tuple for each node. The node and parent
29 from bigger to lower). It returns a tuple for each node. The node and parent
30 ids are arbitrary integers which identify a node in the context of the graph
30 ids are arbitrary integers which identify a node in the context of the graph
31 returned.
31 returned.
32 """
32 """
33 if not revs:
33 if not revs:
34 return
34 return
35
35
36 cl = repo.changelog
36 cl = repo.changelog
37 lowestrev = min(revs)
37 lowestrev = min(revs)
38 gpcache = {}
38 gpcache = {}
39
39
40 knownrevs = set(revs)
40 knownrevs = set(revs)
41 for rev in revs:
41 for rev in revs:
42 ctx = repo[rev]
42 ctx = repo[rev]
43 parents = sorted(set([p.rev() for p in ctx.parents()
43 parents = sorted(set([p.rev() for p in ctx.parents()
44 if p.rev() in knownrevs]))
44 if p.rev() in knownrevs]))
45 mpars = [p.rev() for p in ctx.parents() if
45 mpars = [p.rev() for p in ctx.parents() if
46 p.rev() != nullrev and p.rev() not in parents]
46 p.rev() != nullrev and p.rev() not in parents]
47
47
48 for mpar in mpars:
48 for mpar in mpars:
49 gp = gpcache.get(mpar)
49 gp = gpcache.get(mpar)
50 if gp is None:
50 if gp is None:
51 gp = gpcache[mpar] = grandparent(cl, lowestrev, revs, mpar)
51 gp = gpcache[mpar] = grandparent(cl, lowestrev, revs, mpar)
52 if not gp:
52 if not gp:
53 parents.append(mpar)
53 parents.append(mpar)
54 else:
54 else:
55 parents.extend(g for g in gp if g not in parents)
55 parents.extend(g for g in gp if g not in parents)
56
56
57 yield (ctx.rev(), CHANGESET, ctx, parents)
57 yield (ctx.rev(), CHANGESET, ctx, parents)
58
58
59 def nodes(repo, nodes):
59 def nodes(repo, nodes):
60 """cset DAG generator yielding (id, CHANGESET, ctx, [parentids]) tuples
60 """cset DAG generator yielding (id, CHANGESET, ctx, [parentids]) tuples
61
61
62 This generator function walks the given nodes. It only returns parents
62 This generator function walks the given nodes. It only returns parents
63 that are in nodes, too.
63 that are in nodes, too.
64 """
64 """
65 include = set(nodes)
65 include = set(nodes)
66 for node in nodes:
66 for node in nodes:
67 ctx = repo[node]
67 ctx = repo[node]
68 parents = set([p.rev() for p in ctx.parents() if p.node() in include])
68 parents = set([p.rev() for p in ctx.parents() if p.node() in include])
69 yield (ctx.rev(), CHANGESET, ctx, sorted(parents))
69 yield (ctx.rev(), CHANGESET, ctx, sorted(parents))
70
70
71 def colored(dag, repo):
71 def colored(dag, repo):
72 """annotates a DAG with colored edge information
72 """annotates a DAG with colored edge information
73
73
74 For each DAG node this function emits tuples::
74 For each DAG node this function emits tuples::
75
75
76 (id, type, data, (col, color), [(col, nextcol, color)])
76 (id, type, data, (col, color), [(col, nextcol, color)])
77
77
78 with the following new elements:
78 with the following new elements:
79
79
80 - Tuple (col, color) with column and color index for the current node
80 - Tuple (col, color) with column and color index for the current node
81 - A list of tuples indicating the edges between the current node and its
81 - A list of tuples indicating the edges between the current node and its
82 parents.
82 parents.
83 """
83 """
84 seen = []
84 seen = []
85 colors = {}
85 colors = {}
86 newcolor = 1
86 newcolor = 1
87 config = {}
87 config = {}
88
88
89 for key, val in repo.ui.configitems('graph'):
89 for key, val in repo.ui.configitems('graph'):
90 if '.' in key:
90 if '.' in key:
91 branch, setting = key.rsplit('.', 1)
91 branch, setting = key.rsplit('.', 1)
92 # Validation
92 # Validation
93 if setting == "width" and val.isdigit():
93 if setting == "width" and val.isdigit():
94 config.setdefault(branch, {})[setting] = int(val)
94 config.setdefault(branch, {})[setting] = int(val)
95 elif setting == "color" and val.isalnum():
95 elif setting == "color" and val.isalnum():
96 config.setdefault(branch, {})[setting] = val
96 config.setdefault(branch, {})[setting] = val
97
97
98 if config:
98 if config:
99 getconf = util.lrucachefunc(
99 getconf = util.lrucachefunc(
100 lambda rev: config.get(repo[rev].branch(), {}))
100 lambda rev: config.get(repo[rev].branch(), {}))
101 else:
101 else:
102 getconf = lambda rev: {}
102 getconf = lambda rev: {}
103
103
104 for (cur, type, data, parents) in dag:
104 for (cur, type, data, parents) in dag:
105
105
106 # Compute seen and next
106 # Compute seen and next
107 if cur not in seen:
107 if cur not in seen:
108 seen.append(cur) # new head
108 seen.append(cur) # new head
109 colors[cur] = newcolor
109 colors[cur] = newcolor
110 newcolor += 1
110 newcolor += 1
111
111
112 col = seen.index(cur)
112 col = seen.index(cur)
113 color = colors.pop(cur)
113 color = colors.pop(cur)
114 next = seen[:]
114 next = seen[:]
115
115
116 # Add parents to next
116 # Add parents to next
117 addparents = [p for p in parents if p not in next]
117 addparents = [p for p in parents if p not in next]
118 next[col:col + 1] = addparents
118 next[col:col + 1] = addparents
119
119
120 # Set colors for the parents
120 # Set colors for the parents
121 for i, p in enumerate(addparents):
121 for i, p in enumerate(addparents):
122 if not i:
122 if not i:
123 colors[p] = color
123 colors[p] = color
124 else:
124 else:
125 colors[p] = newcolor
125 colors[p] = newcolor
126 newcolor += 1
126 newcolor += 1
127
127
128 # Add edges to the graph
128 # Add edges to the graph
129 edges = []
129 edges = []
130 for ecol, eid in enumerate(seen):
130 for ecol, eid in enumerate(seen):
131 if eid in next:
131 if eid in next:
132 bconf = getconf(eid)
132 bconf = getconf(eid)
133 edges.append((
133 edges.append((
134 ecol, next.index(eid), colors[eid],
134 ecol, next.index(eid), colors[eid],
135 bconf.get('width', -1),
135 bconf.get('width', -1),
136 bconf.get('color', '')))
136 bconf.get('color', '')))
137 elif eid == cur:
137 elif eid == cur:
138 for p in parents:
138 for p in parents:
139 bconf = getconf(p)
139 bconf = getconf(p)
140 edges.append((
140 edges.append((
141 ecol, next.index(p), color,
141 ecol, next.index(p), color,
142 bconf.get('width', -1),
142 bconf.get('width', -1),
143 bconf.get('color', '')))
143 bconf.get('color', '')))
144
144
145 # Yield and move on
145 # Yield and move on
146 yield (cur, type, data, (col, color), edges)
146 yield (cur, type, data, (col, color), edges)
147 seen = next
147 seen = next
148
148
149 def grandparent(cl, lowestrev, roots, head):
149 def grandparent(cl, lowestrev, roots, head):
150 """Return all ancestors of head in roots which revision is
150 """Return all ancestors of head in roots which revision is
151 greater or equal to lowestrev.
151 greater or equal to lowestrev.
152 """
152 """
153 pending = set([head])
153 pending = set([head])
154 seen = set()
154 seen = set()
155 kept = set()
155 kept = set()
156 llowestrev = max(nullrev, lowestrev)
156 llowestrev = max(nullrev, lowestrev)
157 while pending:
157 while pending:
158 r = pending.pop()
158 r = pending.pop()
159 if r >= llowestrev and r not in seen:
159 if r >= llowestrev and r not in seen:
160 if r in roots:
160 if r in roots:
161 kept.add(r)
161 kept.add(r)
162 else:
162 else:
163 pending.update([p for p in cl.parentrevs(r)])
163 pending.update([p for p in cl.parentrevs(r)])
164 seen.add(r)
164 seen.add(r)
165 return sorted(kept)
165 return sorted(kept)
166
166
167 def asciiedges(type, char, lines, seen, rev, parents):
167 def asciiedges(type, char, lines, seen, rev, parents):
168 """adds edge info to changelog DAG walk suitable for ascii()"""
168 """adds edge info to changelog DAG walk suitable for ascii()"""
169 if rev not in seen:
169 if rev not in seen:
170 seen.append(rev)
170 seen.append(rev)
171 nodeidx = seen.index(rev)
171 nodeidx = seen.index(rev)
172
172
173 knownparents = []
173 knownparents = []
174 newparents = []
174 newparents = []
175 for parent in parents:
175 for parent in parents:
176 if parent in seen:
176 if parent in seen:
177 knownparents.append(parent)
177 knownparents.append(parent)
178 else:
178 else:
179 newparents.append(parent)
179 newparents.append(parent)
180
180
181 ncols = len(seen)
181 ncols = len(seen)
182 nextseen = seen[:]
182 nextseen = seen[:]
183 nextseen[nodeidx:nodeidx + 1] = newparents
183 nextseen[nodeidx:nodeidx + 1] = newparents
184 edges = [(nodeidx, nextseen.index(p)) for p in knownparents]
184 edges = [(nodeidx, nextseen.index(p)) for p in knownparents if p != nullrev]
185
185
186 while len(newparents) > 2:
186 while len(newparents) > 2:
187 # ascii() only knows how to add or remove a single column between two
187 # ascii() only knows how to add or remove a single column between two
188 # calls. Nodes with more than two parents break this constraint so we
188 # calls. Nodes with more than two parents break this constraint so we
189 # introduce intermediate expansion lines to grow the active node list
189 # introduce intermediate expansion lines to grow the active node list
190 # slowly.
190 # slowly.
191 edges.append((nodeidx, nodeidx))
191 edges.append((nodeidx, nodeidx))
192 edges.append((nodeidx, nodeidx + 1))
192 edges.append((nodeidx, nodeidx + 1))
193 nmorecols = 1
193 nmorecols = 1
194 yield (type, char, lines, (nodeidx, edges, ncols, nmorecols))
194 yield (type, char, lines, (nodeidx, edges, ncols, nmorecols))
195 char = '\\'
195 char = '\\'
196 lines = []
196 lines = []
197 nodeidx += 1
197 nodeidx += 1
198 ncols += 1
198 ncols += 1
199 edges = []
199 edges = []
200 del newparents[0]
200 del newparents[0]
201
201
202 if len(newparents) > 0:
202 if len(newparents) > 0:
203 edges.append((nodeidx, nodeidx))
203 edges.append((nodeidx, nodeidx))
204 if len(newparents) > 1:
204 if len(newparents) > 1:
205 edges.append((nodeidx, nodeidx + 1))
205 edges.append((nodeidx, nodeidx + 1))
206 nmorecols = len(nextseen) - ncols
206 nmorecols = len(nextseen) - ncols
207 seen[:] = nextseen
207 seen[:] = nextseen
208 yield (type, char, lines, (nodeidx, edges, ncols, nmorecols))
208 yield (type, char, lines, (nodeidx, edges, ncols, nmorecols))
209
209
210 def _fixlongrightedges(edges):
210 def _fixlongrightedges(edges):
211 for (i, (start, end)) in enumerate(edges):
211 for (i, (start, end)) in enumerate(edges):
212 if end > start:
212 if end > start:
213 edges[i] = (start, end + 1)
213 edges[i] = (start, end + 1)
214
214
215 def _getnodelineedgestail(
215 def _getnodelineedgestail(
216 node_index, p_node_index, n_columns, n_columns_diff, p_diff, fix_tail):
216 node_index, p_node_index, n_columns, n_columns_diff, p_diff, fix_tail):
217 if fix_tail and n_columns_diff == p_diff and n_columns_diff != 0:
217 if fix_tail and n_columns_diff == p_diff and n_columns_diff != 0:
218 # Still going in the same non-vertical direction.
218 # Still going in the same non-vertical direction.
219 if n_columns_diff == -1:
219 if n_columns_diff == -1:
220 start = max(node_index + 1, p_node_index)
220 start = max(node_index + 1, p_node_index)
221 tail = ["|", " "] * (start - node_index - 1)
221 tail = ["|", " "] * (start - node_index - 1)
222 tail.extend(["/", " "] * (n_columns - start))
222 tail.extend(["/", " "] * (n_columns - start))
223 return tail
223 return tail
224 else:
224 else:
225 return ["\\", " "] * (n_columns - node_index - 1)
225 return ["\\", " "] * (n_columns - node_index - 1)
226 else:
226 else:
227 return ["|", " "] * (n_columns - node_index - 1)
227 return ["|", " "] * (n_columns - node_index - 1)
228
228
229 def _drawedges(edges, nodeline, interline):
229 def _drawedges(edges, nodeline, interline):
230 for (start, end) in edges:
230 for (start, end) in edges:
231 if start == end + 1:
231 if start == end + 1:
232 interline[2 * end + 1] = "/"
232 interline[2 * end + 1] = "/"
233 elif start == end - 1:
233 elif start == end - 1:
234 interline[2 * start + 1] = "\\"
234 interline[2 * start + 1] = "\\"
235 elif start == end:
235 elif start == end:
236 interline[2 * start] = "|"
236 interline[2 * start] = "|"
237 else:
237 else:
238 if 2 * end >= len(nodeline):
238 if 2 * end >= len(nodeline):
239 continue
239 continue
240 nodeline[2 * end] = "+"
240 nodeline[2 * end] = "+"
241 if start > end:
241 if start > end:
242 (start, end) = (end, start)
242 (start, end) = (end, start)
243 for i in range(2 * start + 1, 2 * end):
243 for i in range(2 * start + 1, 2 * end):
244 if nodeline[i] != "+":
244 if nodeline[i] != "+":
245 nodeline[i] = "-"
245 nodeline[i] = "-"
246
246
247 def _getpaddingline(ni, n_columns, edges):
247 def _getpaddingline(ni, n_columns, edges):
248 line = []
248 line = []
249 line.extend(["|", " "] * ni)
249 line.extend(["|", " "] * ni)
250 if (ni, ni - 1) in edges or (ni, ni) in edges:
250 if (ni, ni - 1) in edges or (ni, ni) in edges:
251 # (ni, ni - 1) (ni, ni)
251 # (ni, ni - 1) (ni, ni)
252 # | | | | | | | |
252 # | | | | | | | |
253 # +---o | | o---+
253 # +---o | | o---+
254 # | | c | | c | |
254 # | | c | | c | |
255 # | |/ / | |/ /
255 # | |/ / | |/ /
256 # | | | | | |
256 # | | | | | |
257 c = "|"
257 c = "|"
258 else:
258 else:
259 c = " "
259 c = " "
260 line.extend([c, " "])
260 line.extend([c, " "])
261 line.extend(["|", " "] * (n_columns - ni - 1))
261 line.extend(["|", " "] * (n_columns - ni - 1))
262 return line
262 return line
263
263
264 def asciistate():
264 def asciistate():
265 """returns the initial value for the "state" argument to ascii()"""
265 """returns the initial value for the "state" argument to ascii()"""
266 return [0, 0]
266 return [0, 0]
267
267
268 def ascii(ui, state, type, char, text, coldata):
268 def ascii(ui, state, type, char, text, coldata):
269 """prints an ASCII graph of the DAG
269 """prints an ASCII graph of the DAG
270
270
271 takes the following arguments (one call per node in the graph):
271 takes the following arguments (one call per node in the graph):
272
272
273 - ui to write to
273 - ui to write to
274 - Somewhere to keep the needed state in (init to asciistate())
274 - Somewhere to keep the needed state in (init to asciistate())
275 - Column of the current node in the set of ongoing edges.
275 - Column of the current node in the set of ongoing edges.
276 - Type indicator of node data, usually 'C' for changesets.
276 - Type indicator of node data, usually 'C' for changesets.
277 - Payload: (char, lines):
277 - Payload: (char, lines):
278 - Character to use as node's symbol.
278 - Character to use as node's symbol.
279 - List of lines to display as the node's text.
279 - List of lines to display as the node's text.
280 - Edges; a list of (col, next_col) indicating the edges between
280 - Edges; a list of (col, next_col) indicating the edges between
281 the current node and its parents.
281 the current node and its parents.
282 - Number of columns (ongoing edges) in the current revision.
282 - Number of columns (ongoing edges) in the current revision.
283 - The difference between the number of columns (ongoing edges)
283 - The difference between the number of columns (ongoing edges)
284 in the next revision and the number of columns (ongoing edges)
284 in the next revision and the number of columns (ongoing edges)
285 in the current revision. That is: -1 means one column removed;
285 in the current revision. That is: -1 means one column removed;
286 0 means no columns added or removed; 1 means one column added.
286 0 means no columns added or removed; 1 means one column added.
287 """
287 """
288
288
289 idx, edges, ncols, coldiff = coldata
289 idx, edges, ncols, coldiff = coldata
290 assert -2 < coldiff < 2
290 assert -2 < coldiff < 2
291 if coldiff == -1:
291 if coldiff == -1:
292 # Transform
292 # Transform
293 #
293 #
294 # | | | | | |
294 # | | | | | |
295 # o | | into o---+
295 # o | | into o---+
296 # |X / |/ /
296 # |X / |/ /
297 # | | | |
297 # | | | |
298 _fixlongrightedges(edges)
298 _fixlongrightedges(edges)
299
299
300 # add_padding_line says whether to rewrite
300 # add_padding_line says whether to rewrite
301 #
301 #
302 # | | | | | | | |
302 # | | | | | | | |
303 # | o---+ into | o---+
303 # | o---+ into | o---+
304 # | / / | | | # <--- padding line
304 # | / / | | | # <--- padding line
305 # o | | | / /
305 # o | | | / /
306 # o | |
306 # o | |
307 add_padding_line = (len(text) > 2 and coldiff == -1 and
307 add_padding_line = (len(text) > 2 and coldiff == -1 and
308 [x for (x, y) in edges if x + 1 < y])
308 [x for (x, y) in edges if x + 1 < y])
309
309
310 # fix_nodeline_tail says whether to rewrite
310 # fix_nodeline_tail says whether to rewrite
311 #
311 #
312 # | | o | | | | o | |
312 # | | o | | | | o | |
313 # | | |/ / | | |/ /
313 # | | |/ / | | |/ /
314 # | o | | into | o / / # <--- fixed nodeline tail
314 # | o | | into | o / / # <--- fixed nodeline tail
315 # | |/ / | |/ /
315 # | |/ / | |/ /
316 # o | | o | |
316 # o | | o | |
317 fix_nodeline_tail = len(text) <= 2 and not add_padding_line
317 fix_nodeline_tail = len(text) <= 2 and not add_padding_line
318
318
319 # nodeline is the line containing the node character (typically o)
319 # nodeline is the line containing the node character (typically o)
320 nodeline = ["|", " "] * idx
320 nodeline = ["|", " "] * idx
321 nodeline.extend([char, " "])
321 nodeline.extend([char, " "])
322
322
323 nodeline.extend(
323 nodeline.extend(
324 _getnodelineedgestail(idx, state[1], ncols, coldiff,
324 _getnodelineedgestail(idx, state[1], ncols, coldiff,
325 state[0], fix_nodeline_tail))
325 state[0], fix_nodeline_tail))
326
326
327 # shift_interline is the line containing the non-vertical
327 # shift_interline is the line containing the non-vertical
328 # edges between this entry and the next
328 # edges between this entry and the next
329 shift_interline = ["|", " "] * idx
329 shift_interline = ["|", " "] * idx
330 if coldiff == -1:
330 if coldiff == -1:
331 n_spaces = 1
331 n_spaces = 1
332 edge_ch = "/"
332 edge_ch = "/"
333 elif coldiff == 0:
333 elif coldiff == 0:
334 n_spaces = 2
334 n_spaces = 2
335 edge_ch = "|"
335 edge_ch = "|"
336 else:
336 else:
337 n_spaces = 3
337 n_spaces = 3
338 edge_ch = "\\"
338 edge_ch = "\\"
339 shift_interline.extend(n_spaces * [" "])
339 shift_interline.extend(n_spaces * [" "])
340 shift_interline.extend([edge_ch, " "] * (ncols - idx - 1))
340 shift_interline.extend([edge_ch, " "] * (ncols - idx - 1))
341
341
342 # draw edges from the current node to its parents
342 # draw edges from the current node to its parents
343 _drawedges(edges, nodeline, shift_interline)
343 _drawedges(edges, nodeline, shift_interline)
344
344
345 # lines is the list of all graph lines to print
345 # lines is the list of all graph lines to print
346 lines = [nodeline]
346 lines = [nodeline]
347 if add_padding_line:
347 if add_padding_line:
348 lines.append(_getpaddingline(idx, ncols, edges))
348 lines.append(_getpaddingline(idx, ncols, edges))
349 lines.append(shift_interline)
349 lines.append(shift_interline)
350
350
351 # make sure that there are as many graph lines as there are
351 # make sure that there are as many graph lines as there are
352 # log strings
352 # log strings
353 while len(text) < len(lines):
353 while len(text) < len(lines):
354 text.append("")
354 text.append("")
355 if len(lines) < len(text):
355 if len(lines) < len(text):
356 extra_interline = ["|", " "] * (ncols + coldiff)
356 extra_interline = ["|", " "] * (ncols + coldiff)
357 while len(lines) < len(text):
357 while len(lines) < len(text):
358 lines.append(extra_interline)
358 lines.append(extra_interline)
359
359
360 # print lines
360 # print lines
361 indentation_level = max(ncols, ncols + coldiff)
361 indentation_level = max(ncols, ncols + coldiff)
362 for (line, logstr) in zip(lines, text):
362 for (line, logstr) in zip(lines, text):
363 ln = "%-*s %s" % (2 * indentation_level, "".join(line), logstr)
363 ln = "%-*s %s" % (2 * indentation_level, "".join(line), logstr)
364 ui.write(ln.rstrip() + '\n')
364 ui.write(ln.rstrip() + '\n')
365
365
366 # ... and start over
366 # ... and start over
367 state[0] = coldiff
367 state[0] = coldiff
368 state[1] = idx
368 state[1] = idx
@@ -1,2112 +1,2120 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, revset, commands, cmdutil
85 > from mercurial import extensions, revset, 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 = revset.parse(expr)[0]
92 > tree = revset.parse(expr)[0]
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(revset.prettyformat(tree) + '\n')
96 > ui.write(revset.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 "graphlog=" >> $HGRCPATH
105 $ echo "graphlog=" >> $HGRCPATH
106 $ echo "printrevset=`pwd`/printrevset.py" >> $HGRCPATH
106 $ echo "printrevset=`pwd`/printrevset.py" >> $HGRCPATH
107
107
108 $ hg init repo
108 $ hg init repo
109 $ cd repo
109 $ cd repo
110
110
111 Empty repo:
111 Empty repo:
112
112
113 $ hg glog
113 $ hg glog
114
114
115
115
116 Building DAG:
116 Building DAG:
117
117
118 $ commit 0 "root"
118 $ commit 0 "root"
119 $ commit 1 "collapse" 0
119 $ commit 1 "collapse" 0
120 $ commit 2 "collapse" 1
120 $ commit 2 "collapse" 1
121 $ commit 3 "collapse" 2
121 $ commit 3 "collapse" 2
122 $ commit 4 "merge two known; one immediate left, one immediate right" 1 3
122 $ commit 4 "merge two known; one immediate left, one immediate right" 1 3
123 $ commit 5 "expand" 3 4
123 $ commit 5 "expand" 3 4
124 $ commit 6 "merge two known; one immediate left, one far left" 2 5
124 $ commit 6 "merge two known; one immediate left, one far left" 2 5
125 $ commit 7 "expand" 2 5
125 $ commit 7 "expand" 2 5
126 $ commit 8 "merge two known; one immediate left, one far right" 0 7
126 $ commit 8 "merge two known; one immediate left, one far right" 0 7
127 $ commit 9 "expand" 7 8
127 $ commit 9 "expand" 7 8
128 $ commit 10 "merge two known; one immediate left, one near right" 0 6
128 $ commit 10 "merge two known; one immediate left, one near right" 0 6
129 $ commit 11 "expand" 6 10
129 $ commit 11 "expand" 6 10
130 $ commit 12 "merge two known; one immediate right, one far left" 1 9
130 $ commit 12 "merge two known; one immediate right, one far left" 1 9
131 $ commit 13 "expand" 9 11
131 $ commit 13 "expand" 9 11
132 $ commit 14 "merge two known; one immediate right, one far right" 0 12
132 $ commit 14 "merge two known; one immediate right, one far right" 0 12
133 $ commit 15 "expand" 13 14
133 $ commit 15 "expand" 13 14
134 $ commit 16 "merge two known; one immediate right, one near right" 0 1
134 $ commit 16 "merge two known; one immediate right, one near right" 0 1
135 $ commit 17 "expand" 12 16
135 $ commit 17 "expand" 12 16
136 $ commit 18 "merge two known; two far left" 1 15
136 $ commit 18 "merge two known; two far left" 1 15
137 $ commit 19 "expand" 15 17
137 $ commit 19 "expand" 15 17
138 $ commit 20 "merge two known; two far right" 0 18
138 $ commit 20 "merge two known; two far right" 0 18
139 $ commit 21 "expand" 19 20
139 $ commit 21 "expand" 19 20
140 $ commit 22 "merge two known; one far left, one far right" 18 21
140 $ commit 22 "merge two known; one far left, one far right" 18 21
141 $ commit 23 "merge one known; immediate left" 1 22
141 $ commit 23 "merge one known; immediate left" 1 22
142 $ commit 24 "merge one known; immediate right" 0 23
142 $ commit 24 "merge one known; immediate right" 0 23
143 $ commit 25 "merge one known; far left" 21 24
143 $ commit 25 "merge one known; far left" 21 24
144 $ commit 26 "merge one known; far right" 18 25
144 $ commit 26 "merge one known; far right" 18 25
145 $ commit 27 "collapse" 21
145 $ commit 27 "collapse" 21
146 $ commit 28 "merge zero known" 1 26
146 $ commit 28 "merge zero known" 1 26
147 $ commit 29 "regular commit" 0
147 $ commit 29 "regular commit" 0
148 $ commit 30 "expand" 28 29
148 $ commit 30 "expand" 28 29
149 $ commit 31 "expand" 21 30
149 $ commit 31 "expand" 21 30
150 $ commit 32 "expand" 27 31
150 $ commit 32 "expand" 27 31
151 $ commit 33 "head" 18
151 $ commit 33 "head" 18
152 $ commit 34 "head" 32
152 $ commit 34 "head" 32
153
153
154
154
155 $ hg glog -q
155 $ hg glog -q
156 @ 34:fea3ac5810e0
156 @ 34:fea3ac5810e0
157 |
157 |
158 | o 33:68608f5145f9
158 | o 33:68608f5145f9
159 | |
159 | |
160 o | 32:d06dffa21a31
160 o | 32:d06dffa21a31
161 |\ \
161 |\ \
162 | o \ 31:621d83e11f67
162 | o \ 31:621d83e11f67
163 | |\ \
163 | |\ \
164 | | o \ 30:6e11cd4b648f
164 | | o \ 30:6e11cd4b648f
165 | | |\ \
165 | | |\ \
166 | | | o | 29:cd9bb2be7593
166 | | | o | 29:cd9bb2be7593
167 | | | | |
167 | | | | |
168 | | o | | 28:44ecd0b9ae99
168 | | o | | 28:44ecd0b9ae99
169 | | |\ \ \
169 | | |\ \ \
170 o | | | | | 27:886ed638191b
170 o | | | | | 27:886ed638191b
171 |/ / / / /
171 |/ / / / /
172 | | o---+ 26:7f25b6c2f0b9
172 | | o---+ 26:7f25b6c2f0b9
173 | | | | |
173 | | | | |
174 +---o | | 25:91da8ed57247
174 +---o | | 25:91da8ed57247
175 | | | | |
175 | | | | |
176 | | o | | 24:a9c19a3d96b7
176 | | o | | 24:a9c19a3d96b7
177 | | |\| |
177 | | |\| |
178 | | o | | 23:a01cddf0766d
178 | | o | | 23:a01cddf0766d
179 | |/| | |
179 | |/| | |
180 +---o---+ 22:e0d9cccacb5d
180 +---o---+ 22:e0d9cccacb5d
181 | | / /
181 | | / /
182 o | | | 21:d42a756af44d
182 o | | | 21:d42a756af44d
183 |\ \ \ \
183 |\ \ \ \
184 | o---+-+ 20:d30ed6450e32
184 | o---+-+ 20:d30ed6450e32
185 | / / /
185 | / / /
186 o | | | 19:31ddc2c1573b
186 o | | | 19:31ddc2c1573b
187 |\ \ \ \
187 |\ \ \ \
188 +---+---o 18:1aa84d96232a
188 +---+---o 18:1aa84d96232a
189 | | | |
189 | | | |
190 | o | | 17:44765d7c06e0
190 | o | | 17:44765d7c06e0
191 | |\ \ \
191 | |\ \ \
192 | | o---+ 16:3677d192927d
192 | | o---+ 16:3677d192927d
193 | | |/ /
193 | | |/ /
194 o | | | 15:1dda3f72782d
194 o | | | 15:1dda3f72782d
195 |\ \ \ \
195 |\ \ \ \
196 | o-----+ 14:8eac370358ef
196 | o-----+ 14:8eac370358ef
197 | |/ / /
197 | |/ / /
198 o | | | 13:22d8966a97e3
198 o | | | 13:22d8966a97e3
199 |\ \ \ \
199 |\ \ \ \
200 +---o | | 12:86b91144a6e9
200 +---o | | 12:86b91144a6e9
201 | | |/ /
201 | | |/ /
202 | o | | 11:832d76e6bdf2
202 | o | | 11:832d76e6bdf2
203 | |\ \ \
203 | |\ \ \
204 | | o---+ 10:74c64d036d72
204 | | o---+ 10:74c64d036d72
205 | |/ / /
205 | |/ / /
206 o | | | 9:7010c0af0a35
206 o | | | 9:7010c0af0a35
207 |\ \ \ \
207 |\ \ \ \
208 | o-----+ 8:7a0b11f71937
208 | o-----+ 8:7a0b11f71937
209 |/ / / /
209 |/ / / /
210 o | | | 7:b632bb1b1224
210 o | | | 7:b632bb1b1224
211 |\ \ \ \
211 |\ \ \ \
212 +---o | | 6:b105a072e251
212 +---o | | 6:b105a072e251
213 | |/ / /
213 | |/ / /
214 | o | | 5:4409d547b708
214 | o | | 5:4409d547b708
215 | |\ \ \
215 | |\ \ \
216 | | o | | 4:26a8bac39d9f
216 | | o | | 4:26a8bac39d9f
217 | |/|/ /
217 | |/|/ /
218 | o / / 3:27eef8ed80b4
218 | o / / 3:27eef8ed80b4
219 |/ / /
219 |/ / /
220 o / / 2:3d9a33b8d1e1
220 o / / 2:3d9a33b8d1e1
221 |/ /
221 |/ /
222 o / 1:6db2ef61d156
222 o / 1:6db2ef61d156
223 |/
223 |/
224 o 0:e6eb3150255d
224 o 0:e6eb3150255d
225
225
226
226
227 $ hg glog
227 $ hg glog
228 @ changeset: 34:fea3ac5810e0
228 @ changeset: 34:fea3ac5810e0
229 | tag: tip
229 | tag: tip
230 | parent: 32:d06dffa21a31
230 | parent: 32:d06dffa21a31
231 | user: test
231 | user: test
232 | date: Thu Jan 01 00:00:34 1970 +0000
232 | date: Thu Jan 01 00:00:34 1970 +0000
233 | summary: (34) head
233 | summary: (34) head
234 |
234 |
235 | o changeset: 33:68608f5145f9
235 | o changeset: 33:68608f5145f9
236 | | parent: 18:1aa84d96232a
236 | | parent: 18:1aa84d96232a
237 | | user: test
237 | | user: test
238 | | date: Thu Jan 01 00:00:33 1970 +0000
238 | | date: Thu Jan 01 00:00:33 1970 +0000
239 | | summary: (33) head
239 | | summary: (33) head
240 | |
240 | |
241 o | changeset: 32:d06dffa21a31
241 o | changeset: 32:d06dffa21a31
242 |\ \ parent: 27:886ed638191b
242 |\ \ parent: 27:886ed638191b
243 | | | parent: 31:621d83e11f67
243 | | | parent: 31:621d83e11f67
244 | | | user: test
244 | | | user: test
245 | | | date: Thu Jan 01 00:00:32 1970 +0000
245 | | | date: Thu Jan 01 00:00:32 1970 +0000
246 | | | summary: (32) expand
246 | | | summary: (32) expand
247 | | |
247 | | |
248 | o | changeset: 31:621d83e11f67
248 | o | changeset: 31:621d83e11f67
249 | |\ \ parent: 21:d42a756af44d
249 | |\ \ parent: 21:d42a756af44d
250 | | | | parent: 30:6e11cd4b648f
250 | | | | parent: 30:6e11cd4b648f
251 | | | | user: test
251 | | | | user: test
252 | | | | date: Thu Jan 01 00:00:31 1970 +0000
252 | | | | date: Thu Jan 01 00:00:31 1970 +0000
253 | | | | summary: (31) expand
253 | | | | summary: (31) expand
254 | | | |
254 | | | |
255 | | o | changeset: 30:6e11cd4b648f
255 | | o | changeset: 30:6e11cd4b648f
256 | | |\ \ parent: 28:44ecd0b9ae99
256 | | |\ \ parent: 28:44ecd0b9ae99
257 | | | | | parent: 29:cd9bb2be7593
257 | | | | | parent: 29:cd9bb2be7593
258 | | | | | user: test
258 | | | | | user: test
259 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
259 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
260 | | | | | summary: (30) expand
260 | | | | | summary: (30) expand
261 | | | | |
261 | | | | |
262 | | | o | changeset: 29:cd9bb2be7593
262 | | | o | changeset: 29:cd9bb2be7593
263 | | | | | parent: 0:e6eb3150255d
263 | | | | | parent: 0:e6eb3150255d
264 | | | | | user: test
264 | | | | | user: test
265 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
265 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
266 | | | | | summary: (29) regular commit
266 | | | | | summary: (29) regular commit
267 | | | | |
267 | | | | |
268 | | o | | changeset: 28:44ecd0b9ae99
268 | | o | | changeset: 28:44ecd0b9ae99
269 | | |\ \ \ parent: 1:6db2ef61d156
269 | | |\ \ \ parent: 1:6db2ef61d156
270 | | | | | | parent: 26:7f25b6c2f0b9
270 | | | | | | parent: 26:7f25b6c2f0b9
271 | | | | | | user: test
271 | | | | | | user: test
272 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
272 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
273 | | | | | | summary: (28) merge zero known
273 | | | | | | summary: (28) merge zero known
274 | | | | | |
274 | | | | | |
275 o | | | | | changeset: 27:886ed638191b
275 o | | | | | changeset: 27:886ed638191b
276 |/ / / / / parent: 21:d42a756af44d
276 |/ / / / / parent: 21:d42a756af44d
277 | | | | | user: test
277 | | | | | user: test
278 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
278 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
279 | | | | | summary: (27) collapse
279 | | | | | summary: (27) collapse
280 | | | | |
280 | | | | |
281 | | o---+ changeset: 26:7f25b6c2f0b9
281 | | o---+ changeset: 26:7f25b6c2f0b9
282 | | | | | parent: 18:1aa84d96232a
282 | | | | | parent: 18:1aa84d96232a
283 | | | | | parent: 25:91da8ed57247
283 | | | | | parent: 25:91da8ed57247
284 | | | | | user: test
284 | | | | | user: test
285 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
285 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
286 | | | | | summary: (26) merge one known; far right
286 | | | | | summary: (26) merge one known; far right
287 | | | | |
287 | | | | |
288 +---o | | changeset: 25:91da8ed57247
288 +---o | | changeset: 25:91da8ed57247
289 | | | | | parent: 21:d42a756af44d
289 | | | | | parent: 21:d42a756af44d
290 | | | | | parent: 24:a9c19a3d96b7
290 | | | | | parent: 24:a9c19a3d96b7
291 | | | | | user: test
291 | | | | | user: test
292 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
292 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
293 | | | | | summary: (25) merge one known; far left
293 | | | | | summary: (25) merge one known; far left
294 | | | | |
294 | | | | |
295 | | o | | changeset: 24:a9c19a3d96b7
295 | | o | | changeset: 24:a9c19a3d96b7
296 | | |\| | parent: 0:e6eb3150255d
296 | | |\| | parent: 0:e6eb3150255d
297 | | | | | parent: 23:a01cddf0766d
297 | | | | | parent: 23:a01cddf0766d
298 | | | | | user: test
298 | | | | | user: test
299 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
299 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
300 | | | | | summary: (24) merge one known; immediate right
300 | | | | | summary: (24) merge one known; immediate right
301 | | | | |
301 | | | | |
302 | | o | | changeset: 23:a01cddf0766d
302 | | o | | changeset: 23:a01cddf0766d
303 | |/| | | parent: 1:6db2ef61d156
303 | |/| | | parent: 1:6db2ef61d156
304 | | | | | parent: 22:e0d9cccacb5d
304 | | | | | parent: 22:e0d9cccacb5d
305 | | | | | user: test
305 | | | | | user: test
306 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
306 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
307 | | | | | summary: (23) merge one known; immediate left
307 | | | | | summary: (23) merge one known; immediate left
308 | | | | |
308 | | | | |
309 +---o---+ changeset: 22:e0d9cccacb5d
309 +---o---+ changeset: 22:e0d9cccacb5d
310 | | | | parent: 18:1aa84d96232a
310 | | | | parent: 18:1aa84d96232a
311 | | / / parent: 21:d42a756af44d
311 | | / / parent: 21:d42a756af44d
312 | | | | user: test
312 | | | | user: test
313 | | | | date: Thu Jan 01 00:00:22 1970 +0000
313 | | | | date: Thu Jan 01 00:00:22 1970 +0000
314 | | | | summary: (22) merge two known; one far left, one far right
314 | | | | summary: (22) merge two known; one far left, one far right
315 | | | |
315 | | | |
316 o | | | changeset: 21:d42a756af44d
316 o | | | changeset: 21:d42a756af44d
317 |\ \ \ \ parent: 19:31ddc2c1573b
317 |\ \ \ \ parent: 19:31ddc2c1573b
318 | | | | | parent: 20:d30ed6450e32
318 | | | | | parent: 20:d30ed6450e32
319 | | | | | user: test
319 | | | | | user: test
320 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
320 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
321 | | | | | summary: (21) expand
321 | | | | | summary: (21) expand
322 | | | | |
322 | | | | |
323 | o---+-+ changeset: 20:d30ed6450e32
323 | o---+-+ changeset: 20:d30ed6450e32
324 | | | | parent: 0:e6eb3150255d
324 | | | | parent: 0:e6eb3150255d
325 | / / / parent: 18:1aa84d96232a
325 | / / / parent: 18:1aa84d96232a
326 | | | | user: test
326 | | | | user: test
327 | | | | date: Thu Jan 01 00:00:20 1970 +0000
327 | | | | date: Thu Jan 01 00:00:20 1970 +0000
328 | | | | summary: (20) merge two known; two far right
328 | | | | summary: (20) merge two known; two far right
329 | | | |
329 | | | |
330 o | | | changeset: 19:31ddc2c1573b
330 o | | | changeset: 19:31ddc2c1573b
331 |\ \ \ \ parent: 15:1dda3f72782d
331 |\ \ \ \ parent: 15:1dda3f72782d
332 | | | | | parent: 17:44765d7c06e0
332 | | | | | parent: 17:44765d7c06e0
333 | | | | | user: test
333 | | | | | user: test
334 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
334 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
335 | | | | | summary: (19) expand
335 | | | | | summary: (19) expand
336 | | | | |
336 | | | | |
337 +---+---o changeset: 18:1aa84d96232a
337 +---+---o changeset: 18:1aa84d96232a
338 | | | | parent: 1:6db2ef61d156
338 | | | | parent: 1:6db2ef61d156
339 | | | | parent: 15:1dda3f72782d
339 | | | | parent: 15:1dda3f72782d
340 | | | | user: test
340 | | | | user: test
341 | | | | date: Thu Jan 01 00:00:18 1970 +0000
341 | | | | date: Thu Jan 01 00:00:18 1970 +0000
342 | | | | summary: (18) merge two known; two far left
342 | | | | summary: (18) merge two known; two far left
343 | | | |
343 | | | |
344 | o | | changeset: 17:44765d7c06e0
344 | o | | changeset: 17:44765d7c06e0
345 | |\ \ \ parent: 12:86b91144a6e9
345 | |\ \ \ parent: 12:86b91144a6e9
346 | | | | | parent: 16:3677d192927d
346 | | | | | parent: 16:3677d192927d
347 | | | | | user: test
347 | | | | | user: test
348 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
348 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
349 | | | | | summary: (17) expand
349 | | | | | summary: (17) expand
350 | | | | |
350 | | | | |
351 | | o---+ changeset: 16:3677d192927d
351 | | o---+ changeset: 16:3677d192927d
352 | | | | | parent: 0:e6eb3150255d
352 | | | | | parent: 0:e6eb3150255d
353 | | |/ / parent: 1:6db2ef61d156
353 | | |/ / parent: 1:6db2ef61d156
354 | | | | user: test
354 | | | | user: test
355 | | | | date: Thu Jan 01 00:00:16 1970 +0000
355 | | | | date: Thu Jan 01 00:00:16 1970 +0000
356 | | | | summary: (16) merge two known; one immediate right, one near right
356 | | | | summary: (16) merge two known; one immediate right, one near right
357 | | | |
357 | | | |
358 o | | | changeset: 15:1dda3f72782d
358 o | | | changeset: 15:1dda3f72782d
359 |\ \ \ \ parent: 13:22d8966a97e3
359 |\ \ \ \ parent: 13:22d8966a97e3
360 | | | | | parent: 14:8eac370358ef
360 | | | | | parent: 14:8eac370358ef
361 | | | | | user: test
361 | | | | | user: test
362 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
362 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
363 | | | | | summary: (15) expand
363 | | | | | summary: (15) expand
364 | | | | |
364 | | | | |
365 | o-----+ changeset: 14:8eac370358ef
365 | o-----+ changeset: 14:8eac370358ef
366 | | | | | parent: 0:e6eb3150255d
366 | | | | | parent: 0:e6eb3150255d
367 | |/ / / parent: 12:86b91144a6e9
367 | |/ / / parent: 12:86b91144a6e9
368 | | | | user: test
368 | | | | user: test
369 | | | | date: Thu Jan 01 00:00:14 1970 +0000
369 | | | | date: Thu Jan 01 00:00:14 1970 +0000
370 | | | | summary: (14) merge two known; one immediate right, one far right
370 | | | | summary: (14) merge two known; one immediate right, one far right
371 | | | |
371 | | | |
372 o | | | changeset: 13:22d8966a97e3
372 o | | | changeset: 13:22d8966a97e3
373 |\ \ \ \ parent: 9:7010c0af0a35
373 |\ \ \ \ parent: 9:7010c0af0a35
374 | | | | | parent: 11:832d76e6bdf2
374 | | | | | parent: 11:832d76e6bdf2
375 | | | | | user: test
375 | | | | | user: test
376 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
376 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
377 | | | | | summary: (13) expand
377 | | | | | summary: (13) expand
378 | | | | |
378 | | | | |
379 +---o | | changeset: 12:86b91144a6e9
379 +---o | | changeset: 12:86b91144a6e9
380 | | |/ / parent: 1:6db2ef61d156
380 | | |/ / parent: 1:6db2ef61d156
381 | | | | parent: 9:7010c0af0a35
381 | | | | parent: 9:7010c0af0a35
382 | | | | user: test
382 | | | | user: test
383 | | | | date: Thu Jan 01 00:00:12 1970 +0000
383 | | | | date: Thu Jan 01 00:00:12 1970 +0000
384 | | | | summary: (12) merge two known; one immediate right, one far left
384 | | | | summary: (12) merge two known; one immediate right, one far left
385 | | | |
385 | | | |
386 | o | | changeset: 11:832d76e6bdf2
386 | o | | changeset: 11:832d76e6bdf2
387 | |\ \ \ parent: 6:b105a072e251
387 | |\ \ \ parent: 6:b105a072e251
388 | | | | | parent: 10:74c64d036d72
388 | | | | | parent: 10:74c64d036d72
389 | | | | | user: test
389 | | | | | user: test
390 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
390 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
391 | | | | | summary: (11) expand
391 | | | | | summary: (11) expand
392 | | | | |
392 | | | | |
393 | | o---+ changeset: 10:74c64d036d72
393 | | o---+ changeset: 10:74c64d036d72
394 | | | | | parent: 0:e6eb3150255d
394 | | | | | parent: 0:e6eb3150255d
395 | |/ / / parent: 6:b105a072e251
395 | |/ / / parent: 6:b105a072e251
396 | | | | user: test
396 | | | | user: test
397 | | | | date: Thu Jan 01 00:00:10 1970 +0000
397 | | | | date: Thu Jan 01 00:00:10 1970 +0000
398 | | | | summary: (10) merge two known; one immediate left, one near right
398 | | | | summary: (10) merge two known; one immediate left, one near right
399 | | | |
399 | | | |
400 o | | | changeset: 9:7010c0af0a35
400 o | | | changeset: 9:7010c0af0a35
401 |\ \ \ \ parent: 7:b632bb1b1224
401 |\ \ \ \ parent: 7:b632bb1b1224
402 | | | | | parent: 8:7a0b11f71937
402 | | | | | parent: 8:7a0b11f71937
403 | | | | | user: test
403 | | | | | user: test
404 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
404 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
405 | | | | | summary: (9) expand
405 | | | | | summary: (9) expand
406 | | | | |
406 | | | | |
407 | o-----+ changeset: 8:7a0b11f71937
407 | o-----+ changeset: 8:7a0b11f71937
408 | | | | | parent: 0:e6eb3150255d
408 | | | | | parent: 0:e6eb3150255d
409 |/ / / / parent: 7:b632bb1b1224
409 |/ / / / parent: 7:b632bb1b1224
410 | | | | user: test
410 | | | | user: test
411 | | | | date: Thu Jan 01 00:00:08 1970 +0000
411 | | | | date: Thu Jan 01 00:00:08 1970 +0000
412 | | | | summary: (8) merge two known; one immediate left, one far right
412 | | | | summary: (8) merge two known; one immediate left, one far right
413 | | | |
413 | | | |
414 o | | | changeset: 7:b632bb1b1224
414 o | | | changeset: 7:b632bb1b1224
415 |\ \ \ \ parent: 2:3d9a33b8d1e1
415 |\ \ \ \ parent: 2:3d9a33b8d1e1
416 | | | | | parent: 5:4409d547b708
416 | | | | | parent: 5:4409d547b708
417 | | | | | user: test
417 | | | | | user: test
418 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
418 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
419 | | | | | summary: (7) expand
419 | | | | | summary: (7) expand
420 | | | | |
420 | | | | |
421 +---o | | changeset: 6:b105a072e251
421 +---o | | changeset: 6:b105a072e251
422 | |/ / / parent: 2:3d9a33b8d1e1
422 | |/ / / parent: 2:3d9a33b8d1e1
423 | | | | parent: 5:4409d547b708
423 | | | | parent: 5:4409d547b708
424 | | | | user: test
424 | | | | user: test
425 | | | | date: Thu Jan 01 00:00:06 1970 +0000
425 | | | | date: Thu Jan 01 00:00:06 1970 +0000
426 | | | | summary: (6) merge two known; one immediate left, one far left
426 | | | | summary: (6) merge two known; one immediate left, one far left
427 | | | |
427 | | | |
428 | o | | changeset: 5:4409d547b708
428 | o | | changeset: 5:4409d547b708
429 | |\ \ \ parent: 3:27eef8ed80b4
429 | |\ \ \ parent: 3:27eef8ed80b4
430 | | | | | parent: 4:26a8bac39d9f
430 | | | | | parent: 4:26a8bac39d9f
431 | | | | | user: test
431 | | | | | user: test
432 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
432 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
433 | | | | | summary: (5) expand
433 | | | | | summary: (5) expand
434 | | | | |
434 | | | | |
435 | | o | | changeset: 4:26a8bac39d9f
435 | | o | | changeset: 4:26a8bac39d9f
436 | |/|/ / parent: 1:6db2ef61d156
436 | |/|/ / parent: 1:6db2ef61d156
437 | | | | parent: 3:27eef8ed80b4
437 | | | | parent: 3:27eef8ed80b4
438 | | | | user: test
438 | | | | user: test
439 | | | | date: Thu Jan 01 00:00:04 1970 +0000
439 | | | | date: Thu Jan 01 00:00:04 1970 +0000
440 | | | | summary: (4) merge two known; one immediate left, one immediate right
440 | | | | summary: (4) merge two known; one immediate left, one immediate right
441 | | | |
441 | | | |
442 | o | | changeset: 3:27eef8ed80b4
442 | o | | changeset: 3:27eef8ed80b4
443 |/ / / user: test
443 |/ / / user: test
444 | | | date: Thu Jan 01 00:00:03 1970 +0000
444 | | | date: Thu Jan 01 00:00:03 1970 +0000
445 | | | summary: (3) collapse
445 | | | summary: (3) collapse
446 | | |
446 | | |
447 o | | changeset: 2:3d9a33b8d1e1
447 o | | changeset: 2:3d9a33b8d1e1
448 |/ / user: test
448 |/ / user: test
449 | | date: Thu Jan 01 00:00:02 1970 +0000
449 | | date: Thu Jan 01 00:00:02 1970 +0000
450 | | summary: (2) collapse
450 | | summary: (2) collapse
451 | |
451 | |
452 o | changeset: 1:6db2ef61d156
452 o | changeset: 1:6db2ef61d156
453 |/ user: test
453 |/ user: test
454 | date: Thu Jan 01 00:00:01 1970 +0000
454 | date: Thu Jan 01 00:00:01 1970 +0000
455 | summary: (1) collapse
455 | summary: (1) collapse
456 |
456 |
457 o changeset: 0:e6eb3150255d
457 o changeset: 0:e6eb3150255d
458 user: test
458 user: test
459 date: Thu Jan 01 00:00:00 1970 +0000
459 date: Thu Jan 01 00:00:00 1970 +0000
460 summary: (0) root
460 summary: (0) root
461
461
462
462
463 File glog:
463 File glog:
464 $ hg glog a
464 $ hg glog a
465 @ changeset: 34:fea3ac5810e0
465 @ changeset: 34:fea3ac5810e0
466 | tag: tip
466 | tag: tip
467 | parent: 32:d06dffa21a31
467 | parent: 32:d06dffa21a31
468 | user: test
468 | user: test
469 | date: Thu Jan 01 00:00:34 1970 +0000
469 | date: Thu Jan 01 00:00:34 1970 +0000
470 | summary: (34) head
470 | summary: (34) head
471 |
471 |
472 | o changeset: 33:68608f5145f9
472 | o changeset: 33:68608f5145f9
473 | | parent: 18:1aa84d96232a
473 | | parent: 18:1aa84d96232a
474 | | user: test
474 | | user: test
475 | | date: Thu Jan 01 00:00:33 1970 +0000
475 | | date: Thu Jan 01 00:00:33 1970 +0000
476 | | summary: (33) head
476 | | summary: (33) head
477 | |
477 | |
478 o | changeset: 32:d06dffa21a31
478 o | changeset: 32:d06dffa21a31
479 |\ \ parent: 27:886ed638191b
479 |\ \ parent: 27:886ed638191b
480 | | | parent: 31:621d83e11f67
480 | | | parent: 31:621d83e11f67
481 | | | user: test
481 | | | user: test
482 | | | date: Thu Jan 01 00:00:32 1970 +0000
482 | | | date: Thu Jan 01 00:00:32 1970 +0000
483 | | | summary: (32) expand
483 | | | summary: (32) expand
484 | | |
484 | | |
485 | o | changeset: 31:621d83e11f67
485 | o | changeset: 31:621d83e11f67
486 | |\ \ parent: 21:d42a756af44d
486 | |\ \ parent: 21:d42a756af44d
487 | | | | parent: 30:6e11cd4b648f
487 | | | | parent: 30:6e11cd4b648f
488 | | | | user: test
488 | | | | user: test
489 | | | | date: Thu Jan 01 00:00:31 1970 +0000
489 | | | | date: Thu Jan 01 00:00:31 1970 +0000
490 | | | | summary: (31) expand
490 | | | | summary: (31) expand
491 | | | |
491 | | | |
492 | | o | changeset: 30:6e11cd4b648f
492 | | o | changeset: 30:6e11cd4b648f
493 | | |\ \ parent: 28:44ecd0b9ae99
493 | | |\ \ parent: 28:44ecd0b9ae99
494 | | | | | parent: 29:cd9bb2be7593
494 | | | | | parent: 29:cd9bb2be7593
495 | | | | | user: test
495 | | | | | user: test
496 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
496 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
497 | | | | | summary: (30) expand
497 | | | | | summary: (30) expand
498 | | | | |
498 | | | | |
499 | | | o | changeset: 29:cd9bb2be7593
499 | | | o | changeset: 29:cd9bb2be7593
500 | | | | | parent: 0:e6eb3150255d
500 | | | | | parent: 0:e6eb3150255d
501 | | | | | user: test
501 | | | | | user: test
502 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
502 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
503 | | | | | summary: (29) regular commit
503 | | | | | summary: (29) regular commit
504 | | | | |
504 | | | | |
505 | | o | | changeset: 28:44ecd0b9ae99
505 | | o | | changeset: 28:44ecd0b9ae99
506 | | |\ \ \ parent: 1:6db2ef61d156
506 | | |\ \ \ parent: 1:6db2ef61d156
507 | | | | | | parent: 26:7f25b6c2f0b9
507 | | | | | | parent: 26:7f25b6c2f0b9
508 | | | | | | user: test
508 | | | | | | user: test
509 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
509 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
510 | | | | | | summary: (28) merge zero known
510 | | | | | | summary: (28) merge zero known
511 | | | | | |
511 | | | | | |
512 o | | | | | changeset: 27:886ed638191b
512 o | | | | | changeset: 27:886ed638191b
513 |/ / / / / parent: 21:d42a756af44d
513 |/ / / / / parent: 21:d42a756af44d
514 | | | | | user: test
514 | | | | | user: test
515 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
515 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
516 | | | | | summary: (27) collapse
516 | | | | | summary: (27) collapse
517 | | | | |
517 | | | | |
518 | | o---+ changeset: 26:7f25b6c2f0b9
518 | | o---+ changeset: 26:7f25b6c2f0b9
519 | | | | | parent: 18:1aa84d96232a
519 | | | | | parent: 18:1aa84d96232a
520 | | | | | parent: 25:91da8ed57247
520 | | | | | parent: 25:91da8ed57247
521 | | | | | user: test
521 | | | | | user: test
522 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
522 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
523 | | | | | summary: (26) merge one known; far right
523 | | | | | summary: (26) merge one known; far right
524 | | | | |
524 | | | | |
525 +---o | | changeset: 25:91da8ed57247
525 +---o | | changeset: 25:91da8ed57247
526 | | | | | parent: 21:d42a756af44d
526 | | | | | parent: 21:d42a756af44d
527 | | | | | parent: 24:a9c19a3d96b7
527 | | | | | parent: 24:a9c19a3d96b7
528 | | | | | user: test
528 | | | | | user: test
529 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
529 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
530 | | | | | summary: (25) merge one known; far left
530 | | | | | summary: (25) merge one known; far left
531 | | | | |
531 | | | | |
532 | | o | | changeset: 24:a9c19a3d96b7
532 | | o | | changeset: 24:a9c19a3d96b7
533 | | |\| | parent: 0:e6eb3150255d
533 | | |\| | parent: 0:e6eb3150255d
534 | | | | | parent: 23:a01cddf0766d
534 | | | | | parent: 23:a01cddf0766d
535 | | | | | user: test
535 | | | | | user: test
536 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
536 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
537 | | | | | summary: (24) merge one known; immediate right
537 | | | | | summary: (24) merge one known; immediate right
538 | | | | |
538 | | | | |
539 | | o | | changeset: 23:a01cddf0766d
539 | | o | | changeset: 23:a01cddf0766d
540 | |/| | | parent: 1:6db2ef61d156
540 | |/| | | parent: 1:6db2ef61d156
541 | | | | | parent: 22:e0d9cccacb5d
541 | | | | | parent: 22:e0d9cccacb5d
542 | | | | | user: test
542 | | | | | user: test
543 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
543 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
544 | | | | | summary: (23) merge one known; immediate left
544 | | | | | summary: (23) merge one known; immediate left
545 | | | | |
545 | | | | |
546 +---o---+ changeset: 22:e0d9cccacb5d
546 +---o---+ changeset: 22:e0d9cccacb5d
547 | | | | parent: 18:1aa84d96232a
547 | | | | parent: 18:1aa84d96232a
548 | | / / parent: 21:d42a756af44d
548 | | / / parent: 21:d42a756af44d
549 | | | | user: test
549 | | | | user: test
550 | | | | date: Thu Jan 01 00:00:22 1970 +0000
550 | | | | date: Thu Jan 01 00:00:22 1970 +0000
551 | | | | summary: (22) merge two known; one far left, one far right
551 | | | | summary: (22) merge two known; one far left, one far right
552 | | | |
552 | | | |
553 o | | | changeset: 21:d42a756af44d
553 o | | | changeset: 21:d42a756af44d
554 |\ \ \ \ parent: 19:31ddc2c1573b
554 |\ \ \ \ parent: 19:31ddc2c1573b
555 | | | | | parent: 20:d30ed6450e32
555 | | | | | parent: 20:d30ed6450e32
556 | | | | | user: test
556 | | | | | user: test
557 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
557 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
558 | | | | | summary: (21) expand
558 | | | | | summary: (21) expand
559 | | | | |
559 | | | | |
560 | o---+-+ changeset: 20:d30ed6450e32
560 | o---+-+ changeset: 20:d30ed6450e32
561 | | | | parent: 0:e6eb3150255d
561 | | | | parent: 0:e6eb3150255d
562 | / / / parent: 18:1aa84d96232a
562 | / / / parent: 18:1aa84d96232a
563 | | | | user: test
563 | | | | user: test
564 | | | | date: Thu Jan 01 00:00:20 1970 +0000
564 | | | | date: Thu Jan 01 00:00:20 1970 +0000
565 | | | | summary: (20) merge two known; two far right
565 | | | | summary: (20) merge two known; two far right
566 | | | |
566 | | | |
567 o | | | changeset: 19:31ddc2c1573b
567 o | | | changeset: 19:31ddc2c1573b
568 |\ \ \ \ parent: 15:1dda3f72782d
568 |\ \ \ \ parent: 15:1dda3f72782d
569 | | | | | parent: 17:44765d7c06e0
569 | | | | | parent: 17:44765d7c06e0
570 | | | | | user: test
570 | | | | | user: test
571 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
571 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
572 | | | | | summary: (19) expand
572 | | | | | summary: (19) expand
573 | | | | |
573 | | | | |
574 +---+---o changeset: 18:1aa84d96232a
574 +---+---o changeset: 18:1aa84d96232a
575 | | | | parent: 1:6db2ef61d156
575 | | | | parent: 1:6db2ef61d156
576 | | | | parent: 15:1dda3f72782d
576 | | | | parent: 15:1dda3f72782d
577 | | | | user: test
577 | | | | user: test
578 | | | | date: Thu Jan 01 00:00:18 1970 +0000
578 | | | | date: Thu Jan 01 00:00:18 1970 +0000
579 | | | | summary: (18) merge two known; two far left
579 | | | | summary: (18) merge two known; two far left
580 | | | |
580 | | | |
581 | o | | changeset: 17:44765d7c06e0
581 | o | | changeset: 17:44765d7c06e0
582 | |\ \ \ parent: 12:86b91144a6e9
582 | |\ \ \ parent: 12:86b91144a6e9
583 | | | | | parent: 16:3677d192927d
583 | | | | | parent: 16:3677d192927d
584 | | | | | user: test
584 | | | | | user: test
585 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
585 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
586 | | | | | summary: (17) expand
586 | | | | | summary: (17) expand
587 | | | | |
587 | | | | |
588 | | o---+ changeset: 16:3677d192927d
588 | | o---+ changeset: 16:3677d192927d
589 | | | | | parent: 0:e6eb3150255d
589 | | | | | parent: 0:e6eb3150255d
590 | | |/ / parent: 1:6db2ef61d156
590 | | |/ / parent: 1:6db2ef61d156
591 | | | | user: test
591 | | | | user: test
592 | | | | date: Thu Jan 01 00:00:16 1970 +0000
592 | | | | date: Thu Jan 01 00:00:16 1970 +0000
593 | | | | summary: (16) merge two known; one immediate right, one near right
593 | | | | summary: (16) merge two known; one immediate right, one near right
594 | | | |
594 | | | |
595 o | | | changeset: 15:1dda3f72782d
595 o | | | changeset: 15:1dda3f72782d
596 |\ \ \ \ parent: 13:22d8966a97e3
596 |\ \ \ \ parent: 13:22d8966a97e3
597 | | | | | parent: 14:8eac370358ef
597 | | | | | parent: 14:8eac370358ef
598 | | | | | user: test
598 | | | | | user: test
599 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
599 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
600 | | | | | summary: (15) expand
600 | | | | | summary: (15) expand
601 | | | | |
601 | | | | |
602 | o-----+ changeset: 14:8eac370358ef
602 | o-----+ changeset: 14:8eac370358ef
603 | | | | | parent: 0:e6eb3150255d
603 | | | | | parent: 0:e6eb3150255d
604 | |/ / / parent: 12:86b91144a6e9
604 | |/ / / parent: 12:86b91144a6e9
605 | | | | user: test
605 | | | | user: test
606 | | | | date: Thu Jan 01 00:00:14 1970 +0000
606 | | | | date: Thu Jan 01 00:00:14 1970 +0000
607 | | | | summary: (14) merge two known; one immediate right, one far right
607 | | | | summary: (14) merge two known; one immediate right, one far right
608 | | | |
608 | | | |
609 o | | | changeset: 13:22d8966a97e3
609 o | | | changeset: 13:22d8966a97e3
610 |\ \ \ \ parent: 9:7010c0af0a35
610 |\ \ \ \ parent: 9:7010c0af0a35
611 | | | | | parent: 11:832d76e6bdf2
611 | | | | | parent: 11:832d76e6bdf2
612 | | | | | user: test
612 | | | | | user: test
613 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
613 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
614 | | | | | summary: (13) expand
614 | | | | | summary: (13) expand
615 | | | | |
615 | | | | |
616 +---o | | changeset: 12:86b91144a6e9
616 +---o | | changeset: 12:86b91144a6e9
617 | | |/ / parent: 1:6db2ef61d156
617 | | |/ / parent: 1:6db2ef61d156
618 | | | | parent: 9:7010c0af0a35
618 | | | | parent: 9:7010c0af0a35
619 | | | | user: test
619 | | | | user: test
620 | | | | date: Thu Jan 01 00:00:12 1970 +0000
620 | | | | date: Thu Jan 01 00:00:12 1970 +0000
621 | | | | summary: (12) merge two known; one immediate right, one far left
621 | | | | summary: (12) merge two known; one immediate right, one far left
622 | | | |
622 | | | |
623 | o | | changeset: 11:832d76e6bdf2
623 | o | | changeset: 11:832d76e6bdf2
624 | |\ \ \ parent: 6:b105a072e251
624 | |\ \ \ parent: 6:b105a072e251
625 | | | | | parent: 10:74c64d036d72
625 | | | | | parent: 10:74c64d036d72
626 | | | | | user: test
626 | | | | | user: test
627 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
627 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
628 | | | | | summary: (11) expand
628 | | | | | summary: (11) expand
629 | | | | |
629 | | | | |
630 | | o---+ changeset: 10:74c64d036d72
630 | | o---+ changeset: 10:74c64d036d72
631 | | | | | parent: 0:e6eb3150255d
631 | | | | | parent: 0:e6eb3150255d
632 | |/ / / parent: 6:b105a072e251
632 | |/ / / parent: 6:b105a072e251
633 | | | | user: test
633 | | | | user: test
634 | | | | date: Thu Jan 01 00:00:10 1970 +0000
634 | | | | date: Thu Jan 01 00:00:10 1970 +0000
635 | | | | summary: (10) merge two known; one immediate left, one near right
635 | | | | summary: (10) merge two known; one immediate left, one near right
636 | | | |
636 | | | |
637 o | | | changeset: 9:7010c0af0a35
637 o | | | changeset: 9:7010c0af0a35
638 |\ \ \ \ parent: 7:b632bb1b1224
638 |\ \ \ \ parent: 7:b632bb1b1224
639 | | | | | parent: 8:7a0b11f71937
639 | | | | | parent: 8:7a0b11f71937
640 | | | | | user: test
640 | | | | | user: test
641 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
641 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
642 | | | | | summary: (9) expand
642 | | | | | summary: (9) expand
643 | | | | |
643 | | | | |
644 | o-----+ changeset: 8:7a0b11f71937
644 | o-----+ changeset: 8:7a0b11f71937
645 | | | | | parent: 0:e6eb3150255d
645 | | | | | parent: 0:e6eb3150255d
646 |/ / / / parent: 7:b632bb1b1224
646 |/ / / / parent: 7:b632bb1b1224
647 | | | | user: test
647 | | | | user: test
648 | | | | date: Thu Jan 01 00:00:08 1970 +0000
648 | | | | date: Thu Jan 01 00:00:08 1970 +0000
649 | | | | summary: (8) merge two known; one immediate left, one far right
649 | | | | summary: (8) merge two known; one immediate left, one far right
650 | | | |
650 | | | |
651 o | | | changeset: 7:b632bb1b1224
651 o | | | changeset: 7:b632bb1b1224
652 |\ \ \ \ parent: 2:3d9a33b8d1e1
652 |\ \ \ \ parent: 2:3d9a33b8d1e1
653 | | | | | parent: 5:4409d547b708
653 | | | | | parent: 5:4409d547b708
654 | | | | | user: test
654 | | | | | user: test
655 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
655 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
656 | | | | | summary: (7) expand
656 | | | | | summary: (7) expand
657 | | | | |
657 | | | | |
658 +---o | | changeset: 6:b105a072e251
658 +---o | | changeset: 6:b105a072e251
659 | |/ / / parent: 2:3d9a33b8d1e1
659 | |/ / / parent: 2:3d9a33b8d1e1
660 | | | | parent: 5:4409d547b708
660 | | | | parent: 5:4409d547b708
661 | | | | user: test
661 | | | | user: test
662 | | | | date: Thu Jan 01 00:00:06 1970 +0000
662 | | | | date: Thu Jan 01 00:00:06 1970 +0000
663 | | | | summary: (6) merge two known; one immediate left, one far left
663 | | | | summary: (6) merge two known; one immediate left, one far left
664 | | | |
664 | | | |
665 | o | | changeset: 5:4409d547b708
665 | o | | changeset: 5:4409d547b708
666 | |\ \ \ parent: 3:27eef8ed80b4
666 | |\ \ \ parent: 3:27eef8ed80b4
667 | | | | | parent: 4:26a8bac39d9f
667 | | | | | parent: 4:26a8bac39d9f
668 | | | | | user: test
668 | | | | | user: test
669 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
669 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
670 | | | | | summary: (5) expand
670 | | | | | summary: (5) expand
671 | | | | |
671 | | | | |
672 | | o | | changeset: 4:26a8bac39d9f
672 | | o | | changeset: 4:26a8bac39d9f
673 | |/|/ / parent: 1:6db2ef61d156
673 | |/|/ / parent: 1:6db2ef61d156
674 | | | | parent: 3:27eef8ed80b4
674 | | | | parent: 3:27eef8ed80b4
675 | | | | user: test
675 | | | | user: test
676 | | | | date: Thu Jan 01 00:00:04 1970 +0000
676 | | | | date: Thu Jan 01 00:00:04 1970 +0000
677 | | | | summary: (4) merge two known; one immediate left, one immediate right
677 | | | | summary: (4) merge two known; one immediate left, one immediate right
678 | | | |
678 | | | |
679 | o | | changeset: 3:27eef8ed80b4
679 | o | | changeset: 3:27eef8ed80b4
680 |/ / / user: test
680 |/ / / user: test
681 | | | date: Thu Jan 01 00:00:03 1970 +0000
681 | | | date: Thu Jan 01 00:00:03 1970 +0000
682 | | | summary: (3) collapse
682 | | | summary: (3) collapse
683 | | |
683 | | |
684 o | | changeset: 2:3d9a33b8d1e1
684 o | | changeset: 2:3d9a33b8d1e1
685 |/ / user: test
685 |/ / user: test
686 | | date: Thu Jan 01 00:00:02 1970 +0000
686 | | date: Thu Jan 01 00:00:02 1970 +0000
687 | | summary: (2) collapse
687 | | summary: (2) collapse
688 | |
688 | |
689 o | changeset: 1:6db2ef61d156
689 o | changeset: 1:6db2ef61d156
690 |/ user: test
690 |/ user: test
691 | date: Thu Jan 01 00:00:01 1970 +0000
691 | date: Thu Jan 01 00:00:01 1970 +0000
692 | summary: (1) collapse
692 | summary: (1) collapse
693 |
693 |
694 o changeset: 0:e6eb3150255d
694 o changeset: 0:e6eb3150255d
695 user: test
695 user: test
696 date: Thu Jan 01 00:00:00 1970 +0000
696 date: Thu Jan 01 00:00:00 1970 +0000
697 summary: (0) root
697 summary: (0) root
698
698
699
699
700 File glog per revset:
700 File glog per revset:
701
701
702 $ hg glog -r 'file("a")'
702 $ hg glog -r 'file("a")'
703 @ changeset: 34:fea3ac5810e0
703 @ changeset: 34:fea3ac5810e0
704 | tag: tip
704 | tag: tip
705 | parent: 32:d06dffa21a31
705 | parent: 32:d06dffa21a31
706 | user: test
706 | user: test
707 | date: Thu Jan 01 00:00:34 1970 +0000
707 | date: Thu Jan 01 00:00:34 1970 +0000
708 | summary: (34) head
708 | summary: (34) head
709 |
709 |
710 | o changeset: 33:68608f5145f9
710 | o changeset: 33:68608f5145f9
711 | | parent: 18:1aa84d96232a
711 | | parent: 18:1aa84d96232a
712 | | user: test
712 | | user: test
713 | | date: Thu Jan 01 00:00:33 1970 +0000
713 | | date: Thu Jan 01 00:00:33 1970 +0000
714 | | summary: (33) head
714 | | summary: (33) head
715 | |
715 | |
716 o | changeset: 32:d06dffa21a31
716 o | changeset: 32:d06dffa21a31
717 |\ \ parent: 27:886ed638191b
717 |\ \ parent: 27:886ed638191b
718 | | | parent: 31:621d83e11f67
718 | | | parent: 31:621d83e11f67
719 | | | user: test
719 | | | user: test
720 | | | date: Thu Jan 01 00:00:32 1970 +0000
720 | | | date: Thu Jan 01 00:00:32 1970 +0000
721 | | | summary: (32) expand
721 | | | summary: (32) expand
722 | | |
722 | | |
723 | o | changeset: 31:621d83e11f67
723 | o | changeset: 31:621d83e11f67
724 | |\ \ parent: 21:d42a756af44d
724 | |\ \ parent: 21:d42a756af44d
725 | | | | parent: 30:6e11cd4b648f
725 | | | | parent: 30:6e11cd4b648f
726 | | | | user: test
726 | | | | user: test
727 | | | | date: Thu Jan 01 00:00:31 1970 +0000
727 | | | | date: Thu Jan 01 00:00:31 1970 +0000
728 | | | | summary: (31) expand
728 | | | | summary: (31) expand
729 | | | |
729 | | | |
730 | | o | changeset: 30:6e11cd4b648f
730 | | o | changeset: 30:6e11cd4b648f
731 | | |\ \ parent: 28:44ecd0b9ae99
731 | | |\ \ parent: 28:44ecd0b9ae99
732 | | | | | parent: 29:cd9bb2be7593
732 | | | | | parent: 29:cd9bb2be7593
733 | | | | | user: test
733 | | | | | user: test
734 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
734 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
735 | | | | | summary: (30) expand
735 | | | | | summary: (30) expand
736 | | | | |
736 | | | | |
737 | | | o | changeset: 29:cd9bb2be7593
737 | | | o | changeset: 29:cd9bb2be7593
738 | | | | | parent: 0:e6eb3150255d
738 | | | | | parent: 0:e6eb3150255d
739 | | | | | user: test
739 | | | | | user: test
740 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
740 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
741 | | | | | summary: (29) regular commit
741 | | | | | summary: (29) regular commit
742 | | | | |
742 | | | | |
743 | | o | | changeset: 28:44ecd0b9ae99
743 | | o | | changeset: 28:44ecd0b9ae99
744 | | |\ \ \ parent: 1:6db2ef61d156
744 | | |\ \ \ parent: 1:6db2ef61d156
745 | | | | | | parent: 26:7f25b6c2f0b9
745 | | | | | | parent: 26:7f25b6c2f0b9
746 | | | | | | user: test
746 | | | | | | user: test
747 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
747 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
748 | | | | | | summary: (28) merge zero known
748 | | | | | | summary: (28) merge zero known
749 | | | | | |
749 | | | | | |
750 o | | | | | changeset: 27:886ed638191b
750 o | | | | | changeset: 27:886ed638191b
751 |/ / / / / parent: 21:d42a756af44d
751 |/ / / / / parent: 21:d42a756af44d
752 | | | | | user: test
752 | | | | | user: test
753 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
753 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
754 | | | | | summary: (27) collapse
754 | | | | | summary: (27) collapse
755 | | | | |
755 | | | | |
756 | | o---+ changeset: 26:7f25b6c2f0b9
756 | | o---+ changeset: 26:7f25b6c2f0b9
757 | | | | | parent: 18:1aa84d96232a
757 | | | | | parent: 18:1aa84d96232a
758 | | | | | parent: 25:91da8ed57247
758 | | | | | parent: 25:91da8ed57247
759 | | | | | user: test
759 | | | | | user: test
760 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
760 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
761 | | | | | summary: (26) merge one known; far right
761 | | | | | summary: (26) merge one known; far right
762 | | | | |
762 | | | | |
763 +---o | | changeset: 25:91da8ed57247
763 +---o | | changeset: 25:91da8ed57247
764 | | | | | parent: 21:d42a756af44d
764 | | | | | parent: 21:d42a756af44d
765 | | | | | parent: 24:a9c19a3d96b7
765 | | | | | parent: 24:a9c19a3d96b7
766 | | | | | user: test
766 | | | | | user: test
767 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
767 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
768 | | | | | summary: (25) merge one known; far left
768 | | | | | summary: (25) merge one known; far left
769 | | | | |
769 | | | | |
770 | | o | | changeset: 24:a9c19a3d96b7
770 | | o | | changeset: 24:a9c19a3d96b7
771 | | |\| | parent: 0:e6eb3150255d
771 | | |\| | parent: 0:e6eb3150255d
772 | | | | | parent: 23:a01cddf0766d
772 | | | | | parent: 23:a01cddf0766d
773 | | | | | user: test
773 | | | | | user: test
774 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
774 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
775 | | | | | summary: (24) merge one known; immediate right
775 | | | | | summary: (24) merge one known; immediate right
776 | | | | |
776 | | | | |
777 | | o | | changeset: 23:a01cddf0766d
777 | | o | | changeset: 23:a01cddf0766d
778 | |/| | | parent: 1:6db2ef61d156
778 | |/| | | parent: 1:6db2ef61d156
779 | | | | | parent: 22:e0d9cccacb5d
779 | | | | | parent: 22:e0d9cccacb5d
780 | | | | | user: test
780 | | | | | user: test
781 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
781 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
782 | | | | | summary: (23) merge one known; immediate left
782 | | | | | summary: (23) merge one known; immediate left
783 | | | | |
783 | | | | |
784 +---o---+ changeset: 22:e0d9cccacb5d
784 +---o---+ changeset: 22:e0d9cccacb5d
785 | | | | parent: 18:1aa84d96232a
785 | | | | parent: 18:1aa84d96232a
786 | | / / parent: 21:d42a756af44d
786 | | / / parent: 21:d42a756af44d
787 | | | | user: test
787 | | | | user: test
788 | | | | date: Thu Jan 01 00:00:22 1970 +0000
788 | | | | date: Thu Jan 01 00:00:22 1970 +0000
789 | | | | summary: (22) merge two known; one far left, one far right
789 | | | | summary: (22) merge two known; one far left, one far right
790 | | | |
790 | | | |
791 o | | | changeset: 21:d42a756af44d
791 o | | | changeset: 21:d42a756af44d
792 |\ \ \ \ parent: 19:31ddc2c1573b
792 |\ \ \ \ parent: 19:31ddc2c1573b
793 | | | | | parent: 20:d30ed6450e32
793 | | | | | parent: 20:d30ed6450e32
794 | | | | | user: test
794 | | | | | user: test
795 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
795 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
796 | | | | | summary: (21) expand
796 | | | | | summary: (21) expand
797 | | | | |
797 | | | | |
798 | o---+-+ changeset: 20:d30ed6450e32
798 | o---+-+ changeset: 20:d30ed6450e32
799 | | | | parent: 0:e6eb3150255d
799 | | | | parent: 0:e6eb3150255d
800 | / / / parent: 18:1aa84d96232a
800 | / / / parent: 18:1aa84d96232a
801 | | | | user: test
801 | | | | user: test
802 | | | | date: Thu Jan 01 00:00:20 1970 +0000
802 | | | | date: Thu Jan 01 00:00:20 1970 +0000
803 | | | | summary: (20) merge two known; two far right
803 | | | | summary: (20) merge two known; two far right
804 | | | |
804 | | | |
805 o | | | changeset: 19:31ddc2c1573b
805 o | | | changeset: 19:31ddc2c1573b
806 |\ \ \ \ parent: 15:1dda3f72782d
806 |\ \ \ \ parent: 15:1dda3f72782d
807 | | | | | parent: 17:44765d7c06e0
807 | | | | | parent: 17:44765d7c06e0
808 | | | | | user: test
808 | | | | | user: test
809 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
809 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
810 | | | | | summary: (19) expand
810 | | | | | summary: (19) expand
811 | | | | |
811 | | | | |
812 +---+---o changeset: 18:1aa84d96232a
812 +---+---o changeset: 18:1aa84d96232a
813 | | | | parent: 1:6db2ef61d156
813 | | | | parent: 1:6db2ef61d156
814 | | | | parent: 15:1dda3f72782d
814 | | | | parent: 15:1dda3f72782d
815 | | | | user: test
815 | | | | user: test
816 | | | | date: Thu Jan 01 00:00:18 1970 +0000
816 | | | | date: Thu Jan 01 00:00:18 1970 +0000
817 | | | | summary: (18) merge two known; two far left
817 | | | | summary: (18) merge two known; two far left
818 | | | |
818 | | | |
819 | o | | changeset: 17:44765d7c06e0
819 | o | | changeset: 17:44765d7c06e0
820 | |\ \ \ parent: 12:86b91144a6e9
820 | |\ \ \ parent: 12:86b91144a6e9
821 | | | | | parent: 16:3677d192927d
821 | | | | | parent: 16:3677d192927d
822 | | | | | user: test
822 | | | | | user: test
823 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
823 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
824 | | | | | summary: (17) expand
824 | | | | | summary: (17) expand
825 | | | | |
825 | | | | |
826 | | o---+ changeset: 16:3677d192927d
826 | | o---+ changeset: 16:3677d192927d
827 | | | | | parent: 0:e6eb3150255d
827 | | | | | parent: 0:e6eb3150255d
828 | | |/ / parent: 1:6db2ef61d156
828 | | |/ / parent: 1:6db2ef61d156
829 | | | | user: test
829 | | | | user: test
830 | | | | date: Thu Jan 01 00:00:16 1970 +0000
830 | | | | date: Thu Jan 01 00:00:16 1970 +0000
831 | | | | summary: (16) merge two known; one immediate right, one near right
831 | | | | summary: (16) merge two known; one immediate right, one near right
832 | | | |
832 | | | |
833 o | | | changeset: 15:1dda3f72782d
833 o | | | changeset: 15:1dda3f72782d
834 |\ \ \ \ parent: 13:22d8966a97e3
834 |\ \ \ \ parent: 13:22d8966a97e3
835 | | | | | parent: 14:8eac370358ef
835 | | | | | parent: 14:8eac370358ef
836 | | | | | user: test
836 | | | | | user: test
837 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
837 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
838 | | | | | summary: (15) expand
838 | | | | | summary: (15) expand
839 | | | | |
839 | | | | |
840 | o-----+ changeset: 14:8eac370358ef
840 | o-----+ changeset: 14:8eac370358ef
841 | | | | | parent: 0:e6eb3150255d
841 | | | | | parent: 0:e6eb3150255d
842 | |/ / / parent: 12:86b91144a6e9
842 | |/ / / parent: 12:86b91144a6e9
843 | | | | user: test
843 | | | | user: test
844 | | | | date: Thu Jan 01 00:00:14 1970 +0000
844 | | | | date: Thu Jan 01 00:00:14 1970 +0000
845 | | | | summary: (14) merge two known; one immediate right, one far right
845 | | | | summary: (14) merge two known; one immediate right, one far right
846 | | | |
846 | | | |
847 o | | | changeset: 13:22d8966a97e3
847 o | | | changeset: 13:22d8966a97e3
848 |\ \ \ \ parent: 9:7010c0af0a35
848 |\ \ \ \ parent: 9:7010c0af0a35
849 | | | | | parent: 11:832d76e6bdf2
849 | | | | | parent: 11:832d76e6bdf2
850 | | | | | user: test
850 | | | | | user: test
851 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
851 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
852 | | | | | summary: (13) expand
852 | | | | | summary: (13) expand
853 | | | | |
853 | | | | |
854 +---o | | changeset: 12:86b91144a6e9
854 +---o | | changeset: 12:86b91144a6e9
855 | | |/ / parent: 1:6db2ef61d156
855 | | |/ / parent: 1:6db2ef61d156
856 | | | | parent: 9:7010c0af0a35
856 | | | | parent: 9:7010c0af0a35
857 | | | | user: test
857 | | | | user: test
858 | | | | date: Thu Jan 01 00:00:12 1970 +0000
858 | | | | date: Thu Jan 01 00:00:12 1970 +0000
859 | | | | summary: (12) merge two known; one immediate right, one far left
859 | | | | summary: (12) merge two known; one immediate right, one far left
860 | | | |
860 | | | |
861 | o | | changeset: 11:832d76e6bdf2
861 | o | | changeset: 11:832d76e6bdf2
862 | |\ \ \ parent: 6:b105a072e251
862 | |\ \ \ parent: 6:b105a072e251
863 | | | | | parent: 10:74c64d036d72
863 | | | | | parent: 10:74c64d036d72
864 | | | | | user: test
864 | | | | | user: test
865 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
865 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
866 | | | | | summary: (11) expand
866 | | | | | summary: (11) expand
867 | | | | |
867 | | | | |
868 | | o---+ changeset: 10:74c64d036d72
868 | | o---+ changeset: 10:74c64d036d72
869 | | | | | parent: 0:e6eb3150255d
869 | | | | | parent: 0:e6eb3150255d
870 | |/ / / parent: 6:b105a072e251
870 | |/ / / parent: 6:b105a072e251
871 | | | | user: test
871 | | | | user: test
872 | | | | date: Thu Jan 01 00:00:10 1970 +0000
872 | | | | date: Thu Jan 01 00:00:10 1970 +0000
873 | | | | summary: (10) merge two known; one immediate left, one near right
873 | | | | summary: (10) merge two known; one immediate left, one near right
874 | | | |
874 | | | |
875 o | | | changeset: 9:7010c0af0a35
875 o | | | changeset: 9:7010c0af0a35
876 |\ \ \ \ parent: 7:b632bb1b1224
876 |\ \ \ \ parent: 7:b632bb1b1224
877 | | | | | parent: 8:7a0b11f71937
877 | | | | | parent: 8:7a0b11f71937
878 | | | | | user: test
878 | | | | | user: test
879 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
879 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
880 | | | | | summary: (9) expand
880 | | | | | summary: (9) expand
881 | | | | |
881 | | | | |
882 | o-----+ changeset: 8:7a0b11f71937
882 | o-----+ changeset: 8:7a0b11f71937
883 | | | | | parent: 0:e6eb3150255d
883 | | | | | parent: 0:e6eb3150255d
884 |/ / / / parent: 7:b632bb1b1224
884 |/ / / / parent: 7:b632bb1b1224
885 | | | | user: test
885 | | | | user: test
886 | | | | date: Thu Jan 01 00:00:08 1970 +0000
886 | | | | date: Thu Jan 01 00:00:08 1970 +0000
887 | | | | summary: (8) merge two known; one immediate left, one far right
887 | | | | summary: (8) merge two known; one immediate left, one far right
888 | | | |
888 | | | |
889 o | | | changeset: 7:b632bb1b1224
889 o | | | changeset: 7:b632bb1b1224
890 |\ \ \ \ parent: 2:3d9a33b8d1e1
890 |\ \ \ \ parent: 2:3d9a33b8d1e1
891 | | | | | parent: 5:4409d547b708
891 | | | | | parent: 5:4409d547b708
892 | | | | | user: test
892 | | | | | user: test
893 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
893 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
894 | | | | | summary: (7) expand
894 | | | | | summary: (7) expand
895 | | | | |
895 | | | | |
896 +---o | | changeset: 6:b105a072e251
896 +---o | | changeset: 6:b105a072e251
897 | |/ / / parent: 2:3d9a33b8d1e1
897 | |/ / / parent: 2:3d9a33b8d1e1
898 | | | | parent: 5:4409d547b708
898 | | | | parent: 5:4409d547b708
899 | | | | user: test
899 | | | | user: test
900 | | | | date: Thu Jan 01 00:00:06 1970 +0000
900 | | | | date: Thu Jan 01 00:00:06 1970 +0000
901 | | | | summary: (6) merge two known; one immediate left, one far left
901 | | | | summary: (6) merge two known; one immediate left, one far left
902 | | | |
902 | | | |
903 | o | | changeset: 5:4409d547b708
903 | o | | changeset: 5:4409d547b708
904 | |\ \ \ parent: 3:27eef8ed80b4
904 | |\ \ \ parent: 3:27eef8ed80b4
905 | | | | | parent: 4:26a8bac39d9f
905 | | | | | parent: 4:26a8bac39d9f
906 | | | | | user: test
906 | | | | | user: test
907 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
907 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
908 | | | | | summary: (5) expand
908 | | | | | summary: (5) expand
909 | | | | |
909 | | | | |
910 | | o | | changeset: 4:26a8bac39d9f
910 | | o | | changeset: 4:26a8bac39d9f
911 | |/|/ / parent: 1:6db2ef61d156
911 | |/|/ / parent: 1:6db2ef61d156
912 | | | | parent: 3:27eef8ed80b4
912 | | | | parent: 3:27eef8ed80b4
913 | | | | user: test
913 | | | | user: test
914 | | | | date: Thu Jan 01 00:00:04 1970 +0000
914 | | | | date: Thu Jan 01 00:00:04 1970 +0000
915 | | | | summary: (4) merge two known; one immediate left, one immediate right
915 | | | | summary: (4) merge two known; one immediate left, one immediate right
916 | | | |
916 | | | |
917 | o | | changeset: 3:27eef8ed80b4
917 | o | | changeset: 3:27eef8ed80b4
918 |/ / / user: test
918 |/ / / user: test
919 | | | date: Thu Jan 01 00:00:03 1970 +0000
919 | | | date: Thu Jan 01 00:00:03 1970 +0000
920 | | | summary: (3) collapse
920 | | | summary: (3) collapse
921 | | |
921 | | |
922 o | | changeset: 2:3d9a33b8d1e1
922 o | | changeset: 2:3d9a33b8d1e1
923 |/ / user: test
923 |/ / user: test
924 | | date: Thu Jan 01 00:00:02 1970 +0000
924 | | date: Thu Jan 01 00:00:02 1970 +0000
925 | | summary: (2) collapse
925 | | summary: (2) collapse
926 | |
926 | |
927 o | changeset: 1:6db2ef61d156
927 o | changeset: 1:6db2ef61d156
928 |/ user: test
928 |/ user: test
929 | date: Thu Jan 01 00:00:01 1970 +0000
929 | date: Thu Jan 01 00:00:01 1970 +0000
930 | summary: (1) collapse
930 | summary: (1) collapse
931 |
931 |
932 o changeset: 0:e6eb3150255d
932 o changeset: 0:e6eb3150255d
933 user: test
933 user: test
934 date: Thu Jan 01 00:00:00 1970 +0000
934 date: Thu Jan 01 00:00:00 1970 +0000
935 summary: (0) root
935 summary: (0) root
936
936
937
937
938
938
939 File glog per revset (only merges):
939 File glog per revset (only merges):
940
940
941 $ hg log -G -r 'file("a")' -m
941 $ hg log -G -r 'file("a")' -m
942 o changeset: 32:d06dffa21a31
942 o changeset: 32:d06dffa21a31
943 |\ parent: 27:886ed638191b
943 |\ parent: 27:886ed638191b
944 | | parent: 31:621d83e11f67
944 | | parent: 31:621d83e11f67
945 | | user: test
945 | | user: test
946 | | date: Thu Jan 01 00:00:32 1970 +0000
946 | | date: Thu Jan 01 00:00:32 1970 +0000
947 | | summary: (32) expand
947 | | summary: (32) expand
948 | |
948 | |
949 o | changeset: 31:621d83e11f67
949 o | changeset: 31:621d83e11f67
950 |\| parent: 21:d42a756af44d
950 |\| parent: 21:d42a756af44d
951 | | parent: 30:6e11cd4b648f
951 | | parent: 30:6e11cd4b648f
952 | | user: test
952 | | user: test
953 | | date: Thu Jan 01 00:00:31 1970 +0000
953 | | date: Thu Jan 01 00:00:31 1970 +0000
954 | | summary: (31) expand
954 | | summary: (31) expand
955 | |
955 | |
956 o | changeset: 30:6e11cd4b648f
956 o | changeset: 30:6e11cd4b648f
957 |\ \ parent: 28:44ecd0b9ae99
957 |\ \ parent: 28:44ecd0b9ae99
958 | | | parent: 29:cd9bb2be7593
958 | | | parent: 29:cd9bb2be7593
959 | | | user: test
959 | | | user: test
960 | | | date: Thu Jan 01 00:00:30 1970 +0000
960 | | | date: Thu Jan 01 00:00:30 1970 +0000
961 | | | summary: (30) expand
961 | | | summary: (30) expand
962 | | |
962 | | |
963 o | | changeset: 28:44ecd0b9ae99
963 o | | changeset: 28:44ecd0b9ae99
964 |\ \ \ parent: 1:6db2ef61d156
964 |\ \ \ parent: 1:6db2ef61d156
965 | | | | parent: 26:7f25b6c2f0b9
965 | | | | parent: 26:7f25b6c2f0b9
966 | | | | user: test
966 | | | | user: test
967 | | | | date: Thu Jan 01 00:00:28 1970 +0000
967 | | | | date: Thu Jan 01 00:00:28 1970 +0000
968 | | | | summary: (28) merge zero known
968 | | | | summary: (28) merge zero known
969 | | | |
969 | | | |
970 o | | | changeset: 26:7f25b6c2f0b9
970 o | | | changeset: 26:7f25b6c2f0b9
971 |\ \ \ \ parent: 18:1aa84d96232a
971 |\ \ \ \ parent: 18:1aa84d96232a
972 | | | | | parent: 25:91da8ed57247
972 | | | | | parent: 25:91da8ed57247
973 | | | | | user: test
973 | | | | | user: test
974 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
974 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
975 | | | | | summary: (26) merge one known; far right
975 | | | | | summary: (26) merge one known; far right
976 | | | | |
976 | | | | |
977 | o-----+ changeset: 25:91da8ed57247
977 | o-----+ changeset: 25:91da8ed57247
978 | | | | | parent: 21:d42a756af44d
978 | | | | | parent: 21:d42a756af44d
979 | | | | | parent: 24:a9c19a3d96b7
979 | | | | | parent: 24:a9c19a3d96b7
980 | | | | | user: test
980 | | | | | user: test
981 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
981 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
982 | | | | | summary: (25) merge one known; far left
982 | | | | | summary: (25) merge one known; far left
983 | | | | |
983 | | | | |
984 | o | | | changeset: 24:a9c19a3d96b7
984 | o | | | changeset: 24:a9c19a3d96b7
985 | |\ \ \ \ parent: 0:e6eb3150255d
985 | |\ \ \ \ parent: 0:e6eb3150255d
986 | | | | | | parent: 23:a01cddf0766d
986 | | | | | | parent: 23:a01cddf0766d
987 | | | | | | user: test
987 | | | | | | user: test
988 | | | | | | date: Thu Jan 01 00:00:24 1970 +0000
988 | | | | | | date: Thu Jan 01 00:00:24 1970 +0000
989 | | | | | | summary: (24) merge one known; immediate right
989 | | | | | | summary: (24) merge one known; immediate right
990 | | | | | |
990 | | | | | |
991 | o---+ | | changeset: 23:a01cddf0766d
991 | o---+ | | changeset: 23:a01cddf0766d
992 | | | | | | parent: 1:6db2ef61d156
992 | | | | | | parent: 1:6db2ef61d156
993 | | | | | | parent: 22:e0d9cccacb5d
993 | | | | | | parent: 22:e0d9cccacb5d
994 | | | | | | user: test
994 | | | | | | user: test
995 | | | | | | date: Thu Jan 01 00:00:23 1970 +0000
995 | | | | | | date: Thu Jan 01 00:00:23 1970 +0000
996 | | | | | | summary: (23) merge one known; immediate left
996 | | | | | | summary: (23) merge one known; immediate left
997 | | | | | |
997 | | | | | |
998 | o-------+ changeset: 22:e0d9cccacb5d
998 | o-------+ changeset: 22:e0d9cccacb5d
999 | | | | | | parent: 18:1aa84d96232a
999 | | | | | | parent: 18:1aa84d96232a
1000 |/ / / / / parent: 21:d42a756af44d
1000 |/ / / / / parent: 21:d42a756af44d
1001 | | | | | user: test
1001 | | | | | user: test
1002 | | | | | date: Thu Jan 01 00:00:22 1970 +0000
1002 | | | | | date: Thu Jan 01 00:00:22 1970 +0000
1003 | | | | | summary: (22) merge two known; one far left, one far right
1003 | | | | | summary: (22) merge two known; one far left, one far right
1004 | | | | |
1004 | | | | |
1005 | | | | o changeset: 21:d42a756af44d
1005 | | | | o changeset: 21:d42a756af44d
1006 | | | | |\ parent: 19:31ddc2c1573b
1006 | | | | |\ parent: 19:31ddc2c1573b
1007 | | | | | | parent: 20:d30ed6450e32
1007 | | | | | | parent: 20:d30ed6450e32
1008 | | | | | | user: test
1008 | | | | | | user: test
1009 | | | | | | date: Thu Jan 01 00:00:21 1970 +0000
1009 | | | | | | date: Thu Jan 01 00:00:21 1970 +0000
1010 | | | | | | summary: (21) expand
1010 | | | | | | summary: (21) expand
1011 | | | | | |
1011 | | | | | |
1012 +-+-------o changeset: 20:d30ed6450e32
1012 +-+-------o changeset: 20:d30ed6450e32
1013 | | | | | parent: 0:e6eb3150255d
1013 | | | | | parent: 0:e6eb3150255d
1014 | | | | | parent: 18:1aa84d96232a
1014 | | | | | parent: 18:1aa84d96232a
1015 | | | | | user: test
1015 | | | | | user: test
1016 | | | | | date: Thu Jan 01 00:00:20 1970 +0000
1016 | | | | | date: Thu Jan 01 00:00:20 1970 +0000
1017 | | | | | summary: (20) merge two known; two far right
1017 | | | | | summary: (20) merge two known; two far right
1018 | | | | |
1018 | | | | |
1019 | | | | o changeset: 19:31ddc2c1573b
1019 | | | | o changeset: 19:31ddc2c1573b
1020 | | | | |\ parent: 15:1dda3f72782d
1020 | | | | |\ parent: 15:1dda3f72782d
1021 | | | | | | parent: 17:44765d7c06e0
1021 | | | | | | parent: 17:44765d7c06e0
1022 | | | | | | user: test
1022 | | | | | | user: test
1023 | | | | | | date: Thu Jan 01 00:00:19 1970 +0000
1023 | | | | | | date: Thu Jan 01 00:00:19 1970 +0000
1024 | | | | | | summary: (19) expand
1024 | | | | | | summary: (19) expand
1025 | | | | | |
1025 | | | | | |
1026 o---+---+ | changeset: 18:1aa84d96232a
1026 o---+---+ | changeset: 18:1aa84d96232a
1027 | | | | | parent: 1:6db2ef61d156
1027 | | | | | parent: 1:6db2ef61d156
1028 / / / / / parent: 15:1dda3f72782d
1028 / / / / / parent: 15:1dda3f72782d
1029 | | | | | user: test
1029 | | | | | user: test
1030 | | | | | date: Thu Jan 01 00:00:18 1970 +0000
1030 | | | | | date: Thu Jan 01 00:00:18 1970 +0000
1031 | | | | | summary: (18) merge two known; two far left
1031 | | | | | summary: (18) merge two known; two far left
1032 | | | | |
1032 | | | | |
1033 | | | | o changeset: 17:44765d7c06e0
1033 | | | | o changeset: 17:44765d7c06e0
1034 | | | | |\ parent: 12:86b91144a6e9
1034 | | | | |\ parent: 12:86b91144a6e9
1035 | | | | | | parent: 16:3677d192927d
1035 | | | | | | parent: 16:3677d192927d
1036 | | | | | | user: test
1036 | | | | | | user: test
1037 | | | | | | date: Thu Jan 01 00:00:17 1970 +0000
1037 | | | | | | date: Thu Jan 01 00:00:17 1970 +0000
1038 | | | | | | summary: (17) expand
1038 | | | | | | summary: (17) expand
1039 | | | | | |
1039 | | | | | |
1040 +-+-------o changeset: 16:3677d192927d
1040 +-+-------o changeset: 16:3677d192927d
1041 | | | | | parent: 0:e6eb3150255d
1041 | | | | | parent: 0:e6eb3150255d
1042 | | | | | parent: 1:6db2ef61d156
1042 | | | | | parent: 1:6db2ef61d156
1043 | | | | | user: test
1043 | | | | | user: test
1044 | | | | | date: Thu Jan 01 00:00:16 1970 +0000
1044 | | | | | date: Thu Jan 01 00:00:16 1970 +0000
1045 | | | | | summary: (16) merge two known; one immediate right, one near right
1045 | | | | | summary: (16) merge two known; one immediate right, one near right
1046 | | | | |
1046 | | | | |
1047 | | | o | changeset: 15:1dda3f72782d
1047 | | | o | changeset: 15:1dda3f72782d
1048 | | | |\ \ parent: 13:22d8966a97e3
1048 | | | |\ \ parent: 13:22d8966a97e3
1049 | | | | | | parent: 14:8eac370358ef
1049 | | | | | | parent: 14:8eac370358ef
1050 | | | | | | user: test
1050 | | | | | | user: test
1051 | | | | | | date: Thu Jan 01 00:00:15 1970 +0000
1051 | | | | | | date: Thu Jan 01 00:00:15 1970 +0000
1052 | | | | | | summary: (15) expand
1052 | | | | | | summary: (15) expand
1053 | | | | | |
1053 | | | | | |
1054 +-------o | changeset: 14:8eac370358ef
1054 +-------o | changeset: 14:8eac370358ef
1055 | | | | |/ parent: 0:e6eb3150255d
1055 | | | | |/ parent: 0:e6eb3150255d
1056 | | | | | parent: 12:86b91144a6e9
1056 | | | | | parent: 12:86b91144a6e9
1057 | | | | | user: test
1057 | | | | | user: test
1058 | | | | | date: Thu Jan 01 00:00:14 1970 +0000
1058 | | | | | date: Thu Jan 01 00:00:14 1970 +0000
1059 | | | | | summary: (14) merge two known; one immediate right, one far right
1059 | | | | | summary: (14) merge two known; one immediate right, one far right
1060 | | | | |
1060 | | | | |
1061 | | | o | changeset: 13:22d8966a97e3
1061 | | | o | changeset: 13:22d8966a97e3
1062 | | | |\ \ parent: 9:7010c0af0a35
1062 | | | |\ \ parent: 9:7010c0af0a35
1063 | | | | | | parent: 11:832d76e6bdf2
1063 | | | | | | parent: 11:832d76e6bdf2
1064 | | | | | | user: test
1064 | | | | | | user: test
1065 | | | | | | date: Thu Jan 01 00:00:13 1970 +0000
1065 | | | | | | date: Thu Jan 01 00:00:13 1970 +0000
1066 | | | | | | summary: (13) expand
1066 | | | | | | summary: (13) expand
1067 | | | | | |
1067 | | | | | |
1068 | +---+---o changeset: 12:86b91144a6e9
1068 | +---+---o changeset: 12:86b91144a6e9
1069 | | | | | parent: 1:6db2ef61d156
1069 | | | | | parent: 1:6db2ef61d156
1070 | | | | | parent: 9:7010c0af0a35
1070 | | | | | parent: 9:7010c0af0a35
1071 | | | | | user: test
1071 | | | | | user: test
1072 | | | | | date: Thu Jan 01 00:00:12 1970 +0000
1072 | | | | | date: Thu Jan 01 00:00:12 1970 +0000
1073 | | | | | summary: (12) merge two known; one immediate right, one far left
1073 | | | | | summary: (12) merge two known; one immediate right, one far left
1074 | | | | |
1074 | | | | |
1075 | | | | o changeset: 11:832d76e6bdf2
1075 | | | | o changeset: 11:832d76e6bdf2
1076 | | | | |\ parent: 6:b105a072e251
1076 | | | | |\ parent: 6:b105a072e251
1077 | | | | | | parent: 10:74c64d036d72
1077 | | | | | | parent: 10:74c64d036d72
1078 | | | | | | user: test
1078 | | | | | | user: test
1079 | | | | | | date: Thu Jan 01 00:00:11 1970 +0000
1079 | | | | | | date: Thu Jan 01 00:00:11 1970 +0000
1080 | | | | | | summary: (11) expand
1080 | | | | | | summary: (11) expand
1081 | | | | | |
1081 | | | | | |
1082 +---------o changeset: 10:74c64d036d72
1082 +---------o changeset: 10:74c64d036d72
1083 | | | | |/ parent: 0:e6eb3150255d
1083 | | | | |/ parent: 0:e6eb3150255d
1084 | | | | | parent: 6:b105a072e251
1084 | | | | | parent: 6:b105a072e251
1085 | | | | | user: test
1085 | | | | | user: test
1086 | | | | | date: Thu Jan 01 00:00:10 1970 +0000
1086 | | | | | date: Thu Jan 01 00:00:10 1970 +0000
1087 | | | | | summary: (10) merge two known; one immediate left, one near right
1087 | | | | | summary: (10) merge two known; one immediate left, one near right
1088 | | | | |
1088 | | | | |
1089 | | | o | changeset: 9:7010c0af0a35
1089 | | | o | changeset: 9:7010c0af0a35
1090 | | | |\ \ parent: 7:b632bb1b1224
1090 | | | |\ \ parent: 7:b632bb1b1224
1091 | | | | | | parent: 8:7a0b11f71937
1091 | | | | | | parent: 8:7a0b11f71937
1092 | | | | | | user: test
1092 | | | | | | user: test
1093 | | | | | | date: Thu Jan 01 00:00:09 1970 +0000
1093 | | | | | | date: Thu Jan 01 00:00:09 1970 +0000
1094 | | | | | | summary: (9) expand
1094 | | | | | | summary: (9) expand
1095 | | | | | |
1095 | | | | | |
1096 +-------o | changeset: 8:7a0b11f71937
1096 +-------o | changeset: 8:7a0b11f71937
1097 | | | |/ / parent: 0:e6eb3150255d
1097 | | | |/ / parent: 0:e6eb3150255d
1098 | | | | | parent: 7:b632bb1b1224
1098 | | | | | parent: 7:b632bb1b1224
1099 | | | | | user: test
1099 | | | | | user: test
1100 | | | | | date: Thu Jan 01 00:00:08 1970 +0000
1100 | | | | | date: Thu Jan 01 00:00:08 1970 +0000
1101 | | | | | summary: (8) merge two known; one immediate left, one far right
1101 | | | | | summary: (8) merge two known; one immediate left, one far right
1102 | | | | |
1102 | | | | |
1103 | | | o | changeset: 7:b632bb1b1224
1103 | | | o | changeset: 7:b632bb1b1224
1104 | | | |\ \ parent: 2:3d9a33b8d1e1
1104 | | | |\ \ parent: 2:3d9a33b8d1e1
1105 | | | | | | parent: 5:4409d547b708
1105 | | | | | | parent: 5:4409d547b708
1106 | | | | | | user: test
1106 | | | | | | user: test
1107 | | | | | | date: Thu Jan 01 00:00:07 1970 +0000
1107 | | | | | | date: Thu Jan 01 00:00:07 1970 +0000
1108 | | | | | | summary: (7) expand
1108 | | | | | | summary: (7) expand
1109 | | | | | |
1109 | | | | | |
1110 | | | +---o changeset: 6:b105a072e251
1110 | | | +---o changeset: 6:b105a072e251
1111 | | | | |/ parent: 2:3d9a33b8d1e1
1111 | | | | |/ parent: 2:3d9a33b8d1e1
1112 | | | | | parent: 5:4409d547b708
1112 | | | | | parent: 5:4409d547b708
1113 | | | | | user: test
1113 | | | | | user: test
1114 | | | | | date: Thu Jan 01 00:00:06 1970 +0000
1114 | | | | | date: Thu Jan 01 00:00:06 1970 +0000
1115 | | | | | summary: (6) merge two known; one immediate left, one far left
1115 | | | | | summary: (6) merge two known; one immediate left, one far left
1116 | | | | |
1116 | | | | |
1117 | | | o | changeset: 5:4409d547b708
1117 | | | o | changeset: 5:4409d547b708
1118 | | | |\ \ parent: 3:27eef8ed80b4
1118 | | | |\ \ parent: 3:27eef8ed80b4
1119 | | | | | | parent: 4:26a8bac39d9f
1119 | | | | | | parent: 4:26a8bac39d9f
1120 | | | | | | user: test
1120 | | | | | | user: test
1121 | | | | | | date: Thu Jan 01 00:00:05 1970 +0000
1121 | | | | | | date: Thu Jan 01 00:00:05 1970 +0000
1122 | | | | | | summary: (5) expand
1122 | | | | | | summary: (5) expand
1123 | | | | | |
1123 | | | | | |
1124 | +---o | | changeset: 4:26a8bac39d9f
1124 | +---o | | changeset: 4:26a8bac39d9f
1125 | | | |/ / parent: 1:6db2ef61d156
1125 | | | |/ / parent: 1:6db2ef61d156
1126 | | | | | parent: 3:27eef8ed80b4
1126 | | | | | parent: 3:27eef8ed80b4
1127 | | | | | user: test
1127 | | | | | user: test
1128 | | | | | date: Thu Jan 01 00:00:04 1970 +0000
1128 | | | | | date: Thu Jan 01 00:00:04 1970 +0000
1129 | | | | | summary: (4) merge two known; one immediate left, one immediate right
1129 | | | | | summary: (4) merge two known; one immediate left, one immediate right
1130 | | | | |
1130 | | | | |
1131
1131
1132
1132
1133 Empty revision range - display nothing:
1133 Empty revision range - display nothing:
1134 $ hg glog -r 1..0
1134 $ hg glog -r 1..0
1135
1135
1136 $ cd ..
1136 $ cd ..
1137
1137
1138 #if no-outer-repo
1138 #if no-outer-repo
1139
1139
1140 From outer space:
1140 From outer space:
1141 $ hg glog -l1 repo
1141 $ hg glog -l1 repo
1142 @ changeset: 34:fea3ac5810e0
1142 @ changeset: 34:fea3ac5810e0
1143 | tag: tip
1143 | tag: tip
1144 | parent: 32:d06dffa21a31
1144 | parent: 32:d06dffa21a31
1145 | user: test
1145 | user: test
1146 | date: Thu Jan 01 00:00:34 1970 +0000
1146 | date: Thu Jan 01 00:00:34 1970 +0000
1147 | summary: (34) head
1147 | summary: (34) head
1148 |
1148 |
1149 $ hg glog -l1 repo/a
1149 $ hg glog -l1 repo/a
1150 @ changeset: 34:fea3ac5810e0
1150 @ changeset: 34:fea3ac5810e0
1151 | tag: tip
1151 | tag: tip
1152 | parent: 32:d06dffa21a31
1152 | parent: 32:d06dffa21a31
1153 | user: test
1153 | user: test
1154 | date: Thu Jan 01 00:00:34 1970 +0000
1154 | date: Thu Jan 01 00:00:34 1970 +0000
1155 | summary: (34) head
1155 | summary: (34) head
1156 |
1156 |
1157 $ hg glog -l1 repo/missing
1157 $ hg glog -l1 repo/missing
1158
1158
1159 #endif
1159 #endif
1160
1160
1161 File log with revs != cset revs:
1161 File log with revs != cset revs:
1162 $ hg init flog
1162 $ hg init flog
1163 $ cd flog
1163 $ cd flog
1164 $ echo one >one
1164 $ echo one >one
1165 $ hg add one
1165 $ hg add one
1166 $ hg commit -mone
1166 $ hg commit -mone
1167 $ echo two >two
1167 $ echo two >two
1168 $ hg add two
1168 $ hg add two
1169 $ hg commit -mtwo
1169 $ hg commit -mtwo
1170 $ echo more >two
1170 $ echo more >two
1171 $ hg commit -mmore
1171 $ hg commit -mmore
1172 $ hg glog two
1172 $ hg glog two
1173 @ changeset: 2:12c28321755b
1173 @ changeset: 2:12c28321755b
1174 | tag: tip
1174 | tag: tip
1175 | user: test
1175 | user: test
1176 | date: Thu Jan 01 00:00:00 1970 +0000
1176 | date: Thu Jan 01 00:00:00 1970 +0000
1177 | summary: more
1177 | summary: more
1178 |
1178 |
1179 o changeset: 1:5ac72c0599bf
1179 o changeset: 1:5ac72c0599bf
1180 | user: test
1180 | user: test
1181 | date: Thu Jan 01 00:00:00 1970 +0000
1181 | date: Thu Jan 01 00:00:00 1970 +0000
1182 | summary: two
1182 | summary: two
1183 |
1183 |
1184
1184
1185 Issue1896: File log with explicit style
1185 Issue1896: File log with explicit style
1186 $ hg glog --style=default one
1186 $ hg glog --style=default one
1187 o changeset: 0:3d578b4a1f53
1187 o changeset: 0:3d578b4a1f53
1188 user: test
1188 user: test
1189 date: Thu Jan 01 00:00:00 1970 +0000
1189 date: Thu Jan 01 00:00:00 1970 +0000
1190 summary: one
1190 summary: one
1191
1191
1192 Issue2395: glog --style header and footer
1192 Issue2395: glog --style header and footer
1193 $ hg glog --style=xml one
1193 $ hg glog --style=xml one
1194 <?xml version="1.0"?>
1194 <?xml version="1.0"?>
1195 <log>
1195 <log>
1196 o <logentry revision="0" node="3d578b4a1f537d5fcf7301bfa9c0b97adfaa6fb1">
1196 o <logentry revision="0" node="3d578b4a1f537d5fcf7301bfa9c0b97adfaa6fb1">
1197 <author email="test">test</author>
1197 <author email="test">test</author>
1198 <date>1970-01-01T00:00:00+00:00</date>
1198 <date>1970-01-01T00:00:00+00:00</date>
1199 <msg xml:space="preserve">one</msg>
1199 <msg xml:space="preserve">one</msg>
1200 </logentry>
1200 </logentry>
1201 </log>
1201 </log>
1202
1202
1203 $ cd ..
1203 $ cd ..
1204
1204
1205 Incoming and outgoing:
1205 Incoming and outgoing:
1206
1206
1207 $ hg clone -U -r31 repo repo2
1207 $ hg clone -U -r31 repo repo2
1208 adding changesets
1208 adding changesets
1209 adding manifests
1209 adding manifests
1210 adding file changes
1210 adding file changes
1211 added 31 changesets with 31 changes to 1 files
1211 added 31 changesets with 31 changes to 1 files
1212 $ cd repo2
1212 $ cd repo2
1213
1213
1214 $ hg incoming --graph ../repo
1214 $ hg incoming --graph ../repo
1215 comparing with ../repo
1215 comparing with ../repo
1216 searching for changes
1216 searching for changes
1217 o changeset: 34:fea3ac5810e0
1217 o changeset: 34:fea3ac5810e0
1218 | tag: tip
1218 | tag: tip
1219 | parent: 32:d06dffa21a31
1219 | parent: 32:d06dffa21a31
1220 | user: test
1220 | user: test
1221 | date: Thu Jan 01 00:00:34 1970 +0000
1221 | date: Thu Jan 01 00:00:34 1970 +0000
1222 | summary: (34) head
1222 | summary: (34) head
1223 |
1223 |
1224 | o changeset: 33:68608f5145f9
1224 | o changeset: 33:68608f5145f9
1225 | parent: 18:1aa84d96232a
1225 | parent: 18:1aa84d96232a
1226 | user: test
1226 | user: test
1227 | date: Thu Jan 01 00:00:33 1970 +0000
1227 | date: Thu Jan 01 00:00:33 1970 +0000
1228 | summary: (33) head
1228 | summary: (33) head
1229 |
1229 |
1230 o changeset: 32:d06dffa21a31
1230 o changeset: 32:d06dffa21a31
1231 | parent: 27:886ed638191b
1231 | parent: 27:886ed638191b
1232 | parent: 31:621d83e11f67
1232 | parent: 31:621d83e11f67
1233 | user: test
1233 | user: test
1234 | date: Thu Jan 01 00:00:32 1970 +0000
1234 | date: Thu Jan 01 00:00:32 1970 +0000
1235 | summary: (32) expand
1235 | summary: (32) expand
1236 |
1236 |
1237 o changeset: 27:886ed638191b
1237 o changeset: 27:886ed638191b
1238 parent: 21:d42a756af44d
1238 parent: 21:d42a756af44d
1239 user: test
1239 user: test
1240 date: Thu Jan 01 00:00:27 1970 +0000
1240 date: Thu Jan 01 00:00:27 1970 +0000
1241 summary: (27) collapse
1241 summary: (27) collapse
1242
1242
1243 $ cd ..
1243 $ cd ..
1244
1244
1245 $ hg -R repo outgoing --graph repo2
1245 $ hg -R repo outgoing --graph repo2
1246 comparing with repo2
1246 comparing with repo2
1247 searching for changes
1247 searching for changes
1248 @ changeset: 34:fea3ac5810e0
1248 @ changeset: 34:fea3ac5810e0
1249 | tag: tip
1249 | tag: tip
1250 | parent: 32:d06dffa21a31
1250 | parent: 32:d06dffa21a31
1251 | user: test
1251 | user: test
1252 | date: Thu Jan 01 00:00:34 1970 +0000
1252 | date: Thu Jan 01 00:00:34 1970 +0000
1253 | summary: (34) head
1253 | summary: (34) head
1254 |
1254 |
1255 | o changeset: 33:68608f5145f9
1255 | o changeset: 33:68608f5145f9
1256 | parent: 18:1aa84d96232a
1256 | parent: 18:1aa84d96232a
1257 | user: test
1257 | user: test
1258 | date: Thu Jan 01 00:00:33 1970 +0000
1258 | date: Thu Jan 01 00:00:33 1970 +0000
1259 | summary: (33) head
1259 | summary: (33) head
1260 |
1260 |
1261 o changeset: 32:d06dffa21a31
1261 o changeset: 32:d06dffa21a31
1262 | parent: 27:886ed638191b
1262 | parent: 27:886ed638191b
1263 | parent: 31:621d83e11f67
1263 | parent: 31:621d83e11f67
1264 | user: test
1264 | user: test
1265 | date: Thu Jan 01 00:00:32 1970 +0000
1265 | date: Thu Jan 01 00:00:32 1970 +0000
1266 | summary: (32) expand
1266 | summary: (32) expand
1267 |
1267 |
1268 o changeset: 27:886ed638191b
1268 o changeset: 27:886ed638191b
1269 parent: 21:d42a756af44d
1269 parent: 21:d42a756af44d
1270 user: test
1270 user: test
1271 date: Thu Jan 01 00:00:27 1970 +0000
1271 date: Thu Jan 01 00:00:27 1970 +0000
1272 summary: (27) collapse
1272 summary: (27) collapse
1273
1273
1274
1274
1275 File + limit with revs != cset revs:
1275 File + limit with revs != cset revs:
1276 $ cd repo
1276 $ cd repo
1277 $ touch b
1277 $ touch b
1278 $ hg ci -Aqm0
1278 $ hg ci -Aqm0
1279 $ hg glog -l2 a
1279 $ hg glog -l2 a
1280 o changeset: 34:fea3ac5810e0
1280 o changeset: 34:fea3ac5810e0
1281 | parent: 32:d06dffa21a31
1281 | parent: 32:d06dffa21a31
1282 | user: test
1282 | user: test
1283 | date: Thu Jan 01 00:00:34 1970 +0000
1283 | date: Thu Jan 01 00:00:34 1970 +0000
1284 | summary: (34) head
1284 | summary: (34) head
1285 |
1285 |
1286 | o changeset: 33:68608f5145f9
1286 | o changeset: 33:68608f5145f9
1287 | | parent: 18:1aa84d96232a
1287 | | parent: 18:1aa84d96232a
1288 | | user: test
1288 | | user: test
1289 | | date: Thu Jan 01 00:00:33 1970 +0000
1289 | | date: Thu Jan 01 00:00:33 1970 +0000
1290 | | summary: (33) head
1290 | | summary: (33) head
1291 | |
1291 | |
1292
1292
1293 File + limit + -ra:b, (b - a) < limit:
1293 File + limit + -ra:b, (b - a) < limit:
1294 $ hg glog -l3000 -r32:tip a
1294 $ hg glog -l3000 -r32:tip a
1295 o changeset: 34:fea3ac5810e0
1295 o changeset: 34:fea3ac5810e0
1296 | parent: 32:d06dffa21a31
1296 | parent: 32:d06dffa21a31
1297 | user: test
1297 | user: test
1298 | date: Thu Jan 01 00:00:34 1970 +0000
1298 | date: Thu Jan 01 00:00:34 1970 +0000
1299 | summary: (34) head
1299 | summary: (34) head
1300 |
1300 |
1301 | o changeset: 33:68608f5145f9
1301 | o changeset: 33:68608f5145f9
1302 | | parent: 18:1aa84d96232a
1302 | | parent: 18:1aa84d96232a
1303 | | user: test
1303 | | user: test
1304 | | date: Thu Jan 01 00:00:33 1970 +0000
1304 | | date: Thu Jan 01 00:00:33 1970 +0000
1305 | | summary: (33) head
1305 | | summary: (33) head
1306 | |
1306 | |
1307 o | changeset: 32:d06dffa21a31
1307 o | changeset: 32:d06dffa21a31
1308 |\ \ parent: 27:886ed638191b
1308 |\ \ parent: 27:886ed638191b
1309 | | | parent: 31:621d83e11f67
1309 | | | parent: 31:621d83e11f67
1310 | | | user: test
1310 | | | user: test
1311 | | | date: Thu Jan 01 00:00:32 1970 +0000
1311 | | | date: Thu Jan 01 00:00:32 1970 +0000
1312 | | | summary: (32) expand
1312 | | | summary: (32) expand
1313 | | |
1313 | | |
1314
1314
1315 Point out a common and an uncommon unshown parent
1315 Point out a common and an uncommon unshown parent
1316
1316
1317 $ hg glog -r 'rev(8) or rev(9)'
1317 $ hg glog -r 'rev(8) or rev(9)'
1318 o changeset: 9:7010c0af0a35
1318 o changeset: 9:7010c0af0a35
1319 |\ parent: 7:b632bb1b1224
1319 |\ parent: 7:b632bb1b1224
1320 | | parent: 8:7a0b11f71937
1320 | | parent: 8:7a0b11f71937
1321 | | user: test
1321 | | user: test
1322 | | date: Thu Jan 01 00:00:09 1970 +0000
1322 | | date: Thu Jan 01 00:00:09 1970 +0000
1323 | | summary: (9) expand
1323 | | summary: (9) expand
1324 | |
1324 | |
1325 o | changeset: 8:7a0b11f71937
1325 o | changeset: 8:7a0b11f71937
1326 |\| parent: 0:e6eb3150255d
1326 |\| parent: 0:e6eb3150255d
1327 | | parent: 7:b632bb1b1224
1327 | | parent: 7:b632bb1b1224
1328 | | user: test
1328 | | user: test
1329 | | date: Thu Jan 01 00:00:08 1970 +0000
1329 | | date: Thu Jan 01 00:00:08 1970 +0000
1330 | | summary: (8) merge two known; one immediate left, one far right
1330 | | summary: (8) merge two known; one immediate left, one far right
1331 | |
1331 | |
1332
1332
1333 File + limit + -ra:b, b < tip:
1333 File + limit + -ra:b, b < tip:
1334
1334
1335 $ hg glog -l1 -r32:34 a
1335 $ hg glog -l1 -r32:34 a
1336 o changeset: 34:fea3ac5810e0
1336 o changeset: 34:fea3ac5810e0
1337 | parent: 32:d06dffa21a31
1337 | parent: 32:d06dffa21a31
1338 | user: test
1338 | user: test
1339 | date: Thu Jan 01 00:00:34 1970 +0000
1339 | date: Thu Jan 01 00:00:34 1970 +0000
1340 | summary: (34) head
1340 | summary: (34) head
1341 |
1341 |
1342
1342
1343 file(File) + limit + -ra:b, b < tip:
1343 file(File) + limit + -ra:b, b < tip:
1344
1344
1345 $ hg glog -l1 -r32:34 -r 'file("a")'
1345 $ hg glog -l1 -r32:34 -r 'file("a")'
1346 o changeset: 34:fea3ac5810e0
1346 o changeset: 34:fea3ac5810e0
1347 | parent: 32:d06dffa21a31
1347 | parent: 32:d06dffa21a31
1348 | user: test
1348 | user: test
1349 | date: Thu Jan 01 00:00:34 1970 +0000
1349 | date: Thu Jan 01 00:00:34 1970 +0000
1350 | summary: (34) head
1350 | summary: (34) head
1351 |
1351 |
1352
1352
1353 limit(file(File) and a::b), b < tip:
1353 limit(file(File) and a::b), b < tip:
1354
1354
1355 $ hg glog -r 'limit(file("a") and 32::34, 1)'
1355 $ hg glog -r 'limit(file("a") and 32::34, 1)'
1356 o changeset: 32:d06dffa21a31
1356 o changeset: 32:d06dffa21a31
1357 |\ parent: 27:886ed638191b
1357 |\ parent: 27:886ed638191b
1358 | | parent: 31:621d83e11f67
1358 | | parent: 31:621d83e11f67
1359 | | user: test
1359 | | user: test
1360 | | date: Thu Jan 01 00:00:32 1970 +0000
1360 | | date: Thu Jan 01 00:00:32 1970 +0000
1361 | | summary: (32) expand
1361 | | summary: (32) expand
1362 | |
1362 | |
1363
1363
1364 File + limit + -ra:b, b < tip:
1364 File + limit + -ra:b, b < tip:
1365
1365
1366 $ hg glog -r 'limit(file("a") and 34::32, 1)'
1366 $ hg glog -r 'limit(file("a") and 34::32, 1)'
1367
1367
1368 File + limit + -ra:b, b < tip, (b - a) < limit:
1368 File + limit + -ra:b, b < tip, (b - a) < limit:
1369
1369
1370 $ hg glog -l10 -r33:34 a
1370 $ hg glog -l10 -r33:34 a
1371 o changeset: 34:fea3ac5810e0
1371 o changeset: 34:fea3ac5810e0
1372 | parent: 32:d06dffa21a31
1372 | parent: 32:d06dffa21a31
1373 | user: test
1373 | user: test
1374 | date: Thu Jan 01 00:00:34 1970 +0000
1374 | date: Thu Jan 01 00:00:34 1970 +0000
1375 | summary: (34) head
1375 | summary: (34) head
1376 |
1376 |
1377 | o changeset: 33:68608f5145f9
1377 | o changeset: 33:68608f5145f9
1378 | | parent: 18:1aa84d96232a
1378 | | parent: 18:1aa84d96232a
1379 | | user: test
1379 | | user: test
1380 | | date: Thu Jan 01 00:00:33 1970 +0000
1380 | | date: Thu Jan 01 00:00:33 1970 +0000
1381 | | summary: (33) head
1381 | | summary: (33) head
1382 | |
1382 | |
1383
1383
1384 Do not crash or produce strange graphs if history is buggy
1384 Do not crash or produce strange graphs if history is buggy
1385
1385
1386 $ hg branch branch
1386 $ hg branch branch
1387 marked working directory as branch branch
1387 marked working directory as branch branch
1388 (branches are permanent and global, did you want a bookmark?)
1388 (branches are permanent and global, did you want a bookmark?)
1389 $ commit 36 "buggy merge: identical parents" 35 35
1389 $ commit 36 "buggy merge: identical parents" 35 35
1390 $ hg glog -l5
1390 $ hg glog -l5
1391 @ changeset: 36:08a19a744424
1391 @ changeset: 36:08a19a744424
1392 | branch: branch
1392 | branch: branch
1393 | tag: tip
1393 | tag: tip
1394 | parent: 35:9159c3644c5e
1394 | parent: 35:9159c3644c5e
1395 | parent: 35:9159c3644c5e
1395 | parent: 35:9159c3644c5e
1396 | user: test
1396 | user: test
1397 | date: Thu Jan 01 00:00:36 1970 +0000
1397 | date: Thu Jan 01 00:00:36 1970 +0000
1398 | summary: (36) buggy merge: identical parents
1398 | summary: (36) buggy merge: identical parents
1399 |
1399 |
1400 o changeset: 35:9159c3644c5e
1400 o changeset: 35:9159c3644c5e
1401 | user: test
1401 | user: test
1402 | date: Thu Jan 01 00:00:00 1970 +0000
1402 | date: Thu Jan 01 00:00:00 1970 +0000
1403 | summary: 0
1403 | summary: 0
1404 |
1404 |
1405 o changeset: 34:fea3ac5810e0
1405 o changeset: 34:fea3ac5810e0
1406 | parent: 32:d06dffa21a31
1406 | parent: 32:d06dffa21a31
1407 | user: test
1407 | user: test
1408 | date: Thu Jan 01 00:00:34 1970 +0000
1408 | date: Thu Jan 01 00:00:34 1970 +0000
1409 | summary: (34) head
1409 | summary: (34) head
1410 |
1410 |
1411 | o changeset: 33:68608f5145f9
1411 | o changeset: 33:68608f5145f9
1412 | | parent: 18:1aa84d96232a
1412 | | parent: 18:1aa84d96232a
1413 | | user: test
1413 | | user: test
1414 | | date: Thu Jan 01 00:00:33 1970 +0000
1414 | | date: Thu Jan 01 00:00:33 1970 +0000
1415 | | summary: (33) head
1415 | | summary: (33) head
1416 | |
1416 | |
1417 o | changeset: 32:d06dffa21a31
1417 o | changeset: 32:d06dffa21a31
1418 |\ \ parent: 27:886ed638191b
1418 |\ \ parent: 27:886ed638191b
1419 | | | parent: 31:621d83e11f67
1419 | | | parent: 31:621d83e11f67
1420 | | | user: test
1420 | | | user: test
1421 | | | date: Thu Jan 01 00:00:32 1970 +0000
1421 | | | date: Thu Jan 01 00:00:32 1970 +0000
1422 | | | summary: (32) expand
1422 | | | summary: (32) expand
1423 | | |
1423 | | |
1424
1424
1425 Test log -G options
1425 Test log -G options
1426
1426
1427 $ testlog() {
1427 $ testlog() {
1428 > hg log -G --print-revset "$@"
1428 > hg log -G --print-revset "$@"
1429 > hg log --template 'nodetag {rev}\n' "$@" | grep nodetag \
1429 > hg log --template 'nodetag {rev}\n' "$@" | grep nodetag \
1430 > | sed 's/.*nodetag/nodetag/' > log.nodes
1430 > | sed 's/.*nodetag/nodetag/' > log.nodes
1431 > hg log -G --template 'nodetag {rev}\n' "$@" | grep nodetag \
1431 > hg log -G --template 'nodetag {rev}\n' "$@" | grep nodetag \
1432 > | sed 's/.*nodetag/nodetag/' > glog.nodes
1432 > | sed 's/.*nodetag/nodetag/' > glog.nodes
1433 > diff -u log.nodes glog.nodes | grep '^[-+@ ]' || :
1433 > diff -u log.nodes glog.nodes | 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 (func
1458 (func
1459 ('symbol', 'user')
1459 ('symbol', 'user')
1460 ('string', 'test'))
1460 ('string', 'test'))
1461 (func
1461 (func
1462 ('symbol', 'user')
1462 ('symbol', 'user')
1463 ('string', 'not-a-user')))))
1463 ('string', 'not-a-user')))))
1464 $ testlog -b not-a-branch
1464 $ testlog -b not-a-branch
1465 abort: unknown revision 'not-a-branch'!
1465 abort: unknown revision '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 $ testlog -b 35 -b 36 --only-branch branch
1468 $ testlog -b 35 -b 36 --only-branch branch
1469 []
1469 []
1470 (group
1470 (group
1471 (group
1471 (group
1472 (or
1472 (or
1473 (or
1473 (or
1474 (func
1474 (func
1475 ('symbol', 'branch')
1475 ('symbol', 'branch')
1476 ('string', 'default'))
1476 ('string', 'default'))
1477 (func
1477 (func
1478 ('symbol', 'branch')
1478 ('symbol', 'branch')
1479 ('string', 'branch')))
1479 ('string', 'branch')))
1480 (func
1480 (func
1481 ('symbol', 'branch')
1481 ('symbol', 'branch')
1482 ('string', 'branch')))))
1482 ('string', 'branch')))))
1483 $ testlog -k expand -k merge
1483 $ testlog -k expand -k merge
1484 []
1484 []
1485 (group
1485 (group
1486 (group
1486 (group
1487 (or
1487 (or
1488 (func
1488 (func
1489 ('symbol', 'keyword')
1489 ('symbol', 'keyword')
1490 ('string', 'expand'))
1490 ('string', 'expand'))
1491 (func
1491 (func
1492 ('symbol', 'keyword')
1492 ('symbol', 'keyword')
1493 ('string', 'merge')))))
1493 ('string', 'merge')))))
1494 $ testlog --only-merges
1494 $ testlog --only-merges
1495 []
1495 []
1496 (group
1496 (group
1497 (func
1497 (func
1498 ('symbol', 'merge')
1498 ('symbol', 'merge')
1499 None))
1499 None))
1500 $ testlog --no-merges
1500 $ testlog --no-merges
1501 []
1501 []
1502 (group
1502 (group
1503 (not
1503 (not
1504 (func
1504 (func
1505 ('symbol', 'merge')
1505 ('symbol', 'merge')
1506 None)))
1506 None)))
1507 $ testlog --date '2 0 to 4 0'
1507 $ testlog --date '2 0 to 4 0'
1508 []
1508 []
1509 (group
1509 (group
1510 (func
1510 (func
1511 ('symbol', 'date')
1511 ('symbol', 'date')
1512 ('string', '2 0 to 4 0')))
1512 ('string', '2 0 to 4 0')))
1513 $ hg log -G -d 'brace ) in a date'
1513 $ hg log -G -d 'brace ) in a date'
1514 abort: invalid date: 'brace ) in a date'
1514 abort: invalid date: 'brace ) in a date'
1515 [255]
1515 [255]
1516 $ testlog --prune 31 --prune 32
1516 $ testlog --prune 31 --prune 32
1517 []
1517 []
1518 (group
1518 (group
1519 (group
1519 (group
1520 (and
1520 (and
1521 (not
1521 (not
1522 (group
1522 (group
1523 (or
1523 (or
1524 ('string', '31')
1524 ('string', '31')
1525 (func
1525 (func
1526 ('symbol', 'ancestors')
1526 ('symbol', 'ancestors')
1527 ('string', '31')))))
1527 ('string', '31')))))
1528 (not
1528 (not
1529 (group
1529 (group
1530 (or
1530 (or
1531 ('string', '32')
1531 ('string', '32')
1532 (func
1532 (func
1533 ('symbol', 'ancestors')
1533 ('symbol', 'ancestors')
1534 ('string', '32'))))))))
1534 ('string', '32'))))))))
1535
1535
1536 Dedicated repo for --follow and paths filtering. The g is crafted to
1536 Dedicated repo for --follow and paths filtering. The g is crafted to
1537 have 2 filelog topological heads in a linear changeset graph.
1537 have 2 filelog topological heads in a linear changeset graph.
1538
1538
1539 $ cd ..
1539 $ cd ..
1540 $ hg init follow
1540 $ hg init follow
1541 $ cd follow
1541 $ cd follow
1542 $ testlog --follow
1542 $ testlog --follow
1543 []
1543 []
1544 []
1544 []
1545 $ echo a > a
1545 $ echo a > a
1546 $ echo aa > aa
1546 $ echo aa > aa
1547 $ echo f > f
1547 $ echo f > f
1548 $ hg ci -Am "add a" a aa f
1548 $ hg ci -Am "add a" a aa f
1549 $ hg cp a b
1549 $ hg cp a b
1550 $ hg cp f g
1550 $ hg cp f g
1551 $ hg ci -m "copy a b"
1551 $ hg ci -m "copy a b"
1552 $ mkdir dir
1552 $ mkdir dir
1553 $ hg mv b dir
1553 $ hg mv b dir
1554 $ echo g >> g
1554 $ echo g >> g
1555 $ echo f >> f
1555 $ echo f >> f
1556 $ hg ci -m "mv b dir/b"
1556 $ hg ci -m "mv b dir/b"
1557 $ hg mv a b
1557 $ hg mv a b
1558 $ hg cp -f f g
1558 $ hg cp -f f g
1559 $ echo a > d
1559 $ echo a > d
1560 $ hg add d
1560 $ hg add d
1561 $ hg ci -m "mv a b; add d"
1561 $ hg ci -m "mv a b; add d"
1562 $ hg mv dir/b e
1562 $ hg mv dir/b e
1563 $ hg ci -m "mv dir/b e"
1563 $ hg ci -m "mv dir/b e"
1564 $ hg glog --template '({rev}) {desc|firstline}\n'
1564 $ hg glog --template '({rev}) {desc|firstline}\n'
1565 @ (4) mv dir/b e
1565 @ (4) mv dir/b e
1566 |
1566 |
1567 o (3) mv a b; add d
1567 o (3) mv a b; add d
1568 |
1568 |
1569 o (2) mv b dir/b
1569 o (2) mv b dir/b
1570 |
1570 |
1571 o (1) copy a b
1571 o (1) copy a b
1572 |
1572 |
1573 o (0) add a
1573 o (0) add a
1574
1574
1575
1575
1576 $ testlog a
1576 $ testlog a
1577 []
1577 []
1578 (group
1578 (group
1579 (group
1579 (group
1580 (func
1580 (func
1581 ('symbol', 'filelog')
1581 ('symbol', 'filelog')
1582 ('string', 'a'))))
1582 ('string', 'a'))))
1583 $ testlog a b
1583 $ testlog a b
1584 []
1584 []
1585 (group
1585 (group
1586 (group
1586 (group
1587 (or
1587 (or
1588 (func
1588 (func
1589 ('symbol', 'filelog')
1589 ('symbol', 'filelog')
1590 ('string', 'a'))
1590 ('string', 'a'))
1591 (func
1591 (func
1592 ('symbol', 'filelog')
1592 ('symbol', 'filelog')
1593 ('string', 'b')))))
1593 ('string', 'b')))))
1594
1594
1595 Test falling back to slow path for non-existing files
1595 Test falling back to slow path for non-existing files
1596
1596
1597 $ testlog a c
1597 $ testlog a c
1598 []
1598 []
1599 (group
1599 (group
1600 (func
1600 (func
1601 ('symbol', '_matchfiles')
1601 ('symbol', '_matchfiles')
1602 (list
1602 (list
1603 (list
1603 (list
1604 (list
1604 (list
1605 ('string', 'r:')
1605 ('string', 'r:')
1606 ('string', 'd:relpath'))
1606 ('string', 'd:relpath'))
1607 ('string', 'p:a'))
1607 ('string', 'p:a'))
1608 ('string', 'p:c'))))
1608 ('string', 'p:c'))))
1609
1609
1610 Test multiple --include/--exclude/paths
1610 Test multiple --include/--exclude/paths
1611
1611
1612 $ testlog --include a --include e --exclude b --exclude e a e
1612 $ testlog --include a --include e --exclude b --exclude e a e
1613 []
1613 []
1614 (group
1614 (group
1615 (func
1615 (func
1616 ('symbol', '_matchfiles')
1616 ('symbol', '_matchfiles')
1617 (list
1617 (list
1618 (list
1618 (list
1619 (list
1619 (list
1620 (list
1620 (list
1621 (list
1621 (list
1622 (list
1622 (list
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 directory
1649 Test --follow on a 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 file not in parent revision
1656 Test --follow on file not in parent revision
1657
1657
1658 $ testlog -f a
1658 $ testlog -f a
1659 abort: cannot follow file not in parent revision: "a"
1659 abort: cannot follow file not in parent revision: "a"
1660 abort: cannot follow file not in parent revision: "a"
1660 abort: cannot follow file not in parent revision: "a"
1661 abort: cannot follow file not in parent revision: "a"
1661 abort: cannot follow file not in parent revision: "a"
1662
1662
1663 Test --follow and patterns
1663 Test --follow and patterns
1664
1664
1665 $ testlog -f 'glob:*'
1665 $ testlog -f 'glob:*'
1666 abort: can only follow copies/renames for explicit filenames
1666 abort: can only follow copies/renames for explicit filenames
1667 abort: can only follow copies/renames for explicit filenames
1667 abort: can only follow copies/renames for explicit filenames
1668 abort: can only follow copies/renames for explicit filenames
1668 abort: can only follow copies/renames for explicit filenames
1669
1669
1670 Test --follow on a single rename
1670 Test --follow on a single rename
1671
1671
1672 $ hg up -q 2
1672 $ hg up -q 2
1673 $ testlog -f a
1673 $ testlog -f a
1674 []
1674 []
1675 (group
1675 (group
1676 (group
1676 (group
1677 (func
1677 (func
1678 ('symbol', 'follow')
1678 ('symbol', 'follow')
1679 ('string', 'a'))))
1679 ('string', 'a'))))
1680
1680
1681 Test --follow and multiple renames
1681 Test --follow and multiple renames
1682
1682
1683 $ hg up -q tip
1683 $ hg up -q tip
1684 $ testlog -f e
1684 $ testlog -f e
1685 []
1685 []
1686 (group
1686 (group
1687 (group
1687 (group
1688 (func
1688 (func
1689 ('symbol', 'follow')
1689 ('symbol', 'follow')
1690 ('string', 'e'))))
1690 ('string', 'e'))))
1691
1691
1692 Test --follow and multiple filelog heads
1692 Test --follow and multiple filelog heads
1693
1693
1694 $ hg up -q 2
1694 $ hg up -q 2
1695 $ testlog -f g
1695 $ testlog -f g
1696 []
1696 []
1697 (group
1697 (group
1698 (group
1698 (group
1699 (func
1699 (func
1700 ('symbol', 'follow')
1700 ('symbol', 'follow')
1701 ('string', 'g'))))
1701 ('string', 'g'))))
1702 $ cat log.nodes
1702 $ cat log.nodes
1703 nodetag 2
1703 nodetag 2
1704 nodetag 1
1704 nodetag 1
1705 nodetag 0
1705 nodetag 0
1706 $ hg up -q tip
1706 $ hg up -q tip
1707 $ testlog -f g
1707 $ testlog -f g
1708 []
1708 []
1709 (group
1709 (group
1710 (group
1710 (group
1711 (func
1711 (func
1712 ('symbol', 'follow')
1712 ('symbol', 'follow')
1713 ('string', 'g'))))
1713 ('string', 'g'))))
1714 $ cat log.nodes
1714 $ cat log.nodes
1715 nodetag 3
1715 nodetag 3
1716 nodetag 2
1716 nodetag 2
1717 nodetag 0
1717 nodetag 0
1718
1718
1719 Test --follow and multiple files
1719 Test --follow and multiple files
1720
1720
1721 $ testlog -f g e
1721 $ testlog -f g e
1722 []
1722 []
1723 (group
1723 (group
1724 (group
1724 (group
1725 (or
1725 (or
1726 (func
1726 (func
1727 ('symbol', 'follow')
1727 ('symbol', 'follow')
1728 ('string', 'g'))
1728 ('string', 'g'))
1729 (func
1729 (func
1730 ('symbol', 'follow')
1730 ('symbol', 'follow')
1731 ('string', 'e')))))
1731 ('string', 'e')))))
1732 $ cat log.nodes
1732 $ cat log.nodes
1733 nodetag 4
1733 nodetag 4
1734 nodetag 3
1734 nodetag 3
1735 nodetag 2
1735 nodetag 2
1736 nodetag 1
1736 nodetag 1
1737 nodetag 0
1737 nodetag 0
1738
1738
1739 Test --follow-first
1739 Test --follow-first
1740
1740
1741 $ hg up -q 3
1741 $ hg up -q 3
1742 $ echo ee > e
1742 $ echo ee > e
1743 $ hg ci -Am "add another e" e
1743 $ hg ci -Am "add another e" e
1744 created new head
1744 created new head
1745 $ hg merge --tool internal:other 4
1745 $ hg merge --tool internal:other 4
1746 0 files updated, 1 files merged, 1 files removed, 0 files unresolved
1746 0 files updated, 1 files merged, 1 files removed, 0 files unresolved
1747 (branch merge, don't forget to commit)
1747 (branch merge, don't forget to commit)
1748 $ echo merge > e
1748 $ echo merge > e
1749 $ hg ci -m "merge 5 and 4"
1749 $ hg ci -m "merge 5 and 4"
1750 $ testlog --follow-first
1750 $ testlog --follow-first
1751 []
1751 []
1752 (group
1752 (group
1753 (func
1753 (func
1754 ('symbol', '_firstancestors')
1754 ('symbol', '_firstancestors')
1755 ('symbol', '6')))
1755 ('symbol', '6')))
1756
1756
1757 Cannot compare with log --follow-first FILE as it never worked
1757 Cannot compare with log --follow-first FILE as it never worked
1758
1758
1759 $ hg log -G --print-revset --follow-first e
1759 $ hg log -G --print-revset --follow-first e
1760 []
1760 []
1761 (group
1761 (group
1762 (group
1762 (group
1763 (func
1763 (func
1764 ('symbol', '_followfirst')
1764 ('symbol', '_followfirst')
1765 ('string', 'e'))))
1765 ('string', 'e'))))
1766 $ hg log -G --follow-first e --template '{rev} {desc|firstline}\n'
1766 $ hg log -G --follow-first e --template '{rev} {desc|firstline}\n'
1767 @ 6 merge 5 and 4
1767 @ 6 merge 5 and 4
1768 |\
1768 |\
1769 o | 5 add another e
1769 o | 5 add another e
1770 | |
1770 | |
1771
1771
1772 Test --copies
1772 Test --copies
1773
1773
1774 $ hg log -G --copies --template "{rev} {desc|firstline} \
1774 $ hg log -G --copies --template "{rev} {desc|firstline} \
1775 > copies: {file_copies_switch}\n"
1775 > copies: {file_copies_switch}\n"
1776 @ 6 merge 5 and 4 copies:
1776 @ 6 merge 5 and 4 copies:
1777 |\
1777 |\
1778 | o 5 add another e copies:
1778 | o 5 add another e copies:
1779 | |
1779 | |
1780 o | 4 mv dir/b e copies: e (dir/b)
1780 o | 4 mv dir/b e copies: e (dir/b)
1781 |/
1781 |/
1782 o 3 mv a b; add d copies: b (a)g (f)
1782 o 3 mv a b; add d copies: b (a)g (f)
1783 |
1783 |
1784 o 2 mv b dir/b copies: dir/b (b)
1784 o 2 mv b dir/b copies: dir/b (b)
1785 |
1785 |
1786 o 1 copy a b copies: b (a)g (f)
1786 o 1 copy a b copies: b (a)g (f)
1787 |
1787 |
1788 o 0 add a copies:
1788 o 0 add a copies:
1789
1789
1790 Test "set:..." and parent revision
1790 Test "set:..." and parent revision
1791
1791
1792 $ hg up -q 4
1792 $ hg up -q 4
1793 $ testlog "set:copied()"
1793 $ testlog "set:copied()"
1794 []
1794 []
1795 (group
1795 (group
1796 (func
1796 (func
1797 ('symbol', '_matchfiles')
1797 ('symbol', '_matchfiles')
1798 (list
1798 (list
1799 (list
1799 (list
1800 ('string', 'r:')
1800 ('string', 'r:')
1801 ('string', 'd:relpath'))
1801 ('string', 'd:relpath'))
1802 ('string', 'p:set:copied()'))))
1802 ('string', 'p:set:copied()'))))
1803 $ testlog --include "set:copied()"
1803 $ testlog --include "set:copied()"
1804 []
1804 []
1805 (group
1805 (group
1806 (func
1806 (func
1807 ('symbol', '_matchfiles')
1807 ('symbol', '_matchfiles')
1808 (list
1808 (list
1809 (list
1809 (list
1810 ('string', 'r:')
1810 ('string', 'r:')
1811 ('string', 'd:relpath'))
1811 ('string', 'd:relpath'))
1812 ('string', 'i:set:copied()'))))
1812 ('string', 'i:set:copied()'))))
1813 $ testlog -r "sort(file('set:copied()'), -rev)"
1813 $ testlog -r "sort(file('set:copied()'), -rev)"
1814 ["sort(file('set:copied()'), -rev)"]
1814 ["sort(file('set:copied()'), -rev)"]
1815 []
1815 []
1816
1816
1817 Test --removed
1817 Test --removed
1818
1818
1819 $ testlog --removed
1819 $ testlog --removed
1820 []
1820 []
1821 []
1821 []
1822 $ testlog --removed a
1822 $ testlog --removed a
1823 []
1823 []
1824 (group
1824 (group
1825 (func
1825 (func
1826 ('symbol', '_matchfiles')
1826 ('symbol', '_matchfiles')
1827 (list
1827 (list
1828 (list
1828 (list
1829 ('string', 'r:')
1829 ('string', 'r:')
1830 ('string', 'd:relpath'))
1830 ('string', 'd:relpath'))
1831 ('string', 'p:a'))))
1831 ('string', 'p:a'))))
1832 $ testlog --removed --follow a
1832 $ testlog --removed --follow a
1833 abort: can only follow copies/renames for explicit filenames
1833 abort: can only follow copies/renames for explicit filenames
1834 abort: can only follow copies/renames for explicit filenames
1834 abort: can only follow copies/renames for explicit filenames
1835 abort: can only follow copies/renames for explicit filenames
1835 abort: can only follow copies/renames for explicit filenames
1836
1836
1837 Test --patch and --stat with --follow and --follow-first
1837 Test --patch and --stat with --follow and --follow-first
1838
1838
1839 $ hg up -q 3
1839 $ hg up -q 3
1840 $ hg log -G --git --patch b
1840 $ hg log -G --git --patch b
1841 o changeset: 1:216d4c92cf98
1841 o changeset: 1:216d4c92cf98
1842 | user: test
1842 | user: test
1843 | date: Thu Jan 01 00:00:00 1970 +0000
1843 | date: Thu Jan 01 00:00:00 1970 +0000
1844 | summary: copy a b
1844 | summary: copy a b
1845 |
1845 |
1846 | diff --git a/a b/b
1846 | diff --git a/a b/b
1847 | copy from a
1847 | copy from a
1848 | copy to b
1848 | copy to b
1849 |
1849 |
1850
1850
1851 $ hg log -G --git --stat b
1851 $ hg log -G --git --stat b
1852 o changeset: 1:216d4c92cf98
1852 o changeset: 1:216d4c92cf98
1853 | user: test
1853 | user: test
1854 | date: Thu Jan 01 00:00:00 1970 +0000
1854 | date: Thu Jan 01 00:00:00 1970 +0000
1855 | summary: copy a b
1855 | summary: copy a b
1856 |
1856 |
1857 | a | 0
1857 | a | 0
1858 | 1 files changed, 0 insertions(+), 0 deletions(-)
1858 | 1 files changed, 0 insertions(+), 0 deletions(-)
1859 |
1859 |
1860
1860
1861 $ hg log -G --git --patch --follow b
1861 $ hg log -G --git --patch --follow b
1862 o changeset: 1:216d4c92cf98
1862 o changeset: 1:216d4c92cf98
1863 | user: test
1863 | user: test
1864 | date: Thu Jan 01 00:00:00 1970 +0000
1864 | date: Thu Jan 01 00:00:00 1970 +0000
1865 | summary: copy a b
1865 | summary: copy a b
1866 |
1866 |
1867 | diff --git a/a b/b
1867 | diff --git a/a b/b
1868 | copy from a
1868 | copy from a
1869 | copy to b
1869 | copy to b
1870 |
1870 |
1871 o changeset: 0:f8035bb17114
1871 o changeset: 0:f8035bb17114
1872 user: test
1872 user: test
1873 date: Thu Jan 01 00:00:00 1970 +0000
1873 date: Thu Jan 01 00:00:00 1970 +0000
1874 summary: add a
1874 summary: add a
1875
1875
1876 diff --git a/a b/a
1876 diff --git a/a b/a
1877 new file mode 100644
1877 new file mode 100644
1878 --- /dev/null
1878 --- /dev/null
1879 +++ b/a
1879 +++ b/a
1880 @@ -0,0 +1,1 @@
1880 @@ -0,0 +1,1 @@
1881 +a
1881 +a
1882
1882
1883
1883
1884 $ hg log -G --git --stat --follow b
1884 $ hg log -G --git --stat --follow b
1885 o changeset: 1:216d4c92cf98
1885 o changeset: 1:216d4c92cf98
1886 | user: test
1886 | user: test
1887 | date: Thu Jan 01 00:00:00 1970 +0000
1887 | date: Thu Jan 01 00:00:00 1970 +0000
1888 | summary: copy a b
1888 | summary: copy a b
1889 |
1889 |
1890 | a | 0
1890 | a | 0
1891 | 1 files changed, 0 insertions(+), 0 deletions(-)
1891 | 1 files changed, 0 insertions(+), 0 deletions(-)
1892 |
1892 |
1893 o changeset: 0:f8035bb17114
1893 o changeset: 0:f8035bb17114
1894 user: test
1894 user: test
1895 date: Thu Jan 01 00:00:00 1970 +0000
1895 date: Thu Jan 01 00:00:00 1970 +0000
1896 summary: add a
1896 summary: add a
1897
1897
1898 a | 1 +
1898 a | 1 +
1899 1 files changed, 1 insertions(+), 0 deletions(-)
1899 1 files changed, 1 insertions(+), 0 deletions(-)
1900
1900
1901
1901
1902 $ hg up -q 6
1902 $ hg up -q 6
1903 $ hg log -G --git --patch --follow-first e
1903 $ hg log -G --git --patch --follow-first e
1904 @ changeset: 6:fc281d8ff18d
1904 @ changeset: 6:fc281d8ff18d
1905 |\ tag: tip
1905 |\ tag: tip
1906 | | parent: 5:99b31f1c2782
1906 | | parent: 5:99b31f1c2782
1907 | | parent: 4:17d952250a9d
1907 | | parent: 4:17d952250a9d
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: merge 5 and 4
1910 | | summary: merge 5 and 4
1911 | |
1911 | |
1912 | | diff --git a/e b/e
1912 | | diff --git a/e b/e
1913 | | --- a/e
1913 | | --- a/e
1914 | | +++ b/e
1914 | | +++ b/e
1915 | | @@ -1,1 +1,1 @@
1915 | | @@ -1,1 +1,1 @@
1916 | | -ee
1916 | | -ee
1917 | | +merge
1917 | | +merge
1918 | |
1918 | |
1919 o | changeset: 5:99b31f1c2782
1919 o | changeset: 5:99b31f1c2782
1920 | | parent: 3:5918b8d165d1
1920 | | parent: 3:5918b8d165d1
1921 | | user: test
1921 | | user: test
1922 | | date: Thu Jan 01 00:00:00 1970 +0000
1922 | | date: Thu Jan 01 00:00:00 1970 +0000
1923 | | summary: add another e
1923 | | summary: add another e
1924 | |
1924 | |
1925 | | diff --git a/e b/e
1925 | | diff --git a/e b/e
1926 | | new file mode 100644
1926 | | new file mode 100644
1927 | | --- /dev/null
1927 | | --- /dev/null
1928 | | +++ b/e
1928 | | +++ b/e
1929 | | @@ -0,0 +1,1 @@
1929 | | @@ -0,0 +1,1 @@
1930 | | +ee
1930 | | +ee
1931 | |
1931 | |
1932
1932
1933 Test old-style --rev
1933 Test old-style --rev
1934
1934
1935 $ hg tag 'foo-bar'
1935 $ hg tag 'foo-bar'
1936 $ testlog -r 'foo-bar'
1936 $ testlog -r 'foo-bar'
1937 ['foo-bar']
1937 ['foo-bar']
1938 []
1938 []
1939
1939
1940 Test --follow and forward --rev
1940 Test --follow and forward --rev
1941
1941
1942 $ hg up -q 6
1942 $ hg up -q 6
1943 $ echo g > g
1943 $ echo g > g
1944 $ hg ci -Am 'add g' g
1944 $ hg ci -Am 'add g' g
1945 created new head
1945 created new head
1946 $ hg up -q 2
1946 $ hg up -q 2
1947 $ hg log -G --template "{rev} {desc|firstline}\n"
1947 $ hg log -G --template "{rev} {desc|firstline}\n"
1948 o 8 add g
1948 o 8 add g
1949 |
1949 |
1950 | o 7 Added tag foo-bar for changeset fc281d8ff18d
1950 | o 7 Added tag foo-bar for changeset fc281d8ff18d
1951 |/
1951 |/
1952 o 6 merge 5 and 4
1952 o 6 merge 5 and 4
1953 |\
1953 |\
1954 | o 5 add another e
1954 | o 5 add another e
1955 | |
1955 | |
1956 o | 4 mv dir/b e
1956 o | 4 mv dir/b e
1957 |/
1957 |/
1958 o 3 mv a b; add d
1958 o 3 mv a b; add d
1959 |
1959 |
1960 @ 2 mv b dir/b
1960 @ 2 mv b dir/b
1961 |
1961 |
1962 o 1 copy a b
1962 o 1 copy a b
1963 |
1963 |
1964 o 0 add a
1964 o 0 add a
1965
1965
1966 $ testlog --follow -r6 -r8 -r5 -r7 -r4
1966 $ testlog --follow -r6 -r8 -r5 -r7 -r4
1967 ['6', '8', '5', '7', '4']
1967 ['6', '8', '5', '7', '4']
1968 (group
1968 (group
1969 (func
1969 (func
1970 ('symbol', 'descendants')
1970 ('symbol', 'descendants')
1971 ('symbol', '6')))
1971 ('symbol', '6')))
1972 --- log.nodes * (glob)
1972 --- log.nodes * (glob)
1973 +++ glog.nodes * (glob)
1973 +++ glog.nodes * (glob)
1974 @@ -1,3 +1,3 @@
1974 @@ -1,3 +1,3 @@
1975 -nodetag 6
1975 -nodetag 6
1976 nodetag 8
1976 nodetag 8
1977 nodetag 7
1977 nodetag 7
1978 +nodetag 6
1978 +nodetag 6
1979
1979
1980 Test --follow-first and forward --rev
1980 Test --follow-first and forward --rev
1981
1981
1982 $ testlog --follow-first -r6 -r8 -r5 -r7 -r4
1982 $ testlog --follow-first -r6 -r8 -r5 -r7 -r4
1983 ['6', '8', '5', '7', '4']
1983 ['6', '8', '5', '7', '4']
1984 (group
1984 (group
1985 (func
1985 (func
1986 ('symbol', '_firstdescendants')
1986 ('symbol', '_firstdescendants')
1987 ('symbol', '6')))
1987 ('symbol', '6')))
1988 --- log.nodes * (glob)
1988 --- log.nodes * (glob)
1989 +++ glog.nodes * (glob)
1989 +++ glog.nodes * (glob)
1990 @@ -1,3 +1,3 @@
1990 @@ -1,3 +1,3 @@
1991 -nodetag 6
1991 -nodetag 6
1992 nodetag 8
1992 nodetag 8
1993 nodetag 7
1993 nodetag 7
1994 +nodetag 6
1994 +nodetag 6
1995
1995
1996 Test --follow and backward --rev
1996 Test --follow and backward --rev
1997
1997
1998 $ testlog --follow -r6 -r5 -r7 -r8 -r4
1998 $ testlog --follow -r6 -r5 -r7 -r8 -r4
1999 ['6', '5', '7', '8', '4']
1999 ['6', '5', '7', '8', '4']
2000 (group
2000 (group
2001 (func
2001 (func
2002 ('symbol', 'ancestors')
2002 ('symbol', 'ancestors')
2003 ('symbol', '6')))
2003 ('symbol', '6')))
2004
2004
2005 Test --follow-first and backward --rev
2005 Test --follow-first and backward --rev
2006
2006
2007 $ testlog --follow-first -r6 -r5 -r7 -r8 -r4
2007 $ testlog --follow-first -r6 -r5 -r7 -r8 -r4
2008 ['6', '5', '7', '8', '4']
2008 ['6', '5', '7', '8', '4']
2009 (group
2009 (group
2010 (func
2010 (func
2011 ('symbol', '_firstancestors')
2011 ('symbol', '_firstancestors')
2012 ('symbol', '6')))
2012 ('symbol', '6')))
2013
2013
2014 Test subdir
2014 Test subdir
2015
2015
2016 $ hg up -q 3
2016 $ hg up -q 3
2017 $ cd dir
2017 $ cd dir
2018 $ testlog .
2018 $ testlog .
2019 []
2019 []
2020 (group
2020 (group
2021 (func
2021 (func
2022 ('symbol', '_matchfiles')
2022 ('symbol', '_matchfiles')
2023 (list
2023 (list
2024 (list
2024 (list
2025 ('string', 'r:')
2025 ('string', 'r:')
2026 ('string', 'd:relpath'))
2026 ('string', 'd:relpath'))
2027 ('string', 'p:.'))))
2027 ('string', 'p:.'))))
2028 $ testlog ../b
2028 $ testlog ../b
2029 []
2029 []
2030 (group
2030 (group
2031 (group
2031 (group
2032 (func
2032 (func
2033 ('symbol', 'filelog')
2033 ('symbol', 'filelog')
2034 ('string', '../b'))))
2034 ('string', '../b'))))
2035 $ testlog -f ../b
2035 $ testlog -f ../b
2036 []
2036 []
2037 (group
2037 (group
2038 (group
2038 (group
2039 (func
2039 (func
2040 ('symbol', 'follow')
2040 ('symbol', 'follow')
2041 ('string', 'b'))))
2041 ('string', 'b'))))
2042 $ cd ..
2042 $ cd ..
2043
2043
2044 Test --hidden
2044 Test --hidden
2045 (enable obsolete)
2045 (enable obsolete)
2046
2046
2047 $ cat > ${TESTTMP}/obs.py << EOF
2047 $ cat > ${TESTTMP}/obs.py << EOF
2048 > import mercurial.obsolete
2048 > import mercurial.obsolete
2049 > mercurial.obsolete._enabled = True
2049 > mercurial.obsolete._enabled = True
2050 > EOF
2050 > EOF
2051 $ echo '[extensions]' >> $HGRCPATH
2051 $ echo '[extensions]' >> $HGRCPATH
2052 $ echo "obs=${TESTTMP}/obs.py" >> $HGRCPATH
2052 $ echo "obs=${TESTTMP}/obs.py" >> $HGRCPATH
2053
2053
2054 $ hg debugobsolete `hg id --debug -i -r 8`
2054 $ hg debugobsolete `hg id --debug -i -r 8`
2055 $ testlog
2055 $ testlog
2056 []
2056 []
2057 []
2057 []
2058 $ testlog --hidden
2058 $ testlog --hidden
2059 []
2059 []
2060 []
2060 []
2061 $ hg glog --template '{rev} {desc}\n'
2061 $ hg glog --template '{rev} {desc}\n'
2062 o 7 Added tag foo-bar for changeset fc281d8ff18d
2062 o 7 Added tag foo-bar for changeset fc281d8ff18d
2063 |
2063 |
2064 o 6 merge 5 and 4
2064 o 6 merge 5 and 4
2065 |\
2065 |\
2066 | o 5 add another e
2066 | o 5 add another e
2067 | |
2067 | |
2068 o | 4 mv dir/b e
2068 o | 4 mv dir/b e
2069 |/
2069 |/
2070 @ 3 mv a b; add d
2070 @ 3 mv a b; add d
2071 |
2071 |
2072 o 2 mv b dir/b
2072 o 2 mv b dir/b
2073 |
2073 |
2074 o 1 copy a b
2074 o 1 copy a b
2075 |
2075 |
2076 o 0 add a
2076 o 0 add a
2077
2077
2078
2078
2079 A template without trailing newline should do something sane
2079 A template without trailing newline should do something sane
2080
2080
2081 $ hg glog -r ::2 --template '{rev} {desc}'
2081 $ hg glog -r ::2 --template '{rev} {desc}'
2082 o 2 mv b dir/b
2082 o 2 mv b dir/b
2083 |
2083 |
2084 o 1 copy a b
2084 o 1 copy a b
2085 |
2085 |
2086 o 0 add a
2086 o 0 add a
2087
2087
2088
2088
2089 Extra newlines must be preserved
2089 Extra newlines must be preserved
2090
2090
2091 $ hg glog -r ::2 --template '\n{rev} {desc}\n\n'
2091 $ hg glog -r ::2 --template '\n{rev} {desc}\n\n'
2092 o
2092 o
2093 | 2 mv b dir/b
2093 | 2 mv b dir/b
2094 |
2094 |
2095 o
2095 o
2096 | 1 copy a b
2096 | 1 copy a b
2097 |
2097 |
2098 o
2098 o
2099 0 add a
2099 0 add a
2100
2100
2101
2101
2102 The almost-empty template should do something sane too ...
2102 The almost-empty template should do something sane too ...
2103
2103
2104 $ hg glog -r ::2 --template '\n'
2104 $ hg glog -r ::2 --template '\n'
2105 o
2105 o
2106 |
2106 |
2107 o
2107 o
2108 |
2108 |
2109 o
2109 o
2110
2110
2111
2111
2112 issue3772
2113
2114 $ hg glog -r :null
2115 o changeset: -1:000000000000
2116 user:
2117 date: Thu Jan 01 00:00:00 1970 +0000
2118
2119
2112 $ cd ..
2120 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now