##// END OF EJS Templates
merge with stable
Matt Mackall -
r25675:c76e8d14 merge default
parent child Browse files
Show More
@@ -1,332 +1,333 b''
1 # archival.py - revision archival for mercurial
1 # archival.py - revision archival for mercurial
2 #
2 #
3 # Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com>
3 # Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com>
4 #
4 #
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2 or any later version.
6 # GNU General Public License version 2 or any later version.
7
7
8 from i18n import _
8 from i18n import _
9 import match as matchmod
9 import match as matchmod
10 import cmdutil
10 import cmdutil
11 import scmutil, util, encoding
11 import scmutil, util, encoding
12 import cStringIO, os, tarfile, time, zipfile
12 import cStringIO, os, tarfile, time, zipfile
13 import zlib, gzip
13 import zlib, gzip
14 import struct
14 import struct
15 import error
15 import error
16
16
17 # from unzip source code:
17 # from unzip source code:
18 _UNX_IFREG = 0x8000
18 _UNX_IFREG = 0x8000
19 _UNX_IFLNK = 0xa000
19 _UNX_IFLNK = 0xa000
20
20
21 def tidyprefix(dest, kind, prefix):
21 def tidyprefix(dest, kind, prefix):
22 '''choose prefix to use for names in archive. make sure prefix is
22 '''choose prefix to use for names in archive. make sure prefix is
23 safe for consumers.'''
23 safe for consumers.'''
24
24
25 if prefix:
25 if prefix:
26 prefix = util.normpath(prefix)
26 prefix = util.normpath(prefix)
27 else:
27 else:
28 if not isinstance(dest, str):
28 if not isinstance(dest, str):
29 raise ValueError('dest must be string if no prefix')
29 raise ValueError('dest must be string if no prefix')
30 prefix = os.path.basename(dest)
30 prefix = os.path.basename(dest)
31 lower = prefix.lower()
31 lower = prefix.lower()
32 for sfx in exts.get(kind, []):
32 for sfx in exts.get(kind, []):
33 if lower.endswith(sfx):
33 if lower.endswith(sfx):
34 prefix = prefix[:-len(sfx)]
34 prefix = prefix[:-len(sfx)]
35 break
35 break
36 lpfx = os.path.normpath(util.localpath(prefix))
36 lpfx = os.path.normpath(util.localpath(prefix))
37 prefix = util.pconvert(lpfx)
37 prefix = util.pconvert(lpfx)
38 if not prefix.endswith('/'):
38 if not prefix.endswith('/'):
39 prefix += '/'
39 prefix += '/'
40 # Drop the leading '.' path component if present, so Windows can read the
40 # Drop the leading '.' path component if present, so Windows can read the
41 # zip files (issue4634)
41 # zip files (issue4634)
42 if prefix.startswith('./'):
42 if prefix.startswith('./'):
43 prefix = prefix[2:]
43 prefix = prefix[2:]
44 if prefix.startswith('../') or os.path.isabs(lpfx) or '/../' in prefix:
44 if prefix.startswith('../') or os.path.isabs(lpfx) or '/../' in prefix:
45 raise util.Abort(_('archive prefix contains illegal components'))
45 raise util.Abort(_('archive prefix contains illegal components'))
46 return prefix
46 return prefix
47
47
48 exts = {
48 exts = {
49 'tar': ['.tar'],
49 'tar': ['.tar'],
50 'tbz2': ['.tbz2', '.tar.bz2'],
50 'tbz2': ['.tbz2', '.tar.bz2'],
51 'tgz': ['.tgz', '.tar.gz'],
51 'tgz': ['.tgz', '.tar.gz'],
52 'zip': ['.zip'],
52 'zip': ['.zip'],
53 }
53 }
54
54
55 def guesskind(dest):
55 def guesskind(dest):
56 for kind, extensions in exts.iteritems():
56 for kind, extensions in exts.iteritems():
57 if any(dest.endswith(ext) for ext in extensions):
57 if any(dest.endswith(ext) for ext in extensions):
58 return kind
58 return kind
59 return None
59 return None
60
60
61 def _rootctx(repo):
61 def _rootctx(repo):
62 # repo[0] may be hidden
62 # repo[0] may be hidden
63 for rev in repo:
63 for rev in repo:
64 return repo[rev]
64 return repo[rev]
65 return repo['null']
65 return repo['null']
66
66
67 def buildmetadata(ctx):
67 def buildmetadata(ctx):
68 '''build content of .hg_archival.txt'''
68 '''build content of .hg_archival.txt'''
69 repo = ctx.repo()
69 repo = ctx.repo()
70 hex = ctx.hex()
70 hex = ctx.hex()
71 if ctx.rev() is None:
71 if ctx.rev() is None:
72 hex = ctx.p1().hex()
72 hex = ctx.p1().hex()
73 if ctx.dirty():
73 if ctx.dirty():
74 hex += '+'
74 hex += '+'
75
75
76 base = 'repo: %s\nnode: %s\nbranch: %s\n' % (
76 base = 'repo: %s\nnode: %s\nbranch: %s\n' % (
77 _rootctx(repo).hex(), hex, encoding.fromlocal(ctx.branch()))
77 _rootctx(repo).hex(), hex, encoding.fromlocal(ctx.branch()))
78
78
79 tags = ''.join('tag: %s\n' % t for t in ctx.tags()
79 tags = ''.join('tag: %s\n' % t for t in ctx.tags()
80 if repo.tagtype(t) == 'global')
80 if repo.tagtype(t) == 'global')
81 if not tags:
81 if not tags:
82 repo.ui.pushbuffer()
82 repo.ui.pushbuffer()
83 opts = {'template': '{latesttag}\n{latesttagdistance}',
83 opts = {'template': '{latesttag}\n{latesttagdistance}',
84 'style': '', 'patch': None, 'git': None}
84 'style': '', 'patch': None, 'git': None}
85 cmdutil.show_changeset(repo.ui, repo, opts).show(ctx)
85 cmdutil.show_changeset(repo.ui, repo, opts).show(ctx)
86 ltags, dist = repo.ui.popbuffer().split('\n')
86 ltags, dist = repo.ui.popbuffer().split('\n')
87 ltags = ltags.split(':')
87 ltags = ltags.split(':')
88 changessince = len(repo.revs('only(.,%s)', ltags[0]))
88 # XXX: ctx.rev() needs to be handled differently with wdir()
89 changessince = len(repo.revs('only(%d,%s)', ctx.rev(), ltags[0]))
89 tags = ''.join('latesttag: %s\n' % t for t in ltags)
90 tags = ''.join('latesttag: %s\n' % t for t in ltags)
90 tags += 'latesttagdistance: %s\n' % dist
91 tags += 'latesttagdistance: %s\n' % dist
91 tags += 'changessincelatesttag: %s\n' % changessince
92 tags += 'changessincelatesttag: %s\n' % changessince
92
93
93 return base + tags
94 return base + tags
94
95
95 class tarit(object):
96 class tarit(object):
96 '''write archive to tar file or stream. can write uncompressed,
97 '''write archive to tar file or stream. can write uncompressed,
97 or compress with gzip or bzip2.'''
98 or compress with gzip or bzip2.'''
98
99
99 class GzipFileWithTime(gzip.GzipFile):
100 class GzipFileWithTime(gzip.GzipFile):
100
101
101 def __init__(self, *args, **kw):
102 def __init__(self, *args, **kw):
102 timestamp = None
103 timestamp = None
103 if 'timestamp' in kw:
104 if 'timestamp' in kw:
104 timestamp = kw.pop('timestamp')
105 timestamp = kw.pop('timestamp')
105 if timestamp is None:
106 if timestamp is None:
106 self.timestamp = time.time()
107 self.timestamp = time.time()
107 else:
108 else:
108 self.timestamp = timestamp
109 self.timestamp = timestamp
109 gzip.GzipFile.__init__(self, *args, **kw)
110 gzip.GzipFile.__init__(self, *args, **kw)
110
111
111 def _write_gzip_header(self):
112 def _write_gzip_header(self):
112 self.fileobj.write('\037\213') # magic header
113 self.fileobj.write('\037\213') # magic header
113 self.fileobj.write('\010') # compression method
114 self.fileobj.write('\010') # compression method
114 # Python 2.6 introduced self.name and deprecated self.filename
115 # Python 2.6 introduced self.name and deprecated self.filename
115 try:
116 try:
116 fname = self.name
117 fname = self.name
117 except AttributeError:
118 except AttributeError:
118 fname = self.filename
119 fname = self.filename
119 if fname and fname.endswith('.gz'):
120 if fname and fname.endswith('.gz'):
120 fname = fname[:-3]
121 fname = fname[:-3]
121 flags = 0
122 flags = 0
122 if fname:
123 if fname:
123 flags = gzip.FNAME
124 flags = gzip.FNAME
124 self.fileobj.write(chr(flags))
125 self.fileobj.write(chr(flags))
125 gzip.write32u(self.fileobj, long(self.timestamp))
126 gzip.write32u(self.fileobj, long(self.timestamp))
126 self.fileobj.write('\002')
127 self.fileobj.write('\002')
127 self.fileobj.write('\377')
128 self.fileobj.write('\377')
128 if fname:
129 if fname:
129 self.fileobj.write(fname + '\000')
130 self.fileobj.write(fname + '\000')
130
131
131 def __init__(self, dest, mtime, kind=''):
132 def __init__(self, dest, mtime, kind=''):
132 self.mtime = mtime
133 self.mtime = mtime
133 self.fileobj = None
134 self.fileobj = None
134
135
135 def taropen(name, mode, fileobj=None):
136 def taropen(name, mode, fileobj=None):
136 if kind == 'gz':
137 if kind == 'gz':
137 mode = mode[0]
138 mode = mode[0]
138 if not fileobj:
139 if not fileobj:
139 fileobj = open(name, mode + 'b')
140 fileobj = open(name, mode + 'b')
140 gzfileobj = self.GzipFileWithTime(name, mode + 'b',
141 gzfileobj = self.GzipFileWithTime(name, mode + 'b',
141 zlib.Z_BEST_COMPRESSION,
142 zlib.Z_BEST_COMPRESSION,
142 fileobj, timestamp=mtime)
143 fileobj, timestamp=mtime)
143 self.fileobj = gzfileobj
144 self.fileobj = gzfileobj
144 return tarfile.TarFile.taropen(name, mode, gzfileobj)
145 return tarfile.TarFile.taropen(name, mode, gzfileobj)
145 else:
146 else:
146 return tarfile.open(name, mode + kind, fileobj)
147 return tarfile.open(name, mode + kind, fileobj)
147
148
148 if isinstance(dest, str):
149 if isinstance(dest, str):
149 self.z = taropen(dest, mode='w:')
150 self.z = taropen(dest, mode='w:')
150 else:
151 else:
151 # Python 2.5-2.5.1 have a regression that requires a name arg
152 # Python 2.5-2.5.1 have a regression that requires a name arg
152 self.z = taropen(name='', mode='w|', fileobj=dest)
153 self.z = taropen(name='', mode='w|', fileobj=dest)
153
154
154 def addfile(self, name, mode, islink, data):
155 def addfile(self, name, mode, islink, data):
155 i = tarfile.TarInfo(name)
156 i = tarfile.TarInfo(name)
156 i.mtime = self.mtime
157 i.mtime = self.mtime
157 i.size = len(data)
158 i.size = len(data)
158 if islink:
159 if islink:
159 i.type = tarfile.SYMTYPE
160 i.type = tarfile.SYMTYPE
160 i.mode = 0o777
161 i.mode = 0o777
161 i.linkname = data
162 i.linkname = data
162 data = None
163 data = None
163 i.size = 0
164 i.size = 0
164 else:
165 else:
165 i.mode = mode
166 i.mode = mode
166 data = cStringIO.StringIO(data)
167 data = cStringIO.StringIO(data)
167 self.z.addfile(i, data)
168 self.z.addfile(i, data)
168
169
169 def done(self):
170 def done(self):
170 self.z.close()
171 self.z.close()
171 if self.fileobj:
172 if self.fileobj:
172 self.fileobj.close()
173 self.fileobj.close()
173
174
174 class tellable(object):
175 class tellable(object):
175 '''provide tell method for zipfile.ZipFile when writing to http
176 '''provide tell method for zipfile.ZipFile when writing to http
176 response file object.'''
177 response file object.'''
177
178
178 def __init__(self, fp):
179 def __init__(self, fp):
179 self.fp = fp
180 self.fp = fp
180 self.offset = 0
181 self.offset = 0
181
182
182 def __getattr__(self, key):
183 def __getattr__(self, key):
183 return getattr(self.fp, key)
184 return getattr(self.fp, key)
184
185
185 def write(self, s):
186 def write(self, s):
186 self.fp.write(s)
187 self.fp.write(s)
187 self.offset += len(s)
188 self.offset += len(s)
188
189
189 def tell(self):
190 def tell(self):
190 return self.offset
191 return self.offset
191
192
192 class zipit(object):
193 class zipit(object):
193 '''write archive to zip file or stream. can write uncompressed,
194 '''write archive to zip file or stream. can write uncompressed,
194 or compressed with deflate.'''
195 or compressed with deflate.'''
195
196
196 def __init__(self, dest, mtime, compress=True):
197 def __init__(self, dest, mtime, compress=True):
197 if not isinstance(dest, str):
198 if not isinstance(dest, str):
198 try:
199 try:
199 dest.tell()
200 dest.tell()
200 except (AttributeError, IOError):
201 except (AttributeError, IOError):
201 dest = tellable(dest)
202 dest = tellable(dest)
202 self.z = zipfile.ZipFile(dest, 'w',
203 self.z = zipfile.ZipFile(dest, 'w',
203 compress and zipfile.ZIP_DEFLATED or
204 compress and zipfile.ZIP_DEFLATED or
204 zipfile.ZIP_STORED)
205 zipfile.ZIP_STORED)
205
206
206 # Python's zipfile module emits deprecation warnings if we try
207 # Python's zipfile module emits deprecation warnings if we try
207 # to store files with a date before 1980.
208 # to store files with a date before 1980.
208 epoch = 315532800 # calendar.timegm((1980, 1, 1, 0, 0, 0, 1, 1, 0))
209 epoch = 315532800 # calendar.timegm((1980, 1, 1, 0, 0, 0, 1, 1, 0))
209 if mtime < epoch:
210 if mtime < epoch:
210 mtime = epoch
211 mtime = epoch
211
212
212 self.mtime = mtime
213 self.mtime = mtime
213 self.date_time = time.gmtime(mtime)[:6]
214 self.date_time = time.gmtime(mtime)[:6]
214
215
215 def addfile(self, name, mode, islink, data):
216 def addfile(self, name, mode, islink, data):
216 i = zipfile.ZipInfo(name, self.date_time)
217 i = zipfile.ZipInfo(name, self.date_time)
217 i.compress_type = self.z.compression
218 i.compress_type = self.z.compression
218 # unzip will not honor unix file modes unless file creator is
219 # unzip will not honor unix file modes unless file creator is
219 # set to unix (id 3).
220 # set to unix (id 3).
220 i.create_system = 3
221 i.create_system = 3
221 ftype = _UNX_IFREG
222 ftype = _UNX_IFREG
222 if islink:
223 if islink:
223 mode = 0o777
224 mode = 0o777
224 ftype = _UNX_IFLNK
225 ftype = _UNX_IFLNK
225 i.external_attr = (mode | ftype) << 16L
226 i.external_attr = (mode | ftype) << 16L
226 # add "extended-timestamp" extra block, because zip archives
227 # add "extended-timestamp" extra block, because zip archives
227 # without this will be extracted with unexpected timestamp,
228 # without this will be extracted with unexpected timestamp,
228 # if TZ is not configured as GMT
229 # if TZ is not configured as GMT
229 i.extra += struct.pack('<hhBl',
230 i.extra += struct.pack('<hhBl',
230 0x5455, # block type: "extended-timestamp"
231 0x5455, # block type: "extended-timestamp"
231 1 + 4, # size of this block
232 1 + 4, # size of this block
232 1, # "modification time is present"
233 1, # "modification time is present"
233 int(self.mtime)) # last modification (UTC)
234 int(self.mtime)) # last modification (UTC)
234 self.z.writestr(i, data)
235 self.z.writestr(i, data)
235
236
236 def done(self):
237 def done(self):
237 self.z.close()
238 self.z.close()
238
239
239 class fileit(object):
240 class fileit(object):
240 '''write archive as files in directory.'''
241 '''write archive as files in directory.'''
241
242
242 def __init__(self, name, mtime):
243 def __init__(self, name, mtime):
243 self.basedir = name
244 self.basedir = name
244 self.opener = scmutil.opener(self.basedir)
245 self.opener = scmutil.opener(self.basedir)
245
246
246 def addfile(self, name, mode, islink, data):
247 def addfile(self, name, mode, islink, data):
247 if islink:
248 if islink:
248 self.opener.symlink(data, name)
249 self.opener.symlink(data, name)
249 return
250 return
250 f = self.opener(name, "w", atomictemp=True)
251 f = self.opener(name, "w", atomictemp=True)
251 f.write(data)
252 f.write(data)
252 f.close()
253 f.close()
253 destfile = os.path.join(self.basedir, name)
254 destfile = os.path.join(self.basedir, name)
254 os.chmod(destfile, mode)
255 os.chmod(destfile, mode)
255
256
256 def done(self):
257 def done(self):
257 pass
258 pass
258
259
259 archivers = {
260 archivers = {
260 'files': fileit,
261 'files': fileit,
261 'tar': tarit,
262 'tar': tarit,
262 'tbz2': lambda name, mtime: tarit(name, mtime, 'bz2'),
263 'tbz2': lambda name, mtime: tarit(name, mtime, 'bz2'),
263 'tgz': lambda name, mtime: tarit(name, mtime, 'gz'),
264 'tgz': lambda name, mtime: tarit(name, mtime, 'gz'),
264 'uzip': lambda name, mtime: zipit(name, mtime, False),
265 'uzip': lambda name, mtime: zipit(name, mtime, False),
265 'zip': zipit,
266 'zip': zipit,
266 }
267 }
267
268
268 def archive(repo, dest, node, kind, decode=True, matchfn=None,
269 def archive(repo, dest, node, kind, decode=True, matchfn=None,
269 prefix='', mtime=None, subrepos=False):
270 prefix='', mtime=None, subrepos=False):
270 '''create archive of repo as it was at node.
271 '''create archive of repo as it was at node.
271
272
272 dest can be name of directory, name of archive file, or file
273 dest can be name of directory, name of archive file, or file
273 object to write archive to.
274 object to write archive to.
274
275
275 kind is type of archive to create.
276 kind is type of archive to create.
276
277
277 decode tells whether to put files through decode filters from
278 decode tells whether to put files through decode filters from
278 hgrc.
279 hgrc.
279
280
280 matchfn is function to filter names of files to write to archive.
281 matchfn is function to filter names of files to write to archive.
281
282
282 prefix is name of path to put before every archive member.'''
283 prefix is name of path to put before every archive member.'''
283
284
284 if kind == 'files':
285 if kind == 'files':
285 if prefix:
286 if prefix:
286 raise util.Abort(_('cannot give prefix when archiving to files'))
287 raise util.Abort(_('cannot give prefix when archiving to files'))
287 else:
288 else:
288 prefix = tidyprefix(dest, kind, prefix)
289 prefix = tidyprefix(dest, kind, prefix)
289
290
290 def write(name, mode, islink, getdata):
291 def write(name, mode, islink, getdata):
291 data = getdata()
292 data = getdata()
292 if decode:
293 if decode:
293 data = repo.wwritedata(name, data)
294 data = repo.wwritedata(name, data)
294 archiver.addfile(prefix + name, mode, islink, data)
295 archiver.addfile(prefix + name, mode, islink, data)
295
296
296 if kind not in archivers:
297 if kind not in archivers:
297 raise util.Abort(_("unknown archive type '%s'") % kind)
298 raise util.Abort(_("unknown archive type '%s'") % kind)
298
299
299 ctx = repo[node]
300 ctx = repo[node]
300 archiver = archivers[kind](dest, mtime or ctx.date()[0])
301 archiver = archivers[kind](dest, mtime or ctx.date()[0])
301
302
302 if repo.ui.configbool("ui", "archivemeta", True):
303 if repo.ui.configbool("ui", "archivemeta", True):
303 name = '.hg_archival.txt'
304 name = '.hg_archival.txt'
304 if not matchfn or matchfn(name):
305 if not matchfn or matchfn(name):
305 write(name, 0o644, False, lambda: buildmetadata(ctx))
306 write(name, 0o644, False, lambda: buildmetadata(ctx))
306
307
307 if matchfn:
308 if matchfn:
308 files = [f for f in ctx.manifest().keys() if matchfn(f)]
309 files = [f for f in ctx.manifest().keys() if matchfn(f)]
309 else:
310 else:
310 files = ctx.manifest().keys()
311 files = ctx.manifest().keys()
311 total = len(files)
312 total = len(files)
312 if total:
313 if total:
313 files.sort()
314 files.sort()
314 repo.ui.progress(_('archiving'), 0, unit=_('files'), total=total)
315 repo.ui.progress(_('archiving'), 0, unit=_('files'), total=total)
315 for i, f in enumerate(files):
316 for i, f in enumerate(files):
316 ff = ctx.flags(f)
317 ff = ctx.flags(f)
317 write(f, 'x' in ff and 0o755 or 0o644, 'l' in ff, ctx[f].data)
318 write(f, 'x' in ff and 0o755 or 0o644, 'l' in ff, ctx[f].data)
318 repo.ui.progress(_('archiving'), i + 1, item=f,
319 repo.ui.progress(_('archiving'), i + 1, item=f,
319 unit=_('files'), total=total)
320 unit=_('files'), total=total)
320 repo.ui.progress(_('archiving'), None)
321 repo.ui.progress(_('archiving'), None)
321
322
322 if subrepos:
323 if subrepos:
323 for subpath in sorted(ctx.substate):
324 for subpath in sorted(ctx.substate):
324 sub = ctx.workingsub(subpath)
325 sub = ctx.workingsub(subpath)
325 submatch = matchmod.narrowmatcher(subpath, matchfn)
326 submatch = matchmod.narrowmatcher(subpath, matchfn)
326 total += sub.archive(archiver, prefix, submatch)
327 total += sub.archive(archiver, prefix, submatch)
327
328
328 if total == 0:
329 if total == 0:
329 raise error.Abort(_('no files match the archive pattern'))
330 raise error.Abort(_('no files match the archive pattern'))
330
331
331 archiver.done()
332 archiver.done()
332 return total
333 return total
@@ -1,2385 +1,2395 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)
92 > tree = revset.parse(expr)
93 > else:
93 > else:
94 > tree = []
94 > tree = []
95 > ui.write('%r\n' % (opts.get('rev', []),))
95 > ui.write('%r\n' % (opts.get('rev', []),))
96 > ui.write(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 "printrevset=`pwd`/printrevset.py" >> $HGRCPATH
105 $ echo "printrevset=`pwd`/printrevset.py" >> $HGRCPATH
106
106
107 $ hg init repo
107 $ hg init repo
108 $ cd repo
108 $ cd repo
109
109
110 Empty repo:
110 Empty repo:
111
111
112 $ hg log -G
112 $ hg log -G
113
113
114
114
115 Building DAG:
115 Building DAG:
116
116
117 $ commit 0 "root"
117 $ commit 0 "root"
118 $ commit 1 "collapse" 0
118 $ commit 1 "collapse" 0
119 $ commit 2 "collapse" 1
119 $ commit 2 "collapse" 1
120 $ commit 3 "collapse" 2
120 $ commit 3 "collapse" 2
121 $ commit 4 "merge two known; one immediate left, one immediate right" 1 3
121 $ commit 4 "merge two known; one immediate left, one immediate right" 1 3
122 $ commit 5 "expand" 3 4
122 $ commit 5 "expand" 3 4
123 $ commit 6 "merge two known; one immediate left, one far left" 2 5
123 $ commit 6 "merge two known; one immediate left, one far left" 2 5
124 $ commit 7 "expand" 2 5
124 $ commit 7 "expand" 2 5
125 $ commit 8 "merge two known; one immediate left, one far right" 0 7
125 $ commit 8 "merge two known; one immediate left, one far right" 0 7
126 $ commit 9 "expand" 7 8
126 $ commit 9 "expand" 7 8
127 $ commit 10 "merge two known; one immediate left, one near right" 0 6
127 $ commit 10 "merge two known; one immediate left, one near right" 0 6
128 $ commit 11 "expand" 6 10
128 $ commit 11 "expand" 6 10
129 $ commit 12 "merge two known; one immediate right, one far left" 1 9
129 $ commit 12 "merge two known; one immediate right, one far left" 1 9
130 $ commit 13 "expand" 9 11
130 $ commit 13 "expand" 9 11
131 $ commit 14 "merge two known; one immediate right, one far right" 0 12
131 $ commit 14 "merge two known; one immediate right, one far right" 0 12
132 $ commit 15 "expand" 13 14
132 $ commit 15 "expand" 13 14
133 $ commit 16 "merge two known; one immediate right, one near right" 0 1
133 $ commit 16 "merge two known; one immediate right, one near right" 0 1
134 $ commit 17 "expand" 12 16
134 $ commit 17 "expand" 12 16
135 $ commit 18 "merge two known; two far left" 1 15
135 $ commit 18 "merge two known; two far left" 1 15
136 $ commit 19 "expand" 15 17
136 $ commit 19 "expand" 15 17
137 $ commit 20 "merge two known; two far right" 0 18
137 $ commit 20 "merge two known; two far right" 0 18
138 $ commit 21 "expand" 19 20
138 $ commit 21 "expand" 19 20
139 $ commit 22 "merge two known; one far left, one far right" 18 21
139 $ commit 22 "merge two known; one far left, one far right" 18 21
140 $ commit 23 "merge one known; immediate left" 1 22
140 $ commit 23 "merge one known; immediate left" 1 22
141 $ commit 24 "merge one known; immediate right" 0 23
141 $ commit 24 "merge one known; immediate right" 0 23
142 $ commit 25 "merge one known; far left" 21 24
142 $ commit 25 "merge one known; far left" 21 24
143 $ commit 26 "merge one known; far right" 18 25
143 $ commit 26 "merge one known; far right" 18 25
144 $ commit 27 "collapse" 21
144 $ commit 27 "collapse" 21
145 $ commit 28 "merge zero known" 1 26
145 $ commit 28 "merge zero known" 1 26
146 $ commit 29 "regular commit" 0
146 $ commit 29 "regular commit" 0
147 $ commit 30 "expand" 28 29
147 $ commit 30 "expand" 28 29
148 $ commit 31 "expand" 21 30
148 $ commit 31 "expand" 21 30
149 $ commit 32 "expand" 27 31
149 $ commit 32 "expand" 27 31
150 $ commit 33 "head" 18
150 $ commit 33 "head" 18
151 $ commit 34 "head" 32
151 $ commit 34 "head" 32
152
152
153
153
154 $ hg log -G -q
154 $ hg log -G -q
155 @ 34:fea3ac5810e0
155 @ 34:fea3ac5810e0
156 |
156 |
157 | o 33:68608f5145f9
157 | o 33:68608f5145f9
158 | |
158 | |
159 o | 32:d06dffa21a31
159 o | 32:d06dffa21a31
160 |\ \
160 |\ \
161 | o \ 31:621d83e11f67
161 | o \ 31:621d83e11f67
162 | |\ \
162 | |\ \
163 | | o \ 30:6e11cd4b648f
163 | | o \ 30:6e11cd4b648f
164 | | |\ \
164 | | |\ \
165 | | | o | 29:cd9bb2be7593
165 | | | o | 29:cd9bb2be7593
166 | | | | |
166 | | | | |
167 | | o | | 28:44ecd0b9ae99
167 | | o | | 28:44ecd0b9ae99
168 | | |\ \ \
168 | | |\ \ \
169 o | | | | | 27:886ed638191b
169 o | | | | | 27:886ed638191b
170 |/ / / / /
170 |/ / / / /
171 | | o---+ 26:7f25b6c2f0b9
171 | | o---+ 26:7f25b6c2f0b9
172 | | | | |
172 | | | | |
173 +---o | | 25:91da8ed57247
173 +---o | | 25:91da8ed57247
174 | | | | |
174 | | | | |
175 | | o | | 24:a9c19a3d96b7
175 | | o | | 24:a9c19a3d96b7
176 | | |\| |
176 | | |\| |
177 | | o | | 23:a01cddf0766d
177 | | o | | 23:a01cddf0766d
178 | |/| | |
178 | |/| | |
179 +---o---+ 22:e0d9cccacb5d
179 +---o---+ 22:e0d9cccacb5d
180 | | / /
180 | | / /
181 o | | | 21:d42a756af44d
181 o | | | 21:d42a756af44d
182 |\ \ \ \
182 |\ \ \ \
183 | o---+-+ 20:d30ed6450e32
183 | o---+-+ 20:d30ed6450e32
184 | / / /
184 | / / /
185 o | | | 19:31ddc2c1573b
185 o | | | 19:31ddc2c1573b
186 |\ \ \ \
186 |\ \ \ \
187 +---+---o 18:1aa84d96232a
187 +---+---o 18:1aa84d96232a
188 | | | |
188 | | | |
189 | o | | 17:44765d7c06e0
189 | o | | 17:44765d7c06e0
190 | |\ \ \
190 | |\ \ \
191 | | o---+ 16:3677d192927d
191 | | o---+ 16:3677d192927d
192 | | |/ /
192 | | |/ /
193 o | | | 15:1dda3f72782d
193 o | | | 15:1dda3f72782d
194 |\ \ \ \
194 |\ \ \ \
195 | o-----+ 14:8eac370358ef
195 | o-----+ 14:8eac370358ef
196 | |/ / /
196 | |/ / /
197 o | | | 13:22d8966a97e3
197 o | | | 13:22d8966a97e3
198 |\ \ \ \
198 |\ \ \ \
199 +---o | | 12:86b91144a6e9
199 +---o | | 12:86b91144a6e9
200 | | |/ /
200 | | |/ /
201 | o | | 11:832d76e6bdf2
201 | o | | 11:832d76e6bdf2
202 | |\ \ \
202 | |\ \ \
203 | | o---+ 10:74c64d036d72
203 | | o---+ 10:74c64d036d72
204 | |/ / /
204 | |/ / /
205 o | | | 9:7010c0af0a35
205 o | | | 9:7010c0af0a35
206 |\ \ \ \
206 |\ \ \ \
207 | o-----+ 8:7a0b11f71937
207 | o-----+ 8:7a0b11f71937
208 |/ / / /
208 |/ / / /
209 o | | | 7:b632bb1b1224
209 o | | | 7:b632bb1b1224
210 |\ \ \ \
210 |\ \ \ \
211 +---o | | 6:b105a072e251
211 +---o | | 6:b105a072e251
212 | |/ / /
212 | |/ / /
213 | o | | 5:4409d547b708
213 | o | | 5:4409d547b708
214 | |\ \ \
214 | |\ \ \
215 | | o | | 4:26a8bac39d9f
215 | | o | | 4:26a8bac39d9f
216 | |/|/ /
216 | |/|/ /
217 | o / / 3:27eef8ed80b4
217 | o / / 3:27eef8ed80b4
218 |/ / /
218 |/ / /
219 o / / 2:3d9a33b8d1e1
219 o / / 2:3d9a33b8d1e1
220 |/ /
220 |/ /
221 o / 1:6db2ef61d156
221 o / 1:6db2ef61d156
222 |/
222 |/
223 o 0:e6eb3150255d
223 o 0:e6eb3150255d
224
224
225
225
226 $ hg log -G
226 $ hg log -G
227 @ changeset: 34:fea3ac5810e0
227 @ changeset: 34:fea3ac5810e0
228 | tag: tip
228 | tag: tip
229 | parent: 32:d06dffa21a31
229 | parent: 32:d06dffa21a31
230 | user: test
230 | user: test
231 | date: Thu Jan 01 00:00:34 1970 +0000
231 | date: Thu Jan 01 00:00:34 1970 +0000
232 | summary: (34) head
232 | summary: (34) head
233 |
233 |
234 | o changeset: 33:68608f5145f9
234 | o changeset: 33:68608f5145f9
235 | | parent: 18:1aa84d96232a
235 | | parent: 18:1aa84d96232a
236 | | user: test
236 | | user: test
237 | | date: Thu Jan 01 00:00:33 1970 +0000
237 | | date: Thu Jan 01 00:00:33 1970 +0000
238 | | summary: (33) head
238 | | summary: (33) head
239 | |
239 | |
240 o | changeset: 32:d06dffa21a31
240 o | changeset: 32:d06dffa21a31
241 |\ \ parent: 27:886ed638191b
241 |\ \ parent: 27:886ed638191b
242 | | | parent: 31:621d83e11f67
242 | | | parent: 31:621d83e11f67
243 | | | user: test
243 | | | user: test
244 | | | date: Thu Jan 01 00:00:32 1970 +0000
244 | | | date: Thu Jan 01 00:00:32 1970 +0000
245 | | | summary: (32) expand
245 | | | summary: (32) expand
246 | | |
246 | | |
247 | o | changeset: 31:621d83e11f67
247 | o | changeset: 31:621d83e11f67
248 | |\ \ parent: 21:d42a756af44d
248 | |\ \ parent: 21:d42a756af44d
249 | | | | parent: 30:6e11cd4b648f
249 | | | | parent: 30:6e11cd4b648f
250 | | | | user: test
250 | | | | user: test
251 | | | | date: Thu Jan 01 00:00:31 1970 +0000
251 | | | | date: Thu Jan 01 00:00:31 1970 +0000
252 | | | | summary: (31) expand
252 | | | | summary: (31) expand
253 | | | |
253 | | | |
254 | | o | changeset: 30:6e11cd4b648f
254 | | o | changeset: 30:6e11cd4b648f
255 | | |\ \ parent: 28:44ecd0b9ae99
255 | | |\ \ parent: 28:44ecd0b9ae99
256 | | | | | parent: 29:cd9bb2be7593
256 | | | | | parent: 29:cd9bb2be7593
257 | | | | | user: test
257 | | | | | user: test
258 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
258 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
259 | | | | | summary: (30) expand
259 | | | | | summary: (30) expand
260 | | | | |
260 | | | | |
261 | | | o | changeset: 29:cd9bb2be7593
261 | | | o | changeset: 29:cd9bb2be7593
262 | | | | | parent: 0:e6eb3150255d
262 | | | | | parent: 0:e6eb3150255d
263 | | | | | user: test
263 | | | | | user: test
264 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
264 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
265 | | | | | summary: (29) regular commit
265 | | | | | summary: (29) regular commit
266 | | | | |
266 | | | | |
267 | | o | | changeset: 28:44ecd0b9ae99
267 | | o | | changeset: 28:44ecd0b9ae99
268 | | |\ \ \ parent: 1:6db2ef61d156
268 | | |\ \ \ parent: 1:6db2ef61d156
269 | | | | | | parent: 26:7f25b6c2f0b9
269 | | | | | | parent: 26:7f25b6c2f0b9
270 | | | | | | user: test
270 | | | | | | user: test
271 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
271 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
272 | | | | | | summary: (28) merge zero known
272 | | | | | | summary: (28) merge zero known
273 | | | | | |
273 | | | | | |
274 o | | | | | changeset: 27:886ed638191b
274 o | | | | | changeset: 27:886ed638191b
275 |/ / / / / parent: 21:d42a756af44d
275 |/ / / / / parent: 21:d42a756af44d
276 | | | | | user: test
276 | | | | | user: test
277 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
277 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
278 | | | | | summary: (27) collapse
278 | | | | | summary: (27) collapse
279 | | | | |
279 | | | | |
280 | | o---+ changeset: 26:7f25b6c2f0b9
280 | | o---+ changeset: 26:7f25b6c2f0b9
281 | | | | | parent: 18:1aa84d96232a
281 | | | | | parent: 18:1aa84d96232a
282 | | | | | parent: 25:91da8ed57247
282 | | | | | parent: 25:91da8ed57247
283 | | | | | user: test
283 | | | | | user: test
284 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
284 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
285 | | | | | summary: (26) merge one known; far right
285 | | | | | summary: (26) merge one known; far right
286 | | | | |
286 | | | | |
287 +---o | | changeset: 25:91da8ed57247
287 +---o | | changeset: 25:91da8ed57247
288 | | | | | parent: 21:d42a756af44d
288 | | | | | parent: 21:d42a756af44d
289 | | | | | parent: 24:a9c19a3d96b7
289 | | | | | parent: 24:a9c19a3d96b7
290 | | | | | user: test
290 | | | | | user: test
291 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
291 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
292 | | | | | summary: (25) merge one known; far left
292 | | | | | summary: (25) merge one known; far left
293 | | | | |
293 | | | | |
294 | | o | | changeset: 24:a9c19a3d96b7
294 | | o | | changeset: 24:a9c19a3d96b7
295 | | |\| | parent: 0:e6eb3150255d
295 | | |\| | parent: 0:e6eb3150255d
296 | | | | | parent: 23:a01cddf0766d
296 | | | | | parent: 23:a01cddf0766d
297 | | | | | user: test
297 | | | | | user: test
298 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
298 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
299 | | | | | summary: (24) merge one known; immediate right
299 | | | | | summary: (24) merge one known; immediate right
300 | | | | |
300 | | | | |
301 | | o | | changeset: 23:a01cddf0766d
301 | | o | | changeset: 23:a01cddf0766d
302 | |/| | | parent: 1:6db2ef61d156
302 | |/| | | parent: 1:6db2ef61d156
303 | | | | | parent: 22:e0d9cccacb5d
303 | | | | | parent: 22:e0d9cccacb5d
304 | | | | | user: test
304 | | | | | user: test
305 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
305 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
306 | | | | | summary: (23) merge one known; immediate left
306 | | | | | summary: (23) merge one known; immediate left
307 | | | | |
307 | | | | |
308 +---o---+ changeset: 22:e0d9cccacb5d
308 +---o---+ changeset: 22:e0d9cccacb5d
309 | | | | parent: 18:1aa84d96232a
309 | | | | parent: 18:1aa84d96232a
310 | | / / parent: 21:d42a756af44d
310 | | / / parent: 21:d42a756af44d
311 | | | | user: test
311 | | | | user: test
312 | | | | date: Thu Jan 01 00:00:22 1970 +0000
312 | | | | date: Thu Jan 01 00:00:22 1970 +0000
313 | | | | summary: (22) merge two known; one far left, one far right
313 | | | | summary: (22) merge two known; one far left, one far right
314 | | | |
314 | | | |
315 o | | | changeset: 21:d42a756af44d
315 o | | | changeset: 21:d42a756af44d
316 |\ \ \ \ parent: 19:31ddc2c1573b
316 |\ \ \ \ parent: 19:31ddc2c1573b
317 | | | | | parent: 20:d30ed6450e32
317 | | | | | parent: 20:d30ed6450e32
318 | | | | | user: test
318 | | | | | user: test
319 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
319 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
320 | | | | | summary: (21) expand
320 | | | | | summary: (21) expand
321 | | | | |
321 | | | | |
322 | o---+-+ changeset: 20:d30ed6450e32
322 | o---+-+ changeset: 20:d30ed6450e32
323 | | | | parent: 0:e6eb3150255d
323 | | | | parent: 0:e6eb3150255d
324 | / / / parent: 18:1aa84d96232a
324 | / / / parent: 18:1aa84d96232a
325 | | | | user: test
325 | | | | user: test
326 | | | | date: Thu Jan 01 00:00:20 1970 +0000
326 | | | | date: Thu Jan 01 00:00:20 1970 +0000
327 | | | | summary: (20) merge two known; two far right
327 | | | | summary: (20) merge two known; two far right
328 | | | |
328 | | | |
329 o | | | changeset: 19:31ddc2c1573b
329 o | | | changeset: 19:31ddc2c1573b
330 |\ \ \ \ parent: 15:1dda3f72782d
330 |\ \ \ \ parent: 15:1dda3f72782d
331 | | | | | parent: 17:44765d7c06e0
331 | | | | | parent: 17:44765d7c06e0
332 | | | | | user: test
332 | | | | | user: test
333 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
333 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
334 | | | | | summary: (19) expand
334 | | | | | summary: (19) expand
335 | | | | |
335 | | | | |
336 +---+---o changeset: 18:1aa84d96232a
336 +---+---o changeset: 18:1aa84d96232a
337 | | | | parent: 1:6db2ef61d156
337 | | | | parent: 1:6db2ef61d156
338 | | | | parent: 15:1dda3f72782d
338 | | | | parent: 15:1dda3f72782d
339 | | | | user: test
339 | | | | user: test
340 | | | | date: Thu Jan 01 00:00:18 1970 +0000
340 | | | | date: Thu Jan 01 00:00:18 1970 +0000
341 | | | | summary: (18) merge two known; two far left
341 | | | | summary: (18) merge two known; two far left
342 | | | |
342 | | | |
343 | o | | changeset: 17:44765d7c06e0
343 | o | | changeset: 17:44765d7c06e0
344 | |\ \ \ parent: 12:86b91144a6e9
344 | |\ \ \ parent: 12:86b91144a6e9
345 | | | | | parent: 16:3677d192927d
345 | | | | | parent: 16:3677d192927d
346 | | | | | user: test
346 | | | | | user: test
347 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
347 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
348 | | | | | summary: (17) expand
348 | | | | | summary: (17) expand
349 | | | | |
349 | | | | |
350 | | o---+ changeset: 16:3677d192927d
350 | | o---+ changeset: 16:3677d192927d
351 | | | | | parent: 0:e6eb3150255d
351 | | | | | parent: 0:e6eb3150255d
352 | | |/ / parent: 1:6db2ef61d156
352 | | |/ / parent: 1:6db2ef61d156
353 | | | | user: test
353 | | | | user: test
354 | | | | date: Thu Jan 01 00:00:16 1970 +0000
354 | | | | date: Thu Jan 01 00:00:16 1970 +0000
355 | | | | summary: (16) merge two known; one immediate right, one near right
355 | | | | summary: (16) merge two known; one immediate right, one near right
356 | | | |
356 | | | |
357 o | | | changeset: 15:1dda3f72782d
357 o | | | changeset: 15:1dda3f72782d
358 |\ \ \ \ parent: 13:22d8966a97e3
358 |\ \ \ \ parent: 13:22d8966a97e3
359 | | | | | parent: 14:8eac370358ef
359 | | | | | parent: 14:8eac370358ef
360 | | | | | user: test
360 | | | | | user: test
361 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
361 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
362 | | | | | summary: (15) expand
362 | | | | | summary: (15) expand
363 | | | | |
363 | | | | |
364 | o-----+ changeset: 14:8eac370358ef
364 | o-----+ changeset: 14:8eac370358ef
365 | | | | | parent: 0:e6eb3150255d
365 | | | | | parent: 0:e6eb3150255d
366 | |/ / / parent: 12:86b91144a6e9
366 | |/ / / parent: 12:86b91144a6e9
367 | | | | user: test
367 | | | | user: test
368 | | | | date: Thu Jan 01 00:00:14 1970 +0000
368 | | | | date: Thu Jan 01 00:00:14 1970 +0000
369 | | | | summary: (14) merge two known; one immediate right, one far right
369 | | | | summary: (14) merge two known; one immediate right, one far right
370 | | | |
370 | | | |
371 o | | | changeset: 13:22d8966a97e3
371 o | | | changeset: 13:22d8966a97e3
372 |\ \ \ \ parent: 9:7010c0af0a35
372 |\ \ \ \ parent: 9:7010c0af0a35
373 | | | | | parent: 11:832d76e6bdf2
373 | | | | | parent: 11:832d76e6bdf2
374 | | | | | user: test
374 | | | | | user: test
375 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
375 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
376 | | | | | summary: (13) expand
376 | | | | | summary: (13) expand
377 | | | | |
377 | | | | |
378 +---o | | changeset: 12:86b91144a6e9
378 +---o | | changeset: 12:86b91144a6e9
379 | | |/ / parent: 1:6db2ef61d156
379 | | |/ / parent: 1:6db2ef61d156
380 | | | | parent: 9:7010c0af0a35
380 | | | | parent: 9:7010c0af0a35
381 | | | | user: test
381 | | | | user: test
382 | | | | date: Thu Jan 01 00:00:12 1970 +0000
382 | | | | date: Thu Jan 01 00:00:12 1970 +0000
383 | | | | summary: (12) merge two known; one immediate right, one far left
383 | | | | summary: (12) merge two known; one immediate right, one far left
384 | | | |
384 | | | |
385 | o | | changeset: 11:832d76e6bdf2
385 | o | | changeset: 11:832d76e6bdf2
386 | |\ \ \ parent: 6:b105a072e251
386 | |\ \ \ parent: 6:b105a072e251
387 | | | | | parent: 10:74c64d036d72
387 | | | | | parent: 10:74c64d036d72
388 | | | | | user: test
388 | | | | | user: test
389 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
389 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
390 | | | | | summary: (11) expand
390 | | | | | summary: (11) expand
391 | | | | |
391 | | | | |
392 | | o---+ changeset: 10:74c64d036d72
392 | | o---+ changeset: 10:74c64d036d72
393 | | | | | parent: 0:e6eb3150255d
393 | | | | | parent: 0:e6eb3150255d
394 | |/ / / parent: 6:b105a072e251
394 | |/ / / parent: 6:b105a072e251
395 | | | | user: test
395 | | | | user: test
396 | | | | date: Thu Jan 01 00:00:10 1970 +0000
396 | | | | date: Thu Jan 01 00:00:10 1970 +0000
397 | | | | summary: (10) merge two known; one immediate left, one near right
397 | | | | summary: (10) merge two known; one immediate left, one near right
398 | | | |
398 | | | |
399 o | | | changeset: 9:7010c0af0a35
399 o | | | changeset: 9:7010c0af0a35
400 |\ \ \ \ parent: 7:b632bb1b1224
400 |\ \ \ \ parent: 7:b632bb1b1224
401 | | | | | parent: 8:7a0b11f71937
401 | | | | | parent: 8:7a0b11f71937
402 | | | | | user: test
402 | | | | | user: test
403 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
403 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
404 | | | | | summary: (9) expand
404 | | | | | summary: (9) expand
405 | | | | |
405 | | | | |
406 | o-----+ changeset: 8:7a0b11f71937
406 | o-----+ changeset: 8:7a0b11f71937
407 | | | | | parent: 0:e6eb3150255d
407 | | | | | parent: 0:e6eb3150255d
408 |/ / / / parent: 7:b632bb1b1224
408 |/ / / / parent: 7:b632bb1b1224
409 | | | | user: test
409 | | | | user: test
410 | | | | date: Thu Jan 01 00:00:08 1970 +0000
410 | | | | date: Thu Jan 01 00:00:08 1970 +0000
411 | | | | summary: (8) merge two known; one immediate left, one far right
411 | | | | summary: (8) merge two known; one immediate left, one far right
412 | | | |
412 | | | |
413 o | | | changeset: 7:b632bb1b1224
413 o | | | changeset: 7:b632bb1b1224
414 |\ \ \ \ parent: 2:3d9a33b8d1e1
414 |\ \ \ \ parent: 2:3d9a33b8d1e1
415 | | | | | parent: 5:4409d547b708
415 | | | | | parent: 5:4409d547b708
416 | | | | | user: test
416 | | | | | user: test
417 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
417 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
418 | | | | | summary: (7) expand
418 | | | | | summary: (7) expand
419 | | | | |
419 | | | | |
420 +---o | | changeset: 6:b105a072e251
420 +---o | | changeset: 6:b105a072e251
421 | |/ / / parent: 2:3d9a33b8d1e1
421 | |/ / / parent: 2:3d9a33b8d1e1
422 | | | | parent: 5:4409d547b708
422 | | | | parent: 5:4409d547b708
423 | | | | user: test
423 | | | | user: test
424 | | | | date: Thu Jan 01 00:00:06 1970 +0000
424 | | | | date: Thu Jan 01 00:00:06 1970 +0000
425 | | | | summary: (6) merge two known; one immediate left, one far left
425 | | | | summary: (6) merge two known; one immediate left, one far left
426 | | | |
426 | | | |
427 | o | | changeset: 5:4409d547b708
427 | o | | changeset: 5:4409d547b708
428 | |\ \ \ parent: 3:27eef8ed80b4
428 | |\ \ \ parent: 3:27eef8ed80b4
429 | | | | | parent: 4:26a8bac39d9f
429 | | | | | parent: 4:26a8bac39d9f
430 | | | | | user: test
430 | | | | | user: test
431 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
431 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
432 | | | | | summary: (5) expand
432 | | | | | summary: (5) expand
433 | | | | |
433 | | | | |
434 | | o | | changeset: 4:26a8bac39d9f
434 | | o | | changeset: 4:26a8bac39d9f
435 | |/|/ / parent: 1:6db2ef61d156
435 | |/|/ / parent: 1:6db2ef61d156
436 | | | | parent: 3:27eef8ed80b4
436 | | | | parent: 3:27eef8ed80b4
437 | | | | user: test
437 | | | | user: test
438 | | | | date: Thu Jan 01 00:00:04 1970 +0000
438 | | | | date: Thu Jan 01 00:00:04 1970 +0000
439 | | | | summary: (4) merge two known; one immediate left, one immediate right
439 | | | | summary: (4) merge two known; one immediate left, one immediate right
440 | | | |
440 | | | |
441 | o | | changeset: 3:27eef8ed80b4
441 | o | | changeset: 3:27eef8ed80b4
442 |/ / / user: test
442 |/ / / user: test
443 | | | date: Thu Jan 01 00:00:03 1970 +0000
443 | | | date: Thu Jan 01 00:00:03 1970 +0000
444 | | | summary: (3) collapse
444 | | | summary: (3) collapse
445 | | |
445 | | |
446 o | | changeset: 2:3d9a33b8d1e1
446 o | | changeset: 2:3d9a33b8d1e1
447 |/ / user: test
447 |/ / user: test
448 | | date: Thu Jan 01 00:00:02 1970 +0000
448 | | date: Thu Jan 01 00:00:02 1970 +0000
449 | | summary: (2) collapse
449 | | summary: (2) collapse
450 | |
450 | |
451 o | changeset: 1:6db2ef61d156
451 o | changeset: 1:6db2ef61d156
452 |/ user: test
452 |/ user: test
453 | date: Thu Jan 01 00:00:01 1970 +0000
453 | date: Thu Jan 01 00:00:01 1970 +0000
454 | summary: (1) collapse
454 | summary: (1) collapse
455 |
455 |
456 o changeset: 0:e6eb3150255d
456 o changeset: 0:e6eb3150255d
457 user: test
457 user: test
458 date: Thu Jan 01 00:00:00 1970 +0000
458 date: Thu Jan 01 00:00:00 1970 +0000
459 summary: (0) root
459 summary: (0) root
460
460
461
461
462 File glog:
462 File glog:
463 $ hg log -G a
463 $ hg log -G a
464 @ changeset: 34:fea3ac5810e0
464 @ changeset: 34:fea3ac5810e0
465 | tag: tip
465 | tag: tip
466 | parent: 32:d06dffa21a31
466 | parent: 32:d06dffa21a31
467 | user: test
467 | user: test
468 | date: Thu Jan 01 00:00:34 1970 +0000
468 | date: Thu Jan 01 00:00:34 1970 +0000
469 | summary: (34) head
469 | summary: (34) head
470 |
470 |
471 | o changeset: 33:68608f5145f9
471 | o changeset: 33:68608f5145f9
472 | | parent: 18:1aa84d96232a
472 | | parent: 18:1aa84d96232a
473 | | user: test
473 | | user: test
474 | | date: Thu Jan 01 00:00:33 1970 +0000
474 | | date: Thu Jan 01 00:00:33 1970 +0000
475 | | summary: (33) head
475 | | summary: (33) head
476 | |
476 | |
477 o | changeset: 32:d06dffa21a31
477 o | changeset: 32:d06dffa21a31
478 |\ \ parent: 27:886ed638191b
478 |\ \ parent: 27:886ed638191b
479 | | | parent: 31:621d83e11f67
479 | | | parent: 31:621d83e11f67
480 | | | user: test
480 | | | user: test
481 | | | date: Thu Jan 01 00:00:32 1970 +0000
481 | | | date: Thu Jan 01 00:00:32 1970 +0000
482 | | | summary: (32) expand
482 | | | summary: (32) expand
483 | | |
483 | | |
484 | o | changeset: 31:621d83e11f67
484 | o | changeset: 31:621d83e11f67
485 | |\ \ parent: 21:d42a756af44d
485 | |\ \ parent: 21:d42a756af44d
486 | | | | parent: 30:6e11cd4b648f
486 | | | | parent: 30:6e11cd4b648f
487 | | | | user: test
487 | | | | user: test
488 | | | | date: Thu Jan 01 00:00:31 1970 +0000
488 | | | | date: Thu Jan 01 00:00:31 1970 +0000
489 | | | | summary: (31) expand
489 | | | | summary: (31) expand
490 | | | |
490 | | | |
491 | | o | changeset: 30:6e11cd4b648f
491 | | o | changeset: 30:6e11cd4b648f
492 | | |\ \ parent: 28:44ecd0b9ae99
492 | | |\ \ parent: 28:44ecd0b9ae99
493 | | | | | parent: 29:cd9bb2be7593
493 | | | | | parent: 29:cd9bb2be7593
494 | | | | | user: test
494 | | | | | user: test
495 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
495 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
496 | | | | | summary: (30) expand
496 | | | | | summary: (30) expand
497 | | | | |
497 | | | | |
498 | | | o | changeset: 29:cd9bb2be7593
498 | | | o | changeset: 29:cd9bb2be7593
499 | | | | | parent: 0:e6eb3150255d
499 | | | | | parent: 0:e6eb3150255d
500 | | | | | user: test
500 | | | | | user: test
501 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
501 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
502 | | | | | summary: (29) regular commit
502 | | | | | summary: (29) regular commit
503 | | | | |
503 | | | | |
504 | | o | | changeset: 28:44ecd0b9ae99
504 | | o | | changeset: 28:44ecd0b9ae99
505 | | |\ \ \ parent: 1:6db2ef61d156
505 | | |\ \ \ parent: 1:6db2ef61d156
506 | | | | | | parent: 26:7f25b6c2f0b9
506 | | | | | | parent: 26:7f25b6c2f0b9
507 | | | | | | user: test
507 | | | | | | user: test
508 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
508 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
509 | | | | | | summary: (28) merge zero known
509 | | | | | | summary: (28) merge zero known
510 | | | | | |
510 | | | | | |
511 o | | | | | changeset: 27:886ed638191b
511 o | | | | | changeset: 27:886ed638191b
512 |/ / / / / parent: 21:d42a756af44d
512 |/ / / / / parent: 21:d42a756af44d
513 | | | | | user: test
513 | | | | | user: test
514 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
514 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
515 | | | | | summary: (27) collapse
515 | | | | | summary: (27) collapse
516 | | | | |
516 | | | | |
517 | | o---+ changeset: 26:7f25b6c2f0b9
517 | | o---+ changeset: 26:7f25b6c2f0b9
518 | | | | | parent: 18:1aa84d96232a
518 | | | | | parent: 18:1aa84d96232a
519 | | | | | parent: 25:91da8ed57247
519 | | | | | parent: 25:91da8ed57247
520 | | | | | user: test
520 | | | | | user: test
521 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
521 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
522 | | | | | summary: (26) merge one known; far right
522 | | | | | summary: (26) merge one known; far right
523 | | | | |
523 | | | | |
524 +---o | | changeset: 25:91da8ed57247
524 +---o | | changeset: 25:91da8ed57247
525 | | | | | parent: 21:d42a756af44d
525 | | | | | parent: 21:d42a756af44d
526 | | | | | parent: 24:a9c19a3d96b7
526 | | | | | parent: 24:a9c19a3d96b7
527 | | | | | user: test
527 | | | | | user: test
528 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
528 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
529 | | | | | summary: (25) merge one known; far left
529 | | | | | summary: (25) merge one known; far left
530 | | | | |
530 | | | | |
531 | | o | | changeset: 24:a9c19a3d96b7
531 | | o | | changeset: 24:a9c19a3d96b7
532 | | |\| | parent: 0:e6eb3150255d
532 | | |\| | parent: 0:e6eb3150255d
533 | | | | | parent: 23:a01cddf0766d
533 | | | | | parent: 23:a01cddf0766d
534 | | | | | user: test
534 | | | | | user: test
535 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
535 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
536 | | | | | summary: (24) merge one known; immediate right
536 | | | | | summary: (24) merge one known; immediate right
537 | | | | |
537 | | | | |
538 | | o | | changeset: 23:a01cddf0766d
538 | | o | | changeset: 23:a01cddf0766d
539 | |/| | | parent: 1:6db2ef61d156
539 | |/| | | parent: 1:6db2ef61d156
540 | | | | | parent: 22:e0d9cccacb5d
540 | | | | | parent: 22:e0d9cccacb5d
541 | | | | | user: test
541 | | | | | user: test
542 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
542 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
543 | | | | | summary: (23) merge one known; immediate left
543 | | | | | summary: (23) merge one known; immediate left
544 | | | | |
544 | | | | |
545 +---o---+ changeset: 22:e0d9cccacb5d
545 +---o---+ changeset: 22:e0d9cccacb5d
546 | | | | parent: 18:1aa84d96232a
546 | | | | parent: 18:1aa84d96232a
547 | | / / parent: 21:d42a756af44d
547 | | / / parent: 21:d42a756af44d
548 | | | | user: test
548 | | | | user: test
549 | | | | date: Thu Jan 01 00:00:22 1970 +0000
549 | | | | date: Thu Jan 01 00:00:22 1970 +0000
550 | | | | summary: (22) merge two known; one far left, one far right
550 | | | | summary: (22) merge two known; one far left, one far right
551 | | | |
551 | | | |
552 o | | | changeset: 21:d42a756af44d
552 o | | | changeset: 21:d42a756af44d
553 |\ \ \ \ parent: 19:31ddc2c1573b
553 |\ \ \ \ parent: 19:31ddc2c1573b
554 | | | | | parent: 20:d30ed6450e32
554 | | | | | parent: 20:d30ed6450e32
555 | | | | | user: test
555 | | | | | user: test
556 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
556 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
557 | | | | | summary: (21) expand
557 | | | | | summary: (21) expand
558 | | | | |
558 | | | | |
559 | o---+-+ changeset: 20:d30ed6450e32
559 | o---+-+ changeset: 20:d30ed6450e32
560 | | | | parent: 0:e6eb3150255d
560 | | | | parent: 0:e6eb3150255d
561 | / / / parent: 18:1aa84d96232a
561 | / / / parent: 18:1aa84d96232a
562 | | | | user: test
562 | | | | user: test
563 | | | | date: Thu Jan 01 00:00:20 1970 +0000
563 | | | | date: Thu Jan 01 00:00:20 1970 +0000
564 | | | | summary: (20) merge two known; two far right
564 | | | | summary: (20) merge two known; two far right
565 | | | |
565 | | | |
566 o | | | changeset: 19:31ddc2c1573b
566 o | | | changeset: 19:31ddc2c1573b
567 |\ \ \ \ parent: 15:1dda3f72782d
567 |\ \ \ \ parent: 15:1dda3f72782d
568 | | | | | parent: 17:44765d7c06e0
568 | | | | | parent: 17:44765d7c06e0
569 | | | | | user: test
569 | | | | | user: test
570 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
570 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
571 | | | | | summary: (19) expand
571 | | | | | summary: (19) expand
572 | | | | |
572 | | | | |
573 +---+---o changeset: 18:1aa84d96232a
573 +---+---o changeset: 18:1aa84d96232a
574 | | | | parent: 1:6db2ef61d156
574 | | | | parent: 1:6db2ef61d156
575 | | | | parent: 15:1dda3f72782d
575 | | | | parent: 15:1dda3f72782d
576 | | | | user: test
576 | | | | user: test
577 | | | | date: Thu Jan 01 00:00:18 1970 +0000
577 | | | | date: Thu Jan 01 00:00:18 1970 +0000
578 | | | | summary: (18) merge two known; two far left
578 | | | | summary: (18) merge two known; two far left
579 | | | |
579 | | | |
580 | o | | changeset: 17:44765d7c06e0
580 | o | | changeset: 17:44765d7c06e0
581 | |\ \ \ parent: 12:86b91144a6e9
581 | |\ \ \ parent: 12:86b91144a6e9
582 | | | | | parent: 16:3677d192927d
582 | | | | | parent: 16:3677d192927d
583 | | | | | user: test
583 | | | | | user: test
584 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
584 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
585 | | | | | summary: (17) expand
585 | | | | | summary: (17) expand
586 | | | | |
586 | | | | |
587 | | o---+ changeset: 16:3677d192927d
587 | | o---+ changeset: 16:3677d192927d
588 | | | | | parent: 0:e6eb3150255d
588 | | | | | parent: 0:e6eb3150255d
589 | | |/ / parent: 1:6db2ef61d156
589 | | |/ / parent: 1:6db2ef61d156
590 | | | | user: test
590 | | | | user: test
591 | | | | date: Thu Jan 01 00:00:16 1970 +0000
591 | | | | date: Thu Jan 01 00:00:16 1970 +0000
592 | | | | summary: (16) merge two known; one immediate right, one near right
592 | | | | summary: (16) merge two known; one immediate right, one near right
593 | | | |
593 | | | |
594 o | | | changeset: 15:1dda3f72782d
594 o | | | changeset: 15:1dda3f72782d
595 |\ \ \ \ parent: 13:22d8966a97e3
595 |\ \ \ \ parent: 13:22d8966a97e3
596 | | | | | parent: 14:8eac370358ef
596 | | | | | parent: 14:8eac370358ef
597 | | | | | user: test
597 | | | | | user: test
598 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
598 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
599 | | | | | summary: (15) expand
599 | | | | | summary: (15) expand
600 | | | | |
600 | | | | |
601 | o-----+ changeset: 14:8eac370358ef
601 | o-----+ changeset: 14:8eac370358ef
602 | | | | | parent: 0:e6eb3150255d
602 | | | | | parent: 0:e6eb3150255d
603 | |/ / / parent: 12:86b91144a6e9
603 | |/ / / parent: 12:86b91144a6e9
604 | | | | user: test
604 | | | | user: test
605 | | | | date: Thu Jan 01 00:00:14 1970 +0000
605 | | | | date: Thu Jan 01 00:00:14 1970 +0000
606 | | | | summary: (14) merge two known; one immediate right, one far right
606 | | | | summary: (14) merge two known; one immediate right, one far right
607 | | | |
607 | | | |
608 o | | | changeset: 13:22d8966a97e3
608 o | | | changeset: 13:22d8966a97e3
609 |\ \ \ \ parent: 9:7010c0af0a35
609 |\ \ \ \ parent: 9:7010c0af0a35
610 | | | | | parent: 11:832d76e6bdf2
610 | | | | | parent: 11:832d76e6bdf2
611 | | | | | user: test
611 | | | | | user: test
612 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
612 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
613 | | | | | summary: (13) expand
613 | | | | | summary: (13) expand
614 | | | | |
614 | | | | |
615 +---o | | changeset: 12:86b91144a6e9
615 +---o | | changeset: 12:86b91144a6e9
616 | | |/ / parent: 1:6db2ef61d156
616 | | |/ / parent: 1:6db2ef61d156
617 | | | | parent: 9:7010c0af0a35
617 | | | | parent: 9:7010c0af0a35
618 | | | | user: test
618 | | | | user: test
619 | | | | date: Thu Jan 01 00:00:12 1970 +0000
619 | | | | date: Thu Jan 01 00:00:12 1970 +0000
620 | | | | summary: (12) merge two known; one immediate right, one far left
620 | | | | summary: (12) merge two known; one immediate right, one far left
621 | | | |
621 | | | |
622 | o | | changeset: 11:832d76e6bdf2
622 | o | | changeset: 11:832d76e6bdf2
623 | |\ \ \ parent: 6:b105a072e251
623 | |\ \ \ parent: 6:b105a072e251
624 | | | | | parent: 10:74c64d036d72
624 | | | | | parent: 10:74c64d036d72
625 | | | | | user: test
625 | | | | | user: test
626 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
626 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
627 | | | | | summary: (11) expand
627 | | | | | summary: (11) expand
628 | | | | |
628 | | | | |
629 | | o---+ changeset: 10:74c64d036d72
629 | | o---+ changeset: 10:74c64d036d72
630 | | | | | parent: 0:e6eb3150255d
630 | | | | | parent: 0:e6eb3150255d
631 | |/ / / parent: 6:b105a072e251
631 | |/ / / parent: 6:b105a072e251
632 | | | | user: test
632 | | | | user: test
633 | | | | date: Thu Jan 01 00:00:10 1970 +0000
633 | | | | date: Thu Jan 01 00:00:10 1970 +0000
634 | | | | summary: (10) merge two known; one immediate left, one near right
634 | | | | summary: (10) merge two known; one immediate left, one near right
635 | | | |
635 | | | |
636 o | | | changeset: 9:7010c0af0a35
636 o | | | changeset: 9:7010c0af0a35
637 |\ \ \ \ parent: 7:b632bb1b1224
637 |\ \ \ \ parent: 7:b632bb1b1224
638 | | | | | parent: 8:7a0b11f71937
638 | | | | | parent: 8:7a0b11f71937
639 | | | | | user: test
639 | | | | | user: test
640 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
640 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
641 | | | | | summary: (9) expand
641 | | | | | summary: (9) expand
642 | | | | |
642 | | | | |
643 | o-----+ changeset: 8:7a0b11f71937
643 | o-----+ changeset: 8:7a0b11f71937
644 | | | | | parent: 0:e6eb3150255d
644 | | | | | parent: 0:e6eb3150255d
645 |/ / / / parent: 7:b632bb1b1224
645 |/ / / / parent: 7:b632bb1b1224
646 | | | | user: test
646 | | | | user: test
647 | | | | date: Thu Jan 01 00:00:08 1970 +0000
647 | | | | date: Thu Jan 01 00:00:08 1970 +0000
648 | | | | summary: (8) merge two known; one immediate left, one far right
648 | | | | summary: (8) merge two known; one immediate left, one far right
649 | | | |
649 | | | |
650 o | | | changeset: 7:b632bb1b1224
650 o | | | changeset: 7:b632bb1b1224
651 |\ \ \ \ parent: 2:3d9a33b8d1e1
651 |\ \ \ \ parent: 2:3d9a33b8d1e1
652 | | | | | parent: 5:4409d547b708
652 | | | | | parent: 5:4409d547b708
653 | | | | | user: test
653 | | | | | user: test
654 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
654 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
655 | | | | | summary: (7) expand
655 | | | | | summary: (7) expand
656 | | | | |
656 | | | | |
657 +---o | | changeset: 6:b105a072e251
657 +---o | | changeset: 6:b105a072e251
658 | |/ / / parent: 2:3d9a33b8d1e1
658 | |/ / / parent: 2:3d9a33b8d1e1
659 | | | | parent: 5:4409d547b708
659 | | | | parent: 5:4409d547b708
660 | | | | user: test
660 | | | | user: test
661 | | | | date: Thu Jan 01 00:00:06 1970 +0000
661 | | | | date: Thu Jan 01 00:00:06 1970 +0000
662 | | | | summary: (6) merge two known; one immediate left, one far left
662 | | | | summary: (6) merge two known; one immediate left, one far left
663 | | | |
663 | | | |
664 | o | | changeset: 5:4409d547b708
664 | o | | changeset: 5:4409d547b708
665 | |\ \ \ parent: 3:27eef8ed80b4
665 | |\ \ \ parent: 3:27eef8ed80b4
666 | | | | | parent: 4:26a8bac39d9f
666 | | | | | parent: 4:26a8bac39d9f
667 | | | | | user: test
667 | | | | | user: test
668 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
668 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
669 | | | | | summary: (5) expand
669 | | | | | summary: (5) expand
670 | | | | |
670 | | | | |
671 | | o | | changeset: 4:26a8bac39d9f
671 | | o | | changeset: 4:26a8bac39d9f
672 | |/|/ / parent: 1:6db2ef61d156
672 | |/|/ / parent: 1:6db2ef61d156
673 | | | | parent: 3:27eef8ed80b4
673 | | | | parent: 3:27eef8ed80b4
674 | | | | user: test
674 | | | | user: test
675 | | | | date: Thu Jan 01 00:00:04 1970 +0000
675 | | | | date: Thu Jan 01 00:00:04 1970 +0000
676 | | | | summary: (4) merge two known; one immediate left, one immediate right
676 | | | | summary: (4) merge two known; one immediate left, one immediate right
677 | | | |
677 | | | |
678 | o | | changeset: 3:27eef8ed80b4
678 | o | | changeset: 3:27eef8ed80b4
679 |/ / / user: test
679 |/ / / user: test
680 | | | date: Thu Jan 01 00:00:03 1970 +0000
680 | | | date: Thu Jan 01 00:00:03 1970 +0000
681 | | | summary: (3) collapse
681 | | | summary: (3) collapse
682 | | |
682 | | |
683 o | | changeset: 2:3d9a33b8d1e1
683 o | | changeset: 2:3d9a33b8d1e1
684 |/ / user: test
684 |/ / user: test
685 | | date: Thu Jan 01 00:00:02 1970 +0000
685 | | date: Thu Jan 01 00:00:02 1970 +0000
686 | | summary: (2) collapse
686 | | summary: (2) collapse
687 | |
687 | |
688 o | changeset: 1:6db2ef61d156
688 o | changeset: 1:6db2ef61d156
689 |/ user: test
689 |/ user: test
690 | date: Thu Jan 01 00:00:01 1970 +0000
690 | date: Thu Jan 01 00:00:01 1970 +0000
691 | summary: (1) collapse
691 | summary: (1) collapse
692 |
692 |
693 o changeset: 0:e6eb3150255d
693 o changeset: 0:e6eb3150255d
694 user: test
694 user: test
695 date: Thu Jan 01 00:00:00 1970 +0000
695 date: Thu Jan 01 00:00:00 1970 +0000
696 summary: (0) root
696 summary: (0) root
697
697
698
698
699 File glog per revset:
699 File glog per revset:
700
700
701 $ hg log -G -r 'file("a")'
701 $ hg log -G -r 'file("a")'
702 @ changeset: 34:fea3ac5810e0
702 @ changeset: 34:fea3ac5810e0
703 | tag: tip
703 | tag: tip
704 | parent: 32:d06dffa21a31
704 | parent: 32:d06dffa21a31
705 | user: test
705 | user: test
706 | date: Thu Jan 01 00:00:34 1970 +0000
706 | date: Thu Jan 01 00:00:34 1970 +0000
707 | summary: (34) head
707 | summary: (34) head
708 |
708 |
709 | o changeset: 33:68608f5145f9
709 | o changeset: 33:68608f5145f9
710 | | parent: 18:1aa84d96232a
710 | | parent: 18:1aa84d96232a
711 | | user: test
711 | | user: test
712 | | date: Thu Jan 01 00:00:33 1970 +0000
712 | | date: Thu Jan 01 00:00:33 1970 +0000
713 | | summary: (33) head
713 | | summary: (33) head
714 | |
714 | |
715 o | changeset: 32:d06dffa21a31
715 o | changeset: 32:d06dffa21a31
716 |\ \ parent: 27:886ed638191b
716 |\ \ parent: 27:886ed638191b
717 | | | parent: 31:621d83e11f67
717 | | | parent: 31:621d83e11f67
718 | | | user: test
718 | | | user: test
719 | | | date: Thu Jan 01 00:00:32 1970 +0000
719 | | | date: Thu Jan 01 00:00:32 1970 +0000
720 | | | summary: (32) expand
720 | | | summary: (32) expand
721 | | |
721 | | |
722 | o | changeset: 31:621d83e11f67
722 | o | changeset: 31:621d83e11f67
723 | |\ \ parent: 21:d42a756af44d
723 | |\ \ parent: 21:d42a756af44d
724 | | | | parent: 30:6e11cd4b648f
724 | | | | parent: 30:6e11cd4b648f
725 | | | | user: test
725 | | | | user: test
726 | | | | date: Thu Jan 01 00:00:31 1970 +0000
726 | | | | date: Thu Jan 01 00:00:31 1970 +0000
727 | | | | summary: (31) expand
727 | | | | summary: (31) expand
728 | | | |
728 | | | |
729 | | o | changeset: 30:6e11cd4b648f
729 | | o | changeset: 30:6e11cd4b648f
730 | | |\ \ parent: 28:44ecd0b9ae99
730 | | |\ \ parent: 28:44ecd0b9ae99
731 | | | | | parent: 29:cd9bb2be7593
731 | | | | | parent: 29:cd9bb2be7593
732 | | | | | user: test
732 | | | | | user: test
733 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
733 | | | | | date: Thu Jan 01 00:00:30 1970 +0000
734 | | | | | summary: (30) expand
734 | | | | | summary: (30) expand
735 | | | | |
735 | | | | |
736 | | | o | changeset: 29:cd9bb2be7593
736 | | | o | changeset: 29:cd9bb2be7593
737 | | | | | parent: 0:e6eb3150255d
737 | | | | | parent: 0:e6eb3150255d
738 | | | | | user: test
738 | | | | | user: test
739 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
739 | | | | | date: Thu Jan 01 00:00:29 1970 +0000
740 | | | | | summary: (29) regular commit
740 | | | | | summary: (29) regular commit
741 | | | | |
741 | | | | |
742 | | o | | changeset: 28:44ecd0b9ae99
742 | | o | | changeset: 28:44ecd0b9ae99
743 | | |\ \ \ parent: 1:6db2ef61d156
743 | | |\ \ \ parent: 1:6db2ef61d156
744 | | | | | | parent: 26:7f25b6c2f0b9
744 | | | | | | parent: 26:7f25b6c2f0b9
745 | | | | | | user: test
745 | | | | | | user: test
746 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
746 | | | | | | date: Thu Jan 01 00:00:28 1970 +0000
747 | | | | | | summary: (28) merge zero known
747 | | | | | | summary: (28) merge zero known
748 | | | | | |
748 | | | | | |
749 o | | | | | changeset: 27:886ed638191b
749 o | | | | | changeset: 27:886ed638191b
750 |/ / / / / parent: 21:d42a756af44d
750 |/ / / / / parent: 21:d42a756af44d
751 | | | | | user: test
751 | | | | | user: test
752 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
752 | | | | | date: Thu Jan 01 00:00:27 1970 +0000
753 | | | | | summary: (27) collapse
753 | | | | | summary: (27) collapse
754 | | | | |
754 | | | | |
755 | | o---+ changeset: 26:7f25b6c2f0b9
755 | | o---+ changeset: 26:7f25b6c2f0b9
756 | | | | | parent: 18:1aa84d96232a
756 | | | | | parent: 18:1aa84d96232a
757 | | | | | parent: 25:91da8ed57247
757 | | | | | parent: 25:91da8ed57247
758 | | | | | user: test
758 | | | | | user: test
759 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
759 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
760 | | | | | summary: (26) merge one known; far right
760 | | | | | summary: (26) merge one known; far right
761 | | | | |
761 | | | | |
762 +---o | | changeset: 25:91da8ed57247
762 +---o | | changeset: 25:91da8ed57247
763 | | | | | parent: 21:d42a756af44d
763 | | | | | parent: 21:d42a756af44d
764 | | | | | parent: 24:a9c19a3d96b7
764 | | | | | parent: 24:a9c19a3d96b7
765 | | | | | user: test
765 | | | | | user: test
766 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
766 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
767 | | | | | summary: (25) merge one known; far left
767 | | | | | summary: (25) merge one known; far left
768 | | | | |
768 | | | | |
769 | | o | | changeset: 24:a9c19a3d96b7
769 | | o | | changeset: 24:a9c19a3d96b7
770 | | |\| | parent: 0:e6eb3150255d
770 | | |\| | parent: 0:e6eb3150255d
771 | | | | | parent: 23:a01cddf0766d
771 | | | | | parent: 23:a01cddf0766d
772 | | | | | user: test
772 | | | | | user: test
773 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
773 | | | | | date: Thu Jan 01 00:00:24 1970 +0000
774 | | | | | summary: (24) merge one known; immediate right
774 | | | | | summary: (24) merge one known; immediate right
775 | | | | |
775 | | | | |
776 | | o | | changeset: 23:a01cddf0766d
776 | | o | | changeset: 23:a01cddf0766d
777 | |/| | | parent: 1:6db2ef61d156
777 | |/| | | parent: 1:6db2ef61d156
778 | | | | | parent: 22:e0d9cccacb5d
778 | | | | | parent: 22:e0d9cccacb5d
779 | | | | | user: test
779 | | | | | user: test
780 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
780 | | | | | date: Thu Jan 01 00:00:23 1970 +0000
781 | | | | | summary: (23) merge one known; immediate left
781 | | | | | summary: (23) merge one known; immediate left
782 | | | | |
782 | | | | |
783 +---o---+ changeset: 22:e0d9cccacb5d
783 +---o---+ changeset: 22:e0d9cccacb5d
784 | | | | parent: 18:1aa84d96232a
784 | | | | parent: 18:1aa84d96232a
785 | | / / parent: 21:d42a756af44d
785 | | / / parent: 21:d42a756af44d
786 | | | | user: test
786 | | | | user: test
787 | | | | date: Thu Jan 01 00:00:22 1970 +0000
787 | | | | date: Thu Jan 01 00:00:22 1970 +0000
788 | | | | summary: (22) merge two known; one far left, one far right
788 | | | | summary: (22) merge two known; one far left, one far right
789 | | | |
789 | | | |
790 o | | | changeset: 21:d42a756af44d
790 o | | | changeset: 21:d42a756af44d
791 |\ \ \ \ parent: 19:31ddc2c1573b
791 |\ \ \ \ parent: 19:31ddc2c1573b
792 | | | | | parent: 20:d30ed6450e32
792 | | | | | parent: 20:d30ed6450e32
793 | | | | | user: test
793 | | | | | user: test
794 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
794 | | | | | date: Thu Jan 01 00:00:21 1970 +0000
795 | | | | | summary: (21) expand
795 | | | | | summary: (21) expand
796 | | | | |
796 | | | | |
797 | o---+-+ changeset: 20:d30ed6450e32
797 | o---+-+ changeset: 20:d30ed6450e32
798 | | | | parent: 0:e6eb3150255d
798 | | | | parent: 0:e6eb3150255d
799 | / / / parent: 18:1aa84d96232a
799 | / / / parent: 18:1aa84d96232a
800 | | | | user: test
800 | | | | user: test
801 | | | | date: Thu Jan 01 00:00:20 1970 +0000
801 | | | | date: Thu Jan 01 00:00:20 1970 +0000
802 | | | | summary: (20) merge two known; two far right
802 | | | | summary: (20) merge two known; two far right
803 | | | |
803 | | | |
804 o | | | changeset: 19:31ddc2c1573b
804 o | | | changeset: 19:31ddc2c1573b
805 |\ \ \ \ parent: 15:1dda3f72782d
805 |\ \ \ \ parent: 15:1dda3f72782d
806 | | | | | parent: 17:44765d7c06e0
806 | | | | | parent: 17:44765d7c06e0
807 | | | | | user: test
807 | | | | | user: test
808 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
808 | | | | | date: Thu Jan 01 00:00:19 1970 +0000
809 | | | | | summary: (19) expand
809 | | | | | summary: (19) expand
810 | | | | |
810 | | | | |
811 +---+---o changeset: 18:1aa84d96232a
811 +---+---o changeset: 18:1aa84d96232a
812 | | | | parent: 1:6db2ef61d156
812 | | | | parent: 1:6db2ef61d156
813 | | | | parent: 15:1dda3f72782d
813 | | | | parent: 15:1dda3f72782d
814 | | | | user: test
814 | | | | user: test
815 | | | | date: Thu Jan 01 00:00:18 1970 +0000
815 | | | | date: Thu Jan 01 00:00:18 1970 +0000
816 | | | | summary: (18) merge two known; two far left
816 | | | | summary: (18) merge two known; two far left
817 | | | |
817 | | | |
818 | o | | changeset: 17:44765d7c06e0
818 | o | | changeset: 17:44765d7c06e0
819 | |\ \ \ parent: 12:86b91144a6e9
819 | |\ \ \ parent: 12:86b91144a6e9
820 | | | | | parent: 16:3677d192927d
820 | | | | | parent: 16:3677d192927d
821 | | | | | user: test
821 | | | | | user: test
822 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
822 | | | | | date: Thu Jan 01 00:00:17 1970 +0000
823 | | | | | summary: (17) expand
823 | | | | | summary: (17) expand
824 | | | | |
824 | | | | |
825 | | o---+ changeset: 16:3677d192927d
825 | | o---+ changeset: 16:3677d192927d
826 | | | | | parent: 0:e6eb3150255d
826 | | | | | parent: 0:e6eb3150255d
827 | | |/ / parent: 1:6db2ef61d156
827 | | |/ / parent: 1:6db2ef61d156
828 | | | | user: test
828 | | | | user: test
829 | | | | date: Thu Jan 01 00:00:16 1970 +0000
829 | | | | date: Thu Jan 01 00:00:16 1970 +0000
830 | | | | summary: (16) merge two known; one immediate right, one near right
830 | | | | summary: (16) merge two known; one immediate right, one near right
831 | | | |
831 | | | |
832 o | | | changeset: 15:1dda3f72782d
832 o | | | changeset: 15:1dda3f72782d
833 |\ \ \ \ parent: 13:22d8966a97e3
833 |\ \ \ \ parent: 13:22d8966a97e3
834 | | | | | parent: 14:8eac370358ef
834 | | | | | parent: 14:8eac370358ef
835 | | | | | user: test
835 | | | | | user: test
836 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
836 | | | | | date: Thu Jan 01 00:00:15 1970 +0000
837 | | | | | summary: (15) expand
837 | | | | | summary: (15) expand
838 | | | | |
838 | | | | |
839 | o-----+ changeset: 14:8eac370358ef
839 | o-----+ changeset: 14:8eac370358ef
840 | | | | | parent: 0:e6eb3150255d
840 | | | | | parent: 0:e6eb3150255d
841 | |/ / / parent: 12:86b91144a6e9
841 | |/ / / parent: 12:86b91144a6e9
842 | | | | user: test
842 | | | | user: test
843 | | | | date: Thu Jan 01 00:00:14 1970 +0000
843 | | | | date: Thu Jan 01 00:00:14 1970 +0000
844 | | | | summary: (14) merge two known; one immediate right, one far right
844 | | | | summary: (14) merge two known; one immediate right, one far right
845 | | | |
845 | | | |
846 o | | | changeset: 13:22d8966a97e3
846 o | | | changeset: 13:22d8966a97e3
847 |\ \ \ \ parent: 9:7010c0af0a35
847 |\ \ \ \ parent: 9:7010c0af0a35
848 | | | | | parent: 11:832d76e6bdf2
848 | | | | | parent: 11:832d76e6bdf2
849 | | | | | user: test
849 | | | | | user: test
850 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
850 | | | | | date: Thu Jan 01 00:00:13 1970 +0000
851 | | | | | summary: (13) expand
851 | | | | | summary: (13) expand
852 | | | | |
852 | | | | |
853 +---o | | changeset: 12:86b91144a6e9
853 +---o | | changeset: 12:86b91144a6e9
854 | | |/ / parent: 1:6db2ef61d156
854 | | |/ / parent: 1:6db2ef61d156
855 | | | | parent: 9:7010c0af0a35
855 | | | | parent: 9:7010c0af0a35
856 | | | | user: test
856 | | | | user: test
857 | | | | date: Thu Jan 01 00:00:12 1970 +0000
857 | | | | date: Thu Jan 01 00:00:12 1970 +0000
858 | | | | summary: (12) merge two known; one immediate right, one far left
858 | | | | summary: (12) merge two known; one immediate right, one far left
859 | | | |
859 | | | |
860 | o | | changeset: 11:832d76e6bdf2
860 | o | | changeset: 11:832d76e6bdf2
861 | |\ \ \ parent: 6:b105a072e251
861 | |\ \ \ parent: 6:b105a072e251
862 | | | | | parent: 10:74c64d036d72
862 | | | | | parent: 10:74c64d036d72
863 | | | | | user: test
863 | | | | | user: test
864 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
864 | | | | | date: Thu Jan 01 00:00:11 1970 +0000
865 | | | | | summary: (11) expand
865 | | | | | summary: (11) expand
866 | | | | |
866 | | | | |
867 | | o---+ changeset: 10:74c64d036d72
867 | | o---+ changeset: 10:74c64d036d72
868 | | | | | parent: 0:e6eb3150255d
868 | | | | | parent: 0:e6eb3150255d
869 | |/ / / parent: 6:b105a072e251
869 | |/ / / parent: 6:b105a072e251
870 | | | | user: test
870 | | | | user: test
871 | | | | date: Thu Jan 01 00:00:10 1970 +0000
871 | | | | date: Thu Jan 01 00:00:10 1970 +0000
872 | | | | summary: (10) merge two known; one immediate left, one near right
872 | | | | summary: (10) merge two known; one immediate left, one near right
873 | | | |
873 | | | |
874 o | | | changeset: 9:7010c0af0a35
874 o | | | changeset: 9:7010c0af0a35
875 |\ \ \ \ parent: 7:b632bb1b1224
875 |\ \ \ \ parent: 7:b632bb1b1224
876 | | | | | parent: 8:7a0b11f71937
876 | | | | | parent: 8:7a0b11f71937
877 | | | | | user: test
877 | | | | | user: test
878 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
878 | | | | | date: Thu Jan 01 00:00:09 1970 +0000
879 | | | | | summary: (9) expand
879 | | | | | summary: (9) expand
880 | | | | |
880 | | | | |
881 | o-----+ changeset: 8:7a0b11f71937
881 | o-----+ changeset: 8:7a0b11f71937
882 | | | | | parent: 0:e6eb3150255d
882 | | | | | parent: 0:e6eb3150255d
883 |/ / / / parent: 7:b632bb1b1224
883 |/ / / / parent: 7:b632bb1b1224
884 | | | | user: test
884 | | | | user: test
885 | | | | date: Thu Jan 01 00:00:08 1970 +0000
885 | | | | date: Thu Jan 01 00:00:08 1970 +0000
886 | | | | summary: (8) merge two known; one immediate left, one far right
886 | | | | summary: (8) merge two known; one immediate left, one far right
887 | | | |
887 | | | |
888 o | | | changeset: 7:b632bb1b1224
888 o | | | changeset: 7:b632bb1b1224
889 |\ \ \ \ parent: 2:3d9a33b8d1e1
889 |\ \ \ \ parent: 2:3d9a33b8d1e1
890 | | | | | parent: 5:4409d547b708
890 | | | | | parent: 5:4409d547b708
891 | | | | | user: test
891 | | | | | user: test
892 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
892 | | | | | date: Thu Jan 01 00:00:07 1970 +0000
893 | | | | | summary: (7) expand
893 | | | | | summary: (7) expand
894 | | | | |
894 | | | | |
895 +---o | | changeset: 6:b105a072e251
895 +---o | | changeset: 6:b105a072e251
896 | |/ / / parent: 2:3d9a33b8d1e1
896 | |/ / / parent: 2:3d9a33b8d1e1
897 | | | | parent: 5:4409d547b708
897 | | | | parent: 5:4409d547b708
898 | | | | user: test
898 | | | | user: test
899 | | | | date: Thu Jan 01 00:00:06 1970 +0000
899 | | | | date: Thu Jan 01 00:00:06 1970 +0000
900 | | | | summary: (6) merge two known; one immediate left, one far left
900 | | | | summary: (6) merge two known; one immediate left, one far left
901 | | | |
901 | | | |
902 | o | | changeset: 5:4409d547b708
902 | o | | changeset: 5:4409d547b708
903 | |\ \ \ parent: 3:27eef8ed80b4
903 | |\ \ \ parent: 3:27eef8ed80b4
904 | | | | | parent: 4:26a8bac39d9f
904 | | | | | parent: 4:26a8bac39d9f
905 | | | | | user: test
905 | | | | | user: test
906 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
906 | | | | | date: Thu Jan 01 00:00:05 1970 +0000
907 | | | | | summary: (5) expand
907 | | | | | summary: (5) expand
908 | | | | |
908 | | | | |
909 | | o | | changeset: 4:26a8bac39d9f
909 | | o | | changeset: 4:26a8bac39d9f
910 | |/|/ / parent: 1:6db2ef61d156
910 | |/|/ / parent: 1:6db2ef61d156
911 | | | | parent: 3:27eef8ed80b4
911 | | | | parent: 3:27eef8ed80b4
912 | | | | user: test
912 | | | | user: test
913 | | | | date: Thu Jan 01 00:00:04 1970 +0000
913 | | | | date: Thu Jan 01 00:00:04 1970 +0000
914 | | | | summary: (4) merge two known; one immediate left, one immediate right
914 | | | | summary: (4) merge two known; one immediate left, one immediate right
915 | | | |
915 | | | |
916 | o | | changeset: 3:27eef8ed80b4
916 | o | | changeset: 3:27eef8ed80b4
917 |/ / / user: test
917 |/ / / user: test
918 | | | date: Thu Jan 01 00:00:03 1970 +0000
918 | | | date: Thu Jan 01 00:00:03 1970 +0000
919 | | | summary: (3) collapse
919 | | | summary: (3) collapse
920 | | |
920 | | |
921 o | | changeset: 2:3d9a33b8d1e1
921 o | | changeset: 2:3d9a33b8d1e1
922 |/ / user: test
922 |/ / user: test
923 | | date: Thu Jan 01 00:00:02 1970 +0000
923 | | date: Thu Jan 01 00:00:02 1970 +0000
924 | | summary: (2) collapse
924 | | summary: (2) collapse
925 | |
925 | |
926 o | changeset: 1:6db2ef61d156
926 o | changeset: 1:6db2ef61d156
927 |/ user: test
927 |/ user: test
928 | date: Thu Jan 01 00:00:01 1970 +0000
928 | date: Thu Jan 01 00:00:01 1970 +0000
929 | summary: (1) collapse
929 | summary: (1) collapse
930 |
930 |
931 o changeset: 0:e6eb3150255d
931 o changeset: 0:e6eb3150255d
932 user: test
932 user: test
933 date: Thu Jan 01 00:00:00 1970 +0000
933 date: Thu Jan 01 00:00:00 1970 +0000
934 summary: (0) root
934 summary: (0) root
935
935
936
936
937
937
938 File glog per revset (only merges):
938 File glog per revset (only merges):
939
939
940 $ hg log -G -r 'file("a")' -m
940 $ hg log -G -r 'file("a")' -m
941 o changeset: 32:d06dffa21a31
941 o changeset: 32:d06dffa21a31
942 |\ parent: 27:886ed638191b
942 |\ parent: 27:886ed638191b
943 | | parent: 31:621d83e11f67
943 | | parent: 31:621d83e11f67
944 | | user: test
944 | | user: test
945 | | date: Thu Jan 01 00:00:32 1970 +0000
945 | | date: Thu Jan 01 00:00:32 1970 +0000
946 | | summary: (32) expand
946 | | summary: (32) expand
947 | |
947 | |
948 o | changeset: 31:621d83e11f67
948 o | changeset: 31:621d83e11f67
949 |\| parent: 21:d42a756af44d
949 |\| parent: 21:d42a756af44d
950 | | parent: 30:6e11cd4b648f
950 | | parent: 30:6e11cd4b648f
951 | | user: test
951 | | user: test
952 | | date: Thu Jan 01 00:00:31 1970 +0000
952 | | date: Thu Jan 01 00:00:31 1970 +0000
953 | | summary: (31) expand
953 | | summary: (31) expand
954 | |
954 | |
955 o | changeset: 30:6e11cd4b648f
955 o | changeset: 30:6e11cd4b648f
956 |\ \ parent: 28:44ecd0b9ae99
956 |\ \ parent: 28:44ecd0b9ae99
957 | | | parent: 29:cd9bb2be7593
957 | | | parent: 29:cd9bb2be7593
958 | | | user: test
958 | | | user: test
959 | | | date: Thu Jan 01 00:00:30 1970 +0000
959 | | | date: Thu Jan 01 00:00:30 1970 +0000
960 | | | summary: (30) expand
960 | | | summary: (30) expand
961 | | |
961 | | |
962 o | | changeset: 28:44ecd0b9ae99
962 o | | changeset: 28:44ecd0b9ae99
963 |\ \ \ parent: 1:6db2ef61d156
963 |\ \ \ parent: 1:6db2ef61d156
964 | | | | parent: 26:7f25b6c2f0b9
964 | | | | parent: 26:7f25b6c2f0b9
965 | | | | user: test
965 | | | | user: test
966 | | | | date: Thu Jan 01 00:00:28 1970 +0000
966 | | | | date: Thu Jan 01 00:00:28 1970 +0000
967 | | | | summary: (28) merge zero known
967 | | | | summary: (28) merge zero known
968 | | | |
968 | | | |
969 o | | | changeset: 26:7f25b6c2f0b9
969 o | | | changeset: 26:7f25b6c2f0b9
970 |\ \ \ \ parent: 18:1aa84d96232a
970 |\ \ \ \ parent: 18:1aa84d96232a
971 | | | | | parent: 25:91da8ed57247
971 | | | | | parent: 25:91da8ed57247
972 | | | | | user: test
972 | | | | | user: test
973 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
973 | | | | | date: Thu Jan 01 00:00:26 1970 +0000
974 | | | | | summary: (26) merge one known; far right
974 | | | | | summary: (26) merge one known; far right
975 | | | | |
975 | | | | |
976 | o-----+ changeset: 25:91da8ed57247
976 | o-----+ changeset: 25:91da8ed57247
977 | | | | | parent: 21:d42a756af44d
977 | | | | | parent: 21:d42a756af44d
978 | | | | | parent: 24:a9c19a3d96b7
978 | | | | | parent: 24:a9c19a3d96b7
979 | | | | | user: test
979 | | | | | user: test
980 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
980 | | | | | date: Thu Jan 01 00:00:25 1970 +0000
981 | | | | | summary: (25) merge one known; far left
981 | | | | | summary: (25) merge one known; far left
982 | | | | |
982 | | | | |
983 | o | | | changeset: 24:a9c19a3d96b7
983 | o | | | changeset: 24:a9c19a3d96b7
984 | |\ \ \ \ parent: 0:e6eb3150255d
984 | |\ \ \ \ parent: 0:e6eb3150255d
985 | | | | | | parent: 23:a01cddf0766d
985 | | | | | | parent: 23:a01cddf0766d
986 | | | | | | user: test
986 | | | | | | user: test
987 | | | | | | date: Thu Jan 01 00:00:24 1970 +0000
987 | | | | | | date: Thu Jan 01 00:00:24 1970 +0000
988 | | | | | | summary: (24) merge one known; immediate right
988 | | | | | | summary: (24) merge one known; immediate right
989 | | | | | |
989 | | | | | |
990 | o---+ | | changeset: 23:a01cddf0766d
990 | o---+ | | changeset: 23:a01cddf0766d
991 | | | | | | parent: 1:6db2ef61d156
991 | | | | | | parent: 1:6db2ef61d156
992 | | | | | | parent: 22:e0d9cccacb5d
992 | | | | | | parent: 22:e0d9cccacb5d
993 | | | | | | user: test
993 | | | | | | user: test
994 | | | | | | date: Thu Jan 01 00:00:23 1970 +0000
994 | | | | | | date: Thu Jan 01 00:00:23 1970 +0000
995 | | | | | | summary: (23) merge one known; immediate left
995 | | | | | | summary: (23) merge one known; immediate left
996 | | | | | |
996 | | | | | |
997 | o-------+ changeset: 22:e0d9cccacb5d
997 | o-------+ changeset: 22:e0d9cccacb5d
998 | | | | | | parent: 18:1aa84d96232a
998 | | | | | | parent: 18:1aa84d96232a
999 |/ / / / / parent: 21:d42a756af44d
999 |/ / / / / parent: 21:d42a756af44d
1000 | | | | | user: test
1000 | | | | | user: test
1001 | | | | | date: Thu Jan 01 00:00:22 1970 +0000
1001 | | | | | date: Thu Jan 01 00:00:22 1970 +0000
1002 | | | | | summary: (22) merge two known; one far left, one far right
1002 | | | | | summary: (22) merge two known; one far left, one far right
1003 | | | | |
1003 | | | | |
1004 | | | | o changeset: 21:d42a756af44d
1004 | | | | o changeset: 21:d42a756af44d
1005 | | | | |\ parent: 19:31ddc2c1573b
1005 | | | | |\ parent: 19:31ddc2c1573b
1006 | | | | | | parent: 20:d30ed6450e32
1006 | | | | | | parent: 20:d30ed6450e32
1007 | | | | | | user: test
1007 | | | | | | user: test
1008 | | | | | | date: Thu Jan 01 00:00:21 1970 +0000
1008 | | | | | | date: Thu Jan 01 00:00:21 1970 +0000
1009 | | | | | | summary: (21) expand
1009 | | | | | | summary: (21) expand
1010 | | | | | |
1010 | | | | | |
1011 +-+-------o changeset: 20:d30ed6450e32
1011 +-+-------o changeset: 20:d30ed6450e32
1012 | | | | | parent: 0:e6eb3150255d
1012 | | | | | parent: 0:e6eb3150255d
1013 | | | | | parent: 18:1aa84d96232a
1013 | | | | | parent: 18:1aa84d96232a
1014 | | | | | user: test
1014 | | | | | user: test
1015 | | | | | date: Thu Jan 01 00:00:20 1970 +0000
1015 | | | | | date: Thu Jan 01 00:00:20 1970 +0000
1016 | | | | | summary: (20) merge two known; two far right
1016 | | | | | summary: (20) merge two known; two far right
1017 | | | | |
1017 | | | | |
1018 | | | | o changeset: 19:31ddc2c1573b
1018 | | | | o changeset: 19:31ddc2c1573b
1019 | | | | |\ parent: 15:1dda3f72782d
1019 | | | | |\ parent: 15:1dda3f72782d
1020 | | | | | | parent: 17:44765d7c06e0
1020 | | | | | | parent: 17:44765d7c06e0
1021 | | | | | | user: test
1021 | | | | | | user: test
1022 | | | | | | date: Thu Jan 01 00:00:19 1970 +0000
1022 | | | | | | date: Thu Jan 01 00:00:19 1970 +0000
1023 | | | | | | summary: (19) expand
1023 | | | | | | summary: (19) expand
1024 | | | | | |
1024 | | | | | |
1025 o---+---+ | changeset: 18:1aa84d96232a
1025 o---+---+ | changeset: 18:1aa84d96232a
1026 | | | | | parent: 1:6db2ef61d156
1026 | | | | | parent: 1:6db2ef61d156
1027 / / / / / parent: 15:1dda3f72782d
1027 / / / / / parent: 15:1dda3f72782d
1028 | | | | | user: test
1028 | | | | | user: test
1029 | | | | | date: Thu Jan 01 00:00:18 1970 +0000
1029 | | | | | date: Thu Jan 01 00:00:18 1970 +0000
1030 | | | | | summary: (18) merge two known; two far left
1030 | | | | | summary: (18) merge two known; two far left
1031 | | | | |
1031 | | | | |
1032 | | | | o changeset: 17:44765d7c06e0
1032 | | | | o changeset: 17:44765d7c06e0
1033 | | | | |\ parent: 12:86b91144a6e9
1033 | | | | |\ parent: 12:86b91144a6e9
1034 | | | | | | parent: 16:3677d192927d
1034 | | | | | | parent: 16:3677d192927d
1035 | | | | | | user: test
1035 | | | | | | user: test
1036 | | | | | | date: Thu Jan 01 00:00:17 1970 +0000
1036 | | | | | | date: Thu Jan 01 00:00:17 1970 +0000
1037 | | | | | | summary: (17) expand
1037 | | | | | | summary: (17) expand
1038 | | | | | |
1038 | | | | | |
1039 +-+-------o changeset: 16:3677d192927d
1039 +-+-------o changeset: 16:3677d192927d
1040 | | | | | parent: 0:e6eb3150255d
1040 | | | | | parent: 0:e6eb3150255d
1041 | | | | | parent: 1:6db2ef61d156
1041 | | | | | parent: 1:6db2ef61d156
1042 | | | | | user: test
1042 | | | | | user: test
1043 | | | | | date: Thu Jan 01 00:00:16 1970 +0000
1043 | | | | | date: Thu Jan 01 00:00:16 1970 +0000
1044 | | | | | summary: (16) merge two known; one immediate right, one near right
1044 | | | | | summary: (16) merge two known; one immediate right, one near right
1045 | | | | |
1045 | | | | |
1046 | | | o | changeset: 15:1dda3f72782d
1046 | | | o | changeset: 15:1dda3f72782d
1047 | | | |\ \ parent: 13:22d8966a97e3
1047 | | | |\ \ parent: 13:22d8966a97e3
1048 | | | | | | parent: 14:8eac370358ef
1048 | | | | | | parent: 14:8eac370358ef
1049 | | | | | | user: test
1049 | | | | | | user: test
1050 | | | | | | date: Thu Jan 01 00:00:15 1970 +0000
1050 | | | | | | date: Thu Jan 01 00:00:15 1970 +0000
1051 | | | | | | summary: (15) expand
1051 | | | | | | summary: (15) expand
1052 | | | | | |
1052 | | | | | |
1053 +-------o | changeset: 14:8eac370358ef
1053 +-------o | changeset: 14:8eac370358ef
1054 | | | | |/ parent: 0:e6eb3150255d
1054 | | | | |/ parent: 0:e6eb3150255d
1055 | | | | | parent: 12:86b91144a6e9
1055 | | | | | parent: 12:86b91144a6e9
1056 | | | | | user: test
1056 | | | | | user: test
1057 | | | | | date: Thu Jan 01 00:00:14 1970 +0000
1057 | | | | | date: Thu Jan 01 00:00:14 1970 +0000
1058 | | | | | summary: (14) merge two known; one immediate right, one far right
1058 | | | | | summary: (14) merge two known; one immediate right, one far right
1059 | | | | |
1059 | | | | |
1060 | | | o | changeset: 13:22d8966a97e3
1060 | | | o | changeset: 13:22d8966a97e3
1061 | | | |\ \ parent: 9:7010c0af0a35
1061 | | | |\ \ parent: 9:7010c0af0a35
1062 | | | | | | parent: 11:832d76e6bdf2
1062 | | | | | | parent: 11:832d76e6bdf2
1063 | | | | | | user: test
1063 | | | | | | user: test
1064 | | | | | | date: Thu Jan 01 00:00:13 1970 +0000
1064 | | | | | | date: Thu Jan 01 00:00:13 1970 +0000
1065 | | | | | | summary: (13) expand
1065 | | | | | | summary: (13) expand
1066 | | | | | |
1066 | | | | | |
1067 | +---+---o changeset: 12:86b91144a6e9
1067 | +---+---o changeset: 12:86b91144a6e9
1068 | | | | | parent: 1:6db2ef61d156
1068 | | | | | parent: 1:6db2ef61d156
1069 | | | | | parent: 9:7010c0af0a35
1069 | | | | | parent: 9:7010c0af0a35
1070 | | | | | user: test
1070 | | | | | user: test
1071 | | | | | date: Thu Jan 01 00:00:12 1970 +0000
1071 | | | | | date: Thu Jan 01 00:00:12 1970 +0000
1072 | | | | | summary: (12) merge two known; one immediate right, one far left
1072 | | | | | summary: (12) merge two known; one immediate right, one far left
1073 | | | | |
1073 | | | | |
1074 | | | | o changeset: 11:832d76e6bdf2
1074 | | | | o changeset: 11:832d76e6bdf2
1075 | | | | |\ parent: 6:b105a072e251
1075 | | | | |\ parent: 6:b105a072e251
1076 | | | | | | parent: 10:74c64d036d72
1076 | | | | | | parent: 10:74c64d036d72
1077 | | | | | | user: test
1077 | | | | | | user: test
1078 | | | | | | date: Thu Jan 01 00:00:11 1970 +0000
1078 | | | | | | date: Thu Jan 01 00:00:11 1970 +0000
1079 | | | | | | summary: (11) expand
1079 | | | | | | summary: (11) expand
1080 | | | | | |
1080 | | | | | |
1081 +---------o changeset: 10:74c64d036d72
1081 +---------o changeset: 10:74c64d036d72
1082 | | | | |/ parent: 0:e6eb3150255d
1082 | | | | |/ parent: 0:e6eb3150255d
1083 | | | | | parent: 6:b105a072e251
1083 | | | | | parent: 6:b105a072e251
1084 | | | | | user: test
1084 | | | | | user: test
1085 | | | | | date: Thu Jan 01 00:00:10 1970 +0000
1085 | | | | | date: Thu Jan 01 00:00:10 1970 +0000
1086 | | | | | summary: (10) merge two known; one immediate left, one near right
1086 | | | | | summary: (10) merge two known; one immediate left, one near right
1087 | | | | |
1087 | | | | |
1088 | | | o | changeset: 9:7010c0af0a35
1088 | | | o | changeset: 9:7010c0af0a35
1089 | | | |\ \ parent: 7:b632bb1b1224
1089 | | | |\ \ parent: 7:b632bb1b1224
1090 | | | | | | parent: 8:7a0b11f71937
1090 | | | | | | parent: 8:7a0b11f71937
1091 | | | | | | user: test
1091 | | | | | | user: test
1092 | | | | | | date: Thu Jan 01 00:00:09 1970 +0000
1092 | | | | | | date: Thu Jan 01 00:00:09 1970 +0000
1093 | | | | | | summary: (9) expand
1093 | | | | | | summary: (9) expand
1094 | | | | | |
1094 | | | | | |
1095 +-------o | changeset: 8:7a0b11f71937
1095 +-------o | changeset: 8:7a0b11f71937
1096 | | | |/ / parent: 0:e6eb3150255d
1096 | | | |/ / parent: 0:e6eb3150255d
1097 | | | | | parent: 7:b632bb1b1224
1097 | | | | | parent: 7:b632bb1b1224
1098 | | | | | user: test
1098 | | | | | user: test
1099 | | | | | date: Thu Jan 01 00:00:08 1970 +0000
1099 | | | | | date: Thu Jan 01 00:00:08 1970 +0000
1100 | | | | | summary: (8) merge two known; one immediate left, one far right
1100 | | | | | summary: (8) merge two known; one immediate left, one far right
1101 | | | | |
1101 | | | | |
1102 | | | o | changeset: 7:b632bb1b1224
1102 | | | o | changeset: 7:b632bb1b1224
1103 | | | |\ \ parent: 2:3d9a33b8d1e1
1103 | | | |\ \ parent: 2:3d9a33b8d1e1
1104 | | | | | | parent: 5:4409d547b708
1104 | | | | | | parent: 5:4409d547b708
1105 | | | | | | user: test
1105 | | | | | | user: test
1106 | | | | | | date: Thu Jan 01 00:00:07 1970 +0000
1106 | | | | | | date: Thu Jan 01 00:00:07 1970 +0000
1107 | | | | | | summary: (7) expand
1107 | | | | | | summary: (7) expand
1108 | | | | | |
1108 | | | | | |
1109 | | | +---o changeset: 6:b105a072e251
1109 | | | +---o changeset: 6:b105a072e251
1110 | | | | |/ parent: 2:3d9a33b8d1e1
1110 | | | | |/ parent: 2:3d9a33b8d1e1
1111 | | | | | parent: 5:4409d547b708
1111 | | | | | parent: 5:4409d547b708
1112 | | | | | user: test
1112 | | | | | user: test
1113 | | | | | date: Thu Jan 01 00:00:06 1970 +0000
1113 | | | | | date: Thu Jan 01 00:00:06 1970 +0000
1114 | | | | | summary: (6) merge two known; one immediate left, one far left
1114 | | | | | summary: (6) merge two known; one immediate left, one far left
1115 | | | | |
1115 | | | | |
1116 | | | o | changeset: 5:4409d547b708
1116 | | | o | changeset: 5:4409d547b708
1117 | | | |\ \ parent: 3:27eef8ed80b4
1117 | | | |\ \ parent: 3:27eef8ed80b4
1118 | | | | | | parent: 4:26a8bac39d9f
1118 | | | | | | parent: 4:26a8bac39d9f
1119 | | | | | | user: test
1119 | | | | | | user: test
1120 | | | | | | date: Thu Jan 01 00:00:05 1970 +0000
1120 | | | | | | date: Thu Jan 01 00:00:05 1970 +0000
1121 | | | | | | summary: (5) expand
1121 | | | | | | summary: (5) expand
1122 | | | | | |
1122 | | | | | |
1123 | +---o | | changeset: 4:26a8bac39d9f
1123 | +---o | | changeset: 4:26a8bac39d9f
1124 | | | |/ / parent: 1:6db2ef61d156
1124 | | | |/ / parent: 1:6db2ef61d156
1125 | | | | | parent: 3:27eef8ed80b4
1125 | | | | | parent: 3:27eef8ed80b4
1126 | | | | | user: test
1126 | | | | | user: test
1127 | | | | | date: Thu Jan 01 00:00:04 1970 +0000
1127 | | | | | date: Thu Jan 01 00:00:04 1970 +0000
1128 | | | | | summary: (4) merge two known; one immediate left, one immediate right
1128 | | | | | summary: (4) merge two known; one immediate left, one immediate right
1129 | | | | |
1129 | | | | |
1130
1130
1131
1131
1132 Empty revision range - display nothing:
1132 Empty revision range - display nothing:
1133 $ hg log -G -r 1..0
1133 $ hg log -G -r 1..0
1134
1134
1135 $ cd ..
1135 $ cd ..
1136
1136
1137 #if no-outer-repo
1137 #if no-outer-repo
1138
1138
1139 From outer space:
1139 From outer space:
1140 $ hg log -G -l1 repo
1140 $ hg log -G -l1 repo
1141 @ changeset: 34:fea3ac5810e0
1141 @ changeset: 34:fea3ac5810e0
1142 | tag: tip
1142 | tag: tip
1143 | parent: 32:d06dffa21a31
1143 | parent: 32:d06dffa21a31
1144 | user: test
1144 | user: test
1145 | date: Thu Jan 01 00:00:34 1970 +0000
1145 | date: Thu Jan 01 00:00:34 1970 +0000
1146 | summary: (34) head
1146 | summary: (34) head
1147 |
1147 |
1148 $ hg log -G -l1 repo/a
1148 $ hg log -G -l1 repo/a
1149 @ changeset: 34:fea3ac5810e0
1149 @ changeset: 34:fea3ac5810e0
1150 | tag: tip
1150 | tag: tip
1151 | parent: 32:d06dffa21a31
1151 | parent: 32:d06dffa21a31
1152 | user: test
1152 | user: test
1153 | date: Thu Jan 01 00:00:34 1970 +0000
1153 | date: Thu Jan 01 00:00:34 1970 +0000
1154 | summary: (34) head
1154 | summary: (34) head
1155 |
1155 |
1156 $ hg log -G -l1 repo/missing
1156 $ hg log -G -l1 repo/missing
1157
1157
1158 #endif
1158 #endif
1159
1159
1160 File log with revs != cset revs:
1160 File log with revs != cset revs:
1161 $ hg init flog
1161 $ hg init flog
1162 $ cd flog
1162 $ cd flog
1163 $ echo one >one
1163 $ echo one >one
1164 $ hg add one
1164 $ hg add one
1165 $ hg commit -mone
1165 $ hg commit -mone
1166 $ echo two >two
1166 $ echo two >two
1167 $ hg add two
1167 $ hg add two
1168 $ hg commit -mtwo
1168 $ hg commit -mtwo
1169 $ echo more >two
1169 $ echo more >two
1170 $ hg commit -mmore
1170 $ hg commit -mmore
1171 $ hg log -G two
1171 $ hg log -G two
1172 @ changeset: 2:12c28321755b
1172 @ changeset: 2:12c28321755b
1173 | tag: tip
1173 | tag: tip
1174 | user: test
1174 | user: test
1175 | date: Thu Jan 01 00:00:00 1970 +0000
1175 | date: Thu Jan 01 00:00:00 1970 +0000
1176 | summary: more
1176 | summary: more
1177 |
1177 |
1178 o changeset: 1:5ac72c0599bf
1178 o changeset: 1:5ac72c0599bf
1179 | user: test
1179 | user: test
1180 | date: Thu Jan 01 00:00:00 1970 +0000
1180 | date: Thu Jan 01 00:00:00 1970 +0000
1181 | summary: two
1181 | summary: two
1182 |
1182 |
1183
1183
1184 Issue1896: File log with explicit style
1184 Issue1896: File log with explicit style
1185 $ hg log -G --style=default one
1185 $ hg log -G --style=default one
1186 o changeset: 0:3d578b4a1f53
1186 o changeset: 0:3d578b4a1f53
1187 user: test
1187 user: test
1188 date: Thu Jan 01 00:00:00 1970 +0000
1188 date: Thu Jan 01 00:00:00 1970 +0000
1189 summary: one
1189 summary: one
1190
1190
1191 Issue2395: glog --style header and footer
1191 Issue2395: glog --style header and footer
1192 $ hg log -G --style=xml one
1192 $ hg log -G --style=xml one
1193 <?xml version="1.0"?>
1193 <?xml version="1.0"?>
1194 <log>
1194 <log>
1195 o <logentry revision="0" node="3d578b4a1f537d5fcf7301bfa9c0b97adfaa6fb1">
1195 o <logentry revision="0" node="3d578b4a1f537d5fcf7301bfa9c0b97adfaa6fb1">
1196 <author email="test">test</author>
1196 <author email="test">test</author>
1197 <date>1970-01-01T00:00:00+00:00</date>
1197 <date>1970-01-01T00:00:00+00:00</date>
1198 <msg xml:space="preserve">one</msg>
1198 <msg xml:space="preserve">one</msg>
1199 </logentry>
1199 </logentry>
1200 </log>
1200 </log>
1201
1201
1202 $ cd ..
1202 $ cd ..
1203
1203
1204 Incoming and outgoing:
1204 Incoming and outgoing:
1205
1205
1206 $ hg clone -U -r31 repo repo2
1206 $ hg clone -U -r31 repo repo2
1207 adding changesets
1207 adding changesets
1208 adding manifests
1208 adding manifests
1209 adding file changes
1209 adding file changes
1210 added 31 changesets with 31 changes to 1 files
1210 added 31 changesets with 31 changes to 1 files
1211 $ cd repo2
1211 $ cd repo2
1212
1212
1213 $ hg incoming --graph ../repo
1213 $ hg incoming --graph ../repo
1214 comparing with ../repo
1214 comparing with ../repo
1215 searching for changes
1215 searching for changes
1216 o changeset: 34:fea3ac5810e0
1216 o changeset: 34:fea3ac5810e0
1217 | tag: tip
1217 | tag: tip
1218 | parent: 32:d06dffa21a31
1218 | parent: 32:d06dffa21a31
1219 | user: test
1219 | user: test
1220 | date: Thu Jan 01 00:00:34 1970 +0000
1220 | date: Thu Jan 01 00:00:34 1970 +0000
1221 | summary: (34) head
1221 | summary: (34) head
1222 |
1222 |
1223 | o changeset: 33:68608f5145f9
1223 | o changeset: 33:68608f5145f9
1224 | parent: 18:1aa84d96232a
1224 | parent: 18:1aa84d96232a
1225 | user: test
1225 | user: test
1226 | date: Thu Jan 01 00:00:33 1970 +0000
1226 | date: Thu Jan 01 00:00:33 1970 +0000
1227 | summary: (33) head
1227 | summary: (33) head
1228 |
1228 |
1229 o changeset: 32:d06dffa21a31
1229 o changeset: 32:d06dffa21a31
1230 | parent: 27:886ed638191b
1230 | parent: 27:886ed638191b
1231 | parent: 31:621d83e11f67
1231 | parent: 31:621d83e11f67
1232 | user: test
1232 | user: test
1233 | date: Thu Jan 01 00:00:32 1970 +0000
1233 | date: Thu Jan 01 00:00:32 1970 +0000
1234 | summary: (32) expand
1234 | summary: (32) expand
1235 |
1235 |
1236 o changeset: 27:886ed638191b
1236 o changeset: 27:886ed638191b
1237 parent: 21:d42a756af44d
1237 parent: 21:d42a756af44d
1238 user: test
1238 user: test
1239 date: Thu Jan 01 00:00:27 1970 +0000
1239 date: Thu Jan 01 00:00:27 1970 +0000
1240 summary: (27) collapse
1240 summary: (27) collapse
1241
1241
1242 $ cd ..
1242 $ cd ..
1243
1243
1244 $ hg -R repo outgoing --graph repo2
1244 $ hg -R repo outgoing --graph repo2
1245 comparing with repo2
1245 comparing with repo2
1246 searching for changes
1246 searching for changes
1247 @ changeset: 34:fea3ac5810e0
1247 @ changeset: 34:fea3ac5810e0
1248 | tag: tip
1248 | tag: tip
1249 | parent: 32:d06dffa21a31
1249 | parent: 32:d06dffa21a31
1250 | user: test
1250 | user: test
1251 | date: Thu Jan 01 00:00:34 1970 +0000
1251 | date: Thu Jan 01 00:00:34 1970 +0000
1252 | summary: (34) head
1252 | summary: (34) head
1253 |
1253 |
1254 | o changeset: 33:68608f5145f9
1254 | o changeset: 33:68608f5145f9
1255 | parent: 18:1aa84d96232a
1255 | parent: 18:1aa84d96232a
1256 | user: test
1256 | user: test
1257 | date: Thu Jan 01 00:00:33 1970 +0000
1257 | date: Thu Jan 01 00:00:33 1970 +0000
1258 | summary: (33) head
1258 | summary: (33) head
1259 |
1259 |
1260 o changeset: 32:d06dffa21a31
1260 o changeset: 32:d06dffa21a31
1261 | parent: 27:886ed638191b
1261 | parent: 27:886ed638191b
1262 | parent: 31:621d83e11f67
1262 | parent: 31:621d83e11f67
1263 | user: test
1263 | user: test
1264 | date: Thu Jan 01 00:00:32 1970 +0000
1264 | date: Thu Jan 01 00:00:32 1970 +0000
1265 | summary: (32) expand
1265 | summary: (32) expand
1266 |
1266 |
1267 o changeset: 27:886ed638191b
1267 o changeset: 27:886ed638191b
1268 parent: 21:d42a756af44d
1268 parent: 21:d42a756af44d
1269 user: test
1269 user: test
1270 date: Thu Jan 01 00:00:27 1970 +0000
1270 date: Thu Jan 01 00:00:27 1970 +0000
1271 summary: (27) collapse
1271 summary: (27) collapse
1272
1272
1273
1273
1274 File + limit with revs != cset revs:
1274 File + limit with revs != cset revs:
1275 $ cd repo
1275 $ cd repo
1276 $ touch b
1276 $ touch b
1277 $ hg ci -Aqm0
1277 $ hg ci -Aqm0
1278 $ hg log -G -l2 a
1278 $ hg log -G -l2 a
1279 o changeset: 34:fea3ac5810e0
1279 o changeset: 34:fea3ac5810e0
1280 | parent: 32:d06dffa21a31
1280 | parent: 32:d06dffa21a31
1281 | user: test
1281 | user: test
1282 | date: Thu Jan 01 00:00:34 1970 +0000
1282 | date: Thu Jan 01 00:00:34 1970 +0000
1283 | summary: (34) head
1283 | summary: (34) head
1284 |
1284 |
1285 | o changeset: 33:68608f5145f9
1285 | o changeset: 33:68608f5145f9
1286 | | parent: 18:1aa84d96232a
1286 | | parent: 18:1aa84d96232a
1287 | | user: test
1287 | | user: test
1288 | | date: Thu Jan 01 00:00:33 1970 +0000
1288 | | date: Thu Jan 01 00:00:33 1970 +0000
1289 | | summary: (33) head
1289 | | summary: (33) head
1290 | |
1290 | |
1291
1291
1292 File + limit + -ra:b, (b - a) < limit:
1292 File + limit + -ra:b, (b - a) < limit:
1293 $ hg log -G -l3000 -r32:tip a
1293 $ hg log -G -l3000 -r32:tip a
1294 o changeset: 34:fea3ac5810e0
1294 o changeset: 34:fea3ac5810e0
1295 | parent: 32:d06dffa21a31
1295 | parent: 32:d06dffa21a31
1296 | user: test
1296 | user: test
1297 | date: Thu Jan 01 00:00:34 1970 +0000
1297 | date: Thu Jan 01 00:00:34 1970 +0000
1298 | summary: (34) head
1298 | summary: (34) head
1299 |
1299 |
1300 | o changeset: 33:68608f5145f9
1300 | o changeset: 33:68608f5145f9
1301 | | parent: 18:1aa84d96232a
1301 | | parent: 18:1aa84d96232a
1302 | | user: test
1302 | | user: test
1303 | | date: Thu Jan 01 00:00:33 1970 +0000
1303 | | date: Thu Jan 01 00:00:33 1970 +0000
1304 | | summary: (33) head
1304 | | summary: (33) head
1305 | |
1305 | |
1306 o | changeset: 32:d06dffa21a31
1306 o | changeset: 32:d06dffa21a31
1307 |\ \ parent: 27:886ed638191b
1307 |\ \ parent: 27:886ed638191b
1308 | | | parent: 31:621d83e11f67
1308 | | | parent: 31:621d83e11f67
1309 | | | user: test
1309 | | | user: test
1310 | | | date: Thu Jan 01 00:00:32 1970 +0000
1310 | | | date: Thu Jan 01 00:00:32 1970 +0000
1311 | | | summary: (32) expand
1311 | | | summary: (32) expand
1312 | | |
1312 | | |
1313
1313
1314 Point out a common and an uncommon unshown parent
1314 Point out a common and an uncommon unshown parent
1315
1315
1316 $ hg log -G -r 'rev(8) or rev(9)'
1316 $ hg log -G -r 'rev(8) or rev(9)'
1317 o changeset: 9:7010c0af0a35
1317 o changeset: 9:7010c0af0a35
1318 |\ parent: 7:b632bb1b1224
1318 |\ parent: 7:b632bb1b1224
1319 | | parent: 8:7a0b11f71937
1319 | | parent: 8:7a0b11f71937
1320 | | user: test
1320 | | user: test
1321 | | date: Thu Jan 01 00:00:09 1970 +0000
1321 | | date: Thu Jan 01 00:00:09 1970 +0000
1322 | | summary: (9) expand
1322 | | summary: (9) expand
1323 | |
1323 | |
1324 o | changeset: 8:7a0b11f71937
1324 o | changeset: 8:7a0b11f71937
1325 |\| parent: 0:e6eb3150255d
1325 |\| parent: 0:e6eb3150255d
1326 | | parent: 7:b632bb1b1224
1326 | | parent: 7:b632bb1b1224
1327 | | user: test
1327 | | user: test
1328 | | date: Thu Jan 01 00:00:08 1970 +0000
1328 | | date: Thu Jan 01 00:00:08 1970 +0000
1329 | | summary: (8) merge two known; one immediate left, one far right
1329 | | summary: (8) merge two known; one immediate left, one far right
1330 | |
1330 | |
1331
1331
1332 File + limit + -ra:b, b < tip:
1332 File + limit + -ra:b, b < tip:
1333
1333
1334 $ hg log -G -l1 -r32:34 a
1334 $ hg log -G -l1 -r32:34 a
1335 o changeset: 34:fea3ac5810e0
1335 o changeset: 34:fea3ac5810e0
1336 | parent: 32:d06dffa21a31
1336 | parent: 32:d06dffa21a31
1337 | user: test
1337 | user: test
1338 | date: Thu Jan 01 00:00:34 1970 +0000
1338 | date: Thu Jan 01 00:00:34 1970 +0000
1339 | summary: (34) head
1339 | summary: (34) head
1340 |
1340 |
1341
1341
1342 file(File) + limit + -ra:b, b < tip:
1342 file(File) + limit + -ra:b, b < tip:
1343
1343
1344 $ hg log -G -l1 -r32:34 -r 'file("a")'
1344 $ hg log -G -l1 -r32:34 -r 'file("a")'
1345 o changeset: 34:fea3ac5810e0
1345 o changeset: 34:fea3ac5810e0
1346 | parent: 32:d06dffa21a31
1346 | parent: 32:d06dffa21a31
1347 | user: test
1347 | user: test
1348 | date: Thu Jan 01 00:00:34 1970 +0000
1348 | date: Thu Jan 01 00:00:34 1970 +0000
1349 | summary: (34) head
1349 | summary: (34) head
1350 |
1350 |
1351
1351
1352 limit(file(File) and a::b), b < tip:
1352 limit(file(File) and a::b), b < tip:
1353
1353
1354 $ hg log -G -r 'limit(file("a") and 32::34, 1)'
1354 $ hg log -G -r 'limit(file("a") and 32::34, 1)'
1355 o changeset: 32:d06dffa21a31
1355 o changeset: 32:d06dffa21a31
1356 |\ parent: 27:886ed638191b
1356 |\ parent: 27:886ed638191b
1357 | | parent: 31:621d83e11f67
1357 | | parent: 31:621d83e11f67
1358 | | user: test
1358 | | user: test
1359 | | date: Thu Jan 01 00:00:32 1970 +0000
1359 | | date: Thu Jan 01 00:00:32 1970 +0000
1360 | | summary: (32) expand
1360 | | summary: (32) expand
1361 | |
1361 | |
1362
1362
1363 File + limit + -ra:b, b < tip:
1363 File + limit + -ra:b, b < tip:
1364
1364
1365 $ hg log -G -r 'limit(file("a") and 34::32, 1)'
1365 $ hg log -G -r 'limit(file("a") and 34::32, 1)'
1366
1366
1367 File + limit + -ra:b, b < tip, (b - a) < limit:
1367 File + limit + -ra:b, b < tip, (b - a) < limit:
1368
1368
1369 $ hg log -G -l10 -r33:34 a
1369 $ hg log -G -l10 -r33:34 a
1370 o changeset: 34:fea3ac5810e0
1370 o changeset: 34:fea3ac5810e0
1371 | parent: 32:d06dffa21a31
1371 | parent: 32:d06dffa21a31
1372 | user: test
1372 | user: test
1373 | date: Thu Jan 01 00:00:34 1970 +0000
1373 | date: Thu Jan 01 00:00:34 1970 +0000
1374 | summary: (34) head
1374 | summary: (34) head
1375 |
1375 |
1376 | o changeset: 33:68608f5145f9
1376 | o changeset: 33:68608f5145f9
1377 | | parent: 18:1aa84d96232a
1377 | | parent: 18:1aa84d96232a
1378 | | user: test
1378 | | user: test
1379 | | date: Thu Jan 01 00:00:33 1970 +0000
1379 | | date: Thu Jan 01 00:00:33 1970 +0000
1380 | | summary: (33) head
1380 | | summary: (33) head
1381 | |
1381 | |
1382
1382
1383 Do not crash or produce strange graphs if history is buggy
1383 Do not crash or produce strange graphs if history is buggy
1384
1384
1385 $ hg branch branch
1385 $ hg branch branch
1386 marked working directory as branch branch
1386 marked working directory as branch branch
1387 (branches are permanent and global, did you want a bookmark?)
1387 (branches are permanent and global, did you want a bookmark?)
1388 $ commit 36 "buggy merge: identical parents" 35 35
1388 $ commit 36 "buggy merge: identical parents" 35 35
1389 $ hg log -G -l5
1389 $ hg log -G -l5
1390 @ changeset: 36:08a19a744424
1390 @ changeset: 36:08a19a744424
1391 | branch: branch
1391 | branch: branch
1392 | tag: tip
1392 | tag: tip
1393 | parent: 35:9159c3644c5e
1393 | parent: 35:9159c3644c5e
1394 | parent: 35:9159c3644c5e
1394 | parent: 35:9159c3644c5e
1395 | user: test
1395 | user: test
1396 | date: Thu Jan 01 00:00:36 1970 +0000
1396 | date: Thu Jan 01 00:00:36 1970 +0000
1397 | summary: (36) buggy merge: identical parents
1397 | summary: (36) buggy merge: identical parents
1398 |
1398 |
1399 o changeset: 35:9159c3644c5e
1399 o changeset: 35:9159c3644c5e
1400 | user: test
1400 | user: test
1401 | date: Thu Jan 01 00:00:00 1970 +0000
1401 | date: Thu Jan 01 00:00:00 1970 +0000
1402 | summary: 0
1402 | summary: 0
1403 |
1403 |
1404 o changeset: 34:fea3ac5810e0
1404 o changeset: 34:fea3ac5810e0
1405 | parent: 32:d06dffa21a31
1405 | parent: 32:d06dffa21a31
1406 | user: test
1406 | user: test
1407 | date: Thu Jan 01 00:00:34 1970 +0000
1407 | date: Thu Jan 01 00:00:34 1970 +0000
1408 | summary: (34) head
1408 | summary: (34) head
1409 |
1409 |
1410 | o changeset: 33:68608f5145f9
1410 | o changeset: 33:68608f5145f9
1411 | | parent: 18:1aa84d96232a
1411 | | parent: 18:1aa84d96232a
1412 | | user: test
1412 | | user: test
1413 | | date: Thu Jan 01 00:00:33 1970 +0000
1413 | | date: Thu Jan 01 00:00:33 1970 +0000
1414 | | summary: (33) head
1414 | | summary: (33) head
1415 | |
1415 | |
1416 o | changeset: 32:d06dffa21a31
1416 o | changeset: 32:d06dffa21a31
1417 |\ \ parent: 27:886ed638191b
1417 |\ \ parent: 27:886ed638191b
1418 | | | parent: 31:621d83e11f67
1418 | | | parent: 31:621d83e11f67
1419 | | | user: test
1419 | | | user: test
1420 | | | date: Thu Jan 01 00:00:32 1970 +0000
1420 | | | date: Thu Jan 01 00:00:32 1970 +0000
1421 | | | summary: (32) expand
1421 | | | summary: (32) expand
1422 | | |
1422 | | |
1423
1423
1424 Test log -G options
1424 Test log -G options
1425
1425
1426 $ testlog() {
1426 $ testlog() {
1427 > hg log -G --print-revset "$@"
1427 > hg log -G --print-revset "$@"
1428 > hg log --template 'nodetag {rev}\n' "$@" | grep nodetag \
1428 > hg log --template 'nodetag {rev}\n' "$@" | grep nodetag \
1429 > | sed 's/.*nodetag/nodetag/' > log.nodes
1429 > | sed 's/.*nodetag/nodetag/' > log.nodes
1430 > hg log -G --template 'nodetag {rev}\n' "$@" | grep nodetag \
1430 > hg log -G --template 'nodetag {rev}\n' "$@" | grep nodetag \
1431 > | sed 's/.*nodetag/nodetag/' > glog.nodes
1431 > | sed 's/.*nodetag/nodetag/' > glog.nodes
1432 > diff -u log.nodes glog.nodes | grep '^[-+@ ]' || :
1432 > diff -u log.nodes glog.nodes | grep '^[-+@ ]' || :
1433 > }
1433 > }
1434
1434
1435 glog always reorders nodes which explains the difference with log
1435 glog always reorders nodes which explains the difference with log
1436
1436
1437 $ testlog -r 27 -r 25 -r 21 -r 34 -r 32 -r 31
1437 $ testlog -r 27 -r 25 -r 21 -r 34 -r 32 -r 31
1438 ['27', '25', '21', '34', '32', '31']
1438 ['27', '25', '21', '34', '32', '31']
1439 []
1439 []
1440 --- log.nodes * (glob)
1440 --- log.nodes * (glob)
1441 +++ glog.nodes * (glob)
1441 +++ glog.nodes * (glob)
1442 @@ -1,6 +1,6 @@
1442 @@ -1,6 +1,6 @@
1443 -nodetag 27
1443 -nodetag 27
1444 -nodetag 25
1444 -nodetag 25
1445 -nodetag 21
1445 -nodetag 21
1446 nodetag 34
1446 nodetag 34
1447 nodetag 32
1447 nodetag 32
1448 nodetag 31
1448 nodetag 31
1449 +nodetag 27
1449 +nodetag 27
1450 +nodetag 25
1450 +nodetag 25
1451 +nodetag 21
1451 +nodetag 21
1452 $ testlog -u test -u not-a-user
1452 $ testlog -u test -u not-a-user
1453 []
1453 []
1454 (group
1454 (group
1455 (group
1455 (group
1456 (or
1456 (or
1457 (func
1457 (func
1458 ('symbol', 'user')
1458 ('symbol', 'user')
1459 ('string', 'test'))
1459 ('string', 'test'))
1460 (func
1460 (func
1461 ('symbol', 'user')
1461 ('symbol', 'user')
1462 ('string', 'not-a-user')))))
1462 ('string', 'not-a-user')))))
1463 $ testlog -b not-a-branch
1463 $ testlog -b not-a-branch
1464 abort: unknown revision 'not-a-branch'!
1464 abort: unknown revision '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 $ testlog -b 35 -b 36 --only-branch branch
1467 $ testlog -b 35 -b 36 --only-branch branch
1468 []
1468 []
1469 (group
1469 (group
1470 (group
1470 (group
1471 (or
1471 (or
1472 (func
1472 (func
1473 ('symbol', 'branch')
1473 ('symbol', 'branch')
1474 ('string', 'default'))
1474 ('string', 'default'))
1475 (func
1475 (func
1476 ('symbol', 'branch')
1476 ('symbol', 'branch')
1477 ('string', 'branch'))
1477 ('string', 'branch'))
1478 (func
1478 (func
1479 ('symbol', 'branch')
1479 ('symbol', 'branch')
1480 ('string', 'branch')))))
1480 ('string', 'branch')))))
1481 $ testlog -k expand -k merge
1481 $ testlog -k expand -k merge
1482 []
1482 []
1483 (group
1483 (group
1484 (group
1484 (group
1485 (or
1485 (or
1486 (func
1486 (func
1487 ('symbol', 'keyword')
1487 ('symbol', 'keyword')
1488 ('string', 'expand'))
1488 ('string', 'expand'))
1489 (func
1489 (func
1490 ('symbol', 'keyword')
1490 ('symbol', 'keyword')
1491 ('string', 'merge')))))
1491 ('string', 'merge')))))
1492 $ testlog --only-merges
1492 $ testlog --only-merges
1493 []
1493 []
1494 (group
1494 (group
1495 (func
1495 (func
1496 ('symbol', 'merge')
1496 ('symbol', 'merge')
1497 None))
1497 None))
1498 $ testlog --no-merges
1498 $ testlog --no-merges
1499 []
1499 []
1500 (group
1500 (group
1501 (not
1501 (not
1502 (func
1502 (func
1503 ('symbol', 'merge')
1503 ('symbol', 'merge')
1504 None)))
1504 None)))
1505 $ testlog --date '2 0 to 4 0'
1505 $ testlog --date '2 0 to 4 0'
1506 []
1506 []
1507 (group
1507 (group
1508 (func
1508 (func
1509 ('symbol', 'date')
1509 ('symbol', 'date')
1510 ('string', '2 0 to 4 0')))
1510 ('string', '2 0 to 4 0')))
1511 $ hg log -G -d 'brace ) in a date'
1511 $ hg log -G -d 'brace ) in a date'
1512 abort: invalid date: 'brace ) in a date'
1512 abort: invalid date: 'brace ) in a date'
1513 [255]
1513 [255]
1514 $ testlog --prune 31 --prune 32
1514 $ testlog --prune 31 --prune 32
1515 []
1515 []
1516 (group
1516 (group
1517 (group
1517 (group
1518 (and
1518 (and
1519 (not
1519 (not
1520 (group
1520 (group
1521 (or
1521 (or
1522 ('string', '31')
1522 ('string', '31')
1523 (func
1523 (func
1524 ('symbol', 'ancestors')
1524 ('symbol', 'ancestors')
1525 ('string', '31')))))
1525 ('string', '31')))))
1526 (not
1526 (not
1527 (group
1527 (group
1528 (or
1528 (or
1529 ('string', '32')
1529 ('string', '32')
1530 (func
1530 (func
1531 ('symbol', 'ancestors')
1531 ('symbol', 'ancestors')
1532 ('string', '32'))))))))
1532 ('string', '32'))))))))
1533
1533
1534 Dedicated repo for --follow and paths filtering. The g is crafted to
1534 Dedicated repo for --follow and paths filtering. The g is crafted to
1535 have 2 filelog topological heads in a linear changeset graph.
1535 have 2 filelog topological heads in a linear changeset graph.
1536
1536
1537 $ cd ..
1537 $ cd ..
1538 $ hg init follow
1538 $ hg init follow
1539 $ cd follow
1539 $ cd follow
1540 $ testlog --follow
1540 $ testlog --follow
1541 []
1541 []
1542 []
1542 []
1543 $ testlog -rnull
1543 $ testlog -rnull
1544 ['null']
1544 ['null']
1545 []
1545 []
1546 $ echo a > a
1546 $ echo a > a
1547 $ echo aa > aa
1547 $ echo aa > aa
1548 $ echo f > f
1548 $ echo f > f
1549 $ hg ci -Am "add a" a aa f
1549 $ hg ci -Am "add a" a aa f
1550 $ hg cp a b
1550 $ hg cp a b
1551 $ hg cp f g
1551 $ hg cp f g
1552 $ hg ci -m "copy a b"
1552 $ hg ci -m "copy a b"
1553 $ mkdir dir
1553 $ mkdir dir
1554 $ hg mv b dir
1554 $ hg mv b dir
1555 $ echo g >> g
1555 $ echo g >> g
1556 $ echo f >> f
1556 $ echo f >> f
1557 $ hg ci -m "mv b dir/b"
1557 $ hg ci -m "mv b dir/b"
1558 $ hg mv a b
1558 $ hg mv a b
1559 $ hg cp -f f g
1559 $ hg cp -f f g
1560 $ echo a > d
1560 $ echo a > d
1561 $ hg add d
1561 $ hg add d
1562 $ hg ci -m "mv a b; add d"
1562 $ hg ci -m "mv a b; add d"
1563 $ hg mv dir/b e
1563 $ hg mv dir/b e
1564 $ hg ci -m "mv dir/b e"
1564 $ hg ci -m "mv dir/b e"
1565 $ hg log -G --template '({rev}) {desc|firstline}\n'
1565 $ hg log -G --template '({rev}) {desc|firstline}\n'
1566 @ (4) mv dir/b e
1566 @ (4) mv dir/b e
1567 |
1567 |
1568 o (3) mv a b; add d
1568 o (3) mv a b; add d
1569 |
1569 |
1570 o (2) mv b dir/b
1570 o (2) mv b dir/b
1571 |
1571 |
1572 o (1) copy a b
1572 o (1) copy a b
1573 |
1573 |
1574 o (0) add a
1574 o (0) add a
1575
1575
1576
1576
1577 $ testlog a
1577 $ testlog a
1578 []
1578 []
1579 (group
1579 (group
1580 (group
1580 (group
1581 (func
1581 (func
1582 ('symbol', 'filelog')
1582 ('symbol', 'filelog')
1583 ('string', 'a'))))
1583 ('string', 'a'))))
1584 $ testlog a b
1584 $ testlog a b
1585 []
1585 []
1586 (group
1586 (group
1587 (group
1587 (group
1588 (or
1588 (or
1589 (func
1589 (func
1590 ('symbol', 'filelog')
1590 ('symbol', 'filelog')
1591 ('string', 'a'))
1591 ('string', 'a'))
1592 (func
1592 (func
1593 ('symbol', 'filelog')
1593 ('symbol', 'filelog')
1594 ('string', 'b')))))
1594 ('string', 'b')))))
1595
1595
1596 Test falling back to slow path for non-existing files
1596 Test falling back to slow path for non-existing files
1597
1597
1598 $ testlog a c
1598 $ testlog a c
1599 []
1599 []
1600 (group
1600 (group
1601 (func
1601 (func
1602 ('symbol', '_matchfiles')
1602 ('symbol', '_matchfiles')
1603 (list
1603 (list
1604 (list
1604 (list
1605 (list
1605 (list
1606 ('string', 'r:')
1606 ('string', 'r:')
1607 ('string', 'd:relpath'))
1607 ('string', 'd:relpath'))
1608 ('string', 'p:a'))
1608 ('string', 'p:a'))
1609 ('string', 'p:c'))))
1609 ('string', 'p:c'))))
1610
1610
1611 Test multiple --include/--exclude/paths
1611 Test multiple --include/--exclude/paths
1612
1612
1613 $ testlog --include a --include e --exclude b --exclude e a e
1613 $ testlog --include a --include e --exclude b --exclude e a e
1614 []
1614 []
1615 (group
1615 (group
1616 (func
1616 (func
1617 ('symbol', '_matchfiles')
1617 ('symbol', '_matchfiles')
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 (list
1624 (list
1625 ('string', 'r:')
1625 ('string', 'r:')
1626 ('string', 'd:relpath'))
1626 ('string', 'd:relpath'))
1627 ('string', 'p:a'))
1627 ('string', 'p:a'))
1628 ('string', 'p:e'))
1628 ('string', 'p:e'))
1629 ('string', 'i:a'))
1629 ('string', 'i:a'))
1630 ('string', 'i:e'))
1630 ('string', 'i:e'))
1631 ('string', 'x:b'))
1631 ('string', 'x:b'))
1632 ('string', 'x:e'))))
1632 ('string', 'x:e'))))
1633
1633
1634 Test glob expansion of pats
1634 Test glob expansion of pats
1635
1635
1636 $ expandglobs=`$PYTHON -c "import mercurial.util; \
1636 $ expandglobs=`$PYTHON -c "import mercurial.util; \
1637 > print mercurial.util.expandglobs and 'true' or 'false'"`
1637 > print mercurial.util.expandglobs and 'true' or 'false'"`
1638 $ if [ $expandglobs = "true" ]; then
1638 $ if [ $expandglobs = "true" ]; then
1639 > testlog 'a*';
1639 > testlog 'a*';
1640 > else
1640 > else
1641 > testlog a*;
1641 > testlog a*;
1642 > fi;
1642 > fi;
1643 []
1643 []
1644 (group
1644 (group
1645 (group
1645 (group
1646 (func
1646 (func
1647 ('symbol', 'filelog')
1647 ('symbol', 'filelog')
1648 ('string', 'aa'))))
1648 ('string', 'aa'))))
1649
1649
1650 Test --follow on a non-existent directory
1650 Test --follow on a non-existent directory
1651
1651
1652 $ testlog -f dir
1652 $ testlog -f 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 abort: cannot follow file not in parent revision: "dir"
1655 abort: cannot follow file not in parent revision: "dir"
1656
1656
1657 Test --follow on a directory
1657 Test --follow on a directory
1658
1658
1659 $ hg up -q '.^'
1659 $ hg up -q '.^'
1660 $ testlog -f dir
1660 $ testlog -f dir
1661 []
1661 []
1662 (group
1662 (group
1663 (and
1663 (and
1664 (func
1664 (func
1665 ('symbol', 'ancestors')
1665 ('symbol', 'ancestors')
1666 ('symbol', '.'))
1666 ('symbol', '.'))
1667 (func
1667 (func
1668 ('symbol', '_matchfiles')
1668 ('symbol', '_matchfiles')
1669 (list
1669 (list
1670 (list
1670 (list
1671 ('string', 'r:')
1671 ('string', 'r:')
1672 ('string', 'd:relpath'))
1672 ('string', 'd:relpath'))
1673 ('string', 'p:dir')))))
1673 ('string', 'p:dir')))))
1674 $ hg up -q tip
1674 $ hg up -q tip
1675
1675
1676 Test --follow on file not in parent revision
1676 Test --follow on file not in parent revision
1677
1677
1678 $ testlog -f a
1678 $ testlog -f a
1679 abort: cannot follow file not in parent revision: "a"
1679 abort: cannot follow file not in parent revision: "a"
1680 abort: cannot follow file not in parent revision: "a"
1680 abort: cannot follow file not in parent revision: "a"
1681 abort: cannot follow file not in parent revision: "a"
1681 abort: cannot follow file not in parent revision: "a"
1682
1682
1683 Test --follow and patterns
1683 Test --follow and patterns
1684
1684
1685 $ testlog -f 'glob:*'
1685 $ testlog -f 'glob:*'
1686 []
1686 []
1687 (group
1687 (group
1688 (and
1688 (and
1689 (func
1689 (func
1690 ('symbol', 'ancestors')
1690 ('symbol', 'ancestors')
1691 ('symbol', '.'))
1691 ('symbol', '.'))
1692 (func
1692 (func
1693 ('symbol', '_matchfiles')
1693 ('symbol', '_matchfiles')
1694 (list
1694 (list
1695 (list
1695 (list
1696 ('string', 'r:')
1696 ('string', 'r:')
1697 ('string', 'd:relpath'))
1697 ('string', 'd:relpath'))
1698 ('string', 'p:glob:*')))))
1698 ('string', 'p:glob:*')))))
1699
1699
1700 Test --follow on a single rename
1700 Test --follow on a single rename
1701
1701
1702 $ hg up -q 2
1702 $ hg up -q 2
1703 $ testlog -f a
1703 $ testlog -f a
1704 []
1704 []
1705 (group
1705 (group
1706 (group
1706 (group
1707 (func
1707 (func
1708 ('symbol', 'follow')
1708 ('symbol', 'follow')
1709 ('string', 'a'))))
1709 ('string', 'a'))))
1710
1710
1711 Test --follow and multiple renames
1711 Test --follow and multiple renames
1712
1712
1713 $ hg up -q tip
1713 $ hg up -q tip
1714 $ testlog -f e
1714 $ testlog -f e
1715 []
1715 []
1716 (group
1716 (group
1717 (group
1717 (group
1718 (func
1718 (func
1719 ('symbol', 'follow')
1719 ('symbol', 'follow')
1720 ('string', 'e'))))
1720 ('string', 'e'))))
1721
1721
1722 Test --follow and multiple filelog heads
1722 Test --follow and multiple filelog heads
1723
1723
1724 $ hg up -q 2
1724 $ hg up -q 2
1725 $ testlog -f g
1725 $ testlog -f g
1726 []
1726 []
1727 (group
1727 (group
1728 (group
1728 (group
1729 (func
1729 (func
1730 ('symbol', 'follow')
1730 ('symbol', 'follow')
1731 ('string', 'g'))))
1731 ('string', 'g'))))
1732 $ cat log.nodes
1732 $ cat log.nodes
1733 nodetag 2
1733 nodetag 2
1734 nodetag 1
1734 nodetag 1
1735 nodetag 0
1735 nodetag 0
1736 $ hg up -q tip
1736 $ hg up -q tip
1737 $ testlog -f g
1737 $ testlog -f g
1738 []
1738 []
1739 (group
1739 (group
1740 (group
1740 (group
1741 (func
1741 (func
1742 ('symbol', 'follow')
1742 ('symbol', 'follow')
1743 ('string', 'g'))))
1743 ('string', 'g'))))
1744 $ cat log.nodes
1744 $ cat log.nodes
1745 nodetag 3
1745 nodetag 3
1746 nodetag 2
1746 nodetag 2
1747 nodetag 0
1747 nodetag 0
1748
1748
1749 Test --follow and multiple files
1749 Test --follow and multiple files
1750
1750
1751 $ testlog -f g e
1751 $ testlog -f g e
1752 []
1752 []
1753 (group
1753 (group
1754 (group
1754 (group
1755 (or
1755 (or
1756 (func
1756 (func
1757 ('symbol', 'follow')
1757 ('symbol', 'follow')
1758 ('string', 'g'))
1758 ('string', 'g'))
1759 (func
1759 (func
1760 ('symbol', 'follow')
1760 ('symbol', 'follow')
1761 ('string', 'e')))))
1761 ('string', 'e')))))
1762 $ cat log.nodes
1762 $ cat log.nodes
1763 nodetag 4
1763 nodetag 4
1764 nodetag 3
1764 nodetag 3
1765 nodetag 2
1765 nodetag 2
1766 nodetag 1
1766 nodetag 1
1767 nodetag 0
1767 nodetag 0
1768
1768
1769 Test --follow null parent
1769 Test --follow null parent
1770
1770
1771 $ hg up -q null
1771 $ hg up -q null
1772 $ testlog -f
1772 $ testlog -f
1773 []
1773 []
1774 []
1774 []
1775
1775
1776 Test --follow-first
1776 Test --follow-first
1777
1777
1778 $ hg up -q 3
1778 $ hg up -q 3
1779 $ echo ee > e
1779 $ echo ee > e
1780 $ hg ci -Am "add another e" e
1780 $ hg ci -Am "add another e" e
1781 created new head
1781 created new head
1782 $ hg merge --tool internal:other 4
1782 $ hg merge --tool internal:other 4
1783 0 files updated, 1 files merged, 1 files removed, 0 files unresolved
1783 0 files updated, 1 files merged, 1 files removed, 0 files unresolved
1784 (branch merge, don't forget to commit)
1784 (branch merge, don't forget to commit)
1785 $ echo merge > e
1785 $ echo merge > e
1786 $ hg ci -m "merge 5 and 4"
1786 $ hg ci -m "merge 5 and 4"
1787 $ testlog --follow-first
1787 $ testlog --follow-first
1788 []
1788 []
1789 (group
1789 (group
1790 (func
1790 (func
1791 ('symbol', '_firstancestors')
1791 ('symbol', '_firstancestors')
1792 (func
1792 (func
1793 ('symbol', 'rev')
1793 ('symbol', 'rev')
1794 ('symbol', '6'))))
1794 ('symbol', '6'))))
1795
1795
1796 Cannot compare with log --follow-first FILE as it never worked
1796 Cannot compare with log --follow-first FILE as it never worked
1797
1797
1798 $ hg log -G --print-revset --follow-first e
1798 $ hg log -G --print-revset --follow-first e
1799 []
1799 []
1800 (group
1800 (group
1801 (group
1801 (group
1802 (func
1802 (func
1803 ('symbol', '_followfirst')
1803 ('symbol', '_followfirst')
1804 ('string', 'e'))))
1804 ('string', 'e'))))
1805 $ hg log -G --follow-first e --template '{rev} {desc|firstline}\n'
1805 $ hg log -G --follow-first e --template '{rev} {desc|firstline}\n'
1806 @ 6 merge 5 and 4
1806 @ 6 merge 5 and 4
1807 |\
1807 |\
1808 o | 5 add another e
1808 o | 5 add another e
1809 | |
1809 | |
1810
1810
1811 Test --copies
1811 Test --copies
1812
1812
1813 $ hg log -G --copies --template "{rev} {desc|firstline} \
1813 $ hg log -G --copies --template "{rev} {desc|firstline} \
1814 > copies: {file_copies_switch}\n"
1814 > copies: {file_copies_switch}\n"
1815 @ 6 merge 5 and 4 copies:
1815 @ 6 merge 5 and 4 copies:
1816 |\
1816 |\
1817 | o 5 add another e copies:
1817 | o 5 add another e copies:
1818 | |
1818 | |
1819 o | 4 mv dir/b e copies: e (dir/b)
1819 o | 4 mv dir/b e copies: e (dir/b)
1820 |/
1820 |/
1821 o 3 mv a b; add d copies: b (a)g (f)
1821 o 3 mv a b; add d copies: b (a)g (f)
1822 |
1822 |
1823 o 2 mv b dir/b copies: dir/b (b)
1823 o 2 mv b dir/b copies: dir/b (b)
1824 |
1824 |
1825 o 1 copy a b copies: b (a)g (f)
1825 o 1 copy a b copies: b (a)g (f)
1826 |
1826 |
1827 o 0 add a copies:
1827 o 0 add a copies:
1828
1828
1829 Test "set:..." and parent revision
1829 Test "set:..." and parent revision
1830
1830
1831 $ hg up -q 4
1831 $ hg up -q 4
1832 $ testlog "set:copied()"
1832 $ testlog "set:copied()"
1833 []
1833 []
1834 (group
1834 (group
1835 (func
1835 (func
1836 ('symbol', '_matchfiles')
1836 ('symbol', '_matchfiles')
1837 (list
1837 (list
1838 (list
1838 (list
1839 ('string', 'r:')
1839 ('string', 'r:')
1840 ('string', 'd:relpath'))
1840 ('string', 'd:relpath'))
1841 ('string', 'p:set:copied()'))))
1841 ('string', 'p:set:copied()'))))
1842 $ testlog --include "set:copied()"
1842 $ testlog --include "set:copied()"
1843 []
1843 []
1844 (group
1844 (group
1845 (func
1845 (func
1846 ('symbol', '_matchfiles')
1846 ('symbol', '_matchfiles')
1847 (list
1847 (list
1848 (list
1848 (list
1849 ('string', 'r:')
1849 ('string', 'r:')
1850 ('string', 'd:relpath'))
1850 ('string', 'd:relpath'))
1851 ('string', 'i:set:copied()'))))
1851 ('string', 'i:set:copied()'))))
1852 $ testlog -r "sort(file('set:copied()'), -rev)"
1852 $ testlog -r "sort(file('set:copied()'), -rev)"
1853 ["sort(file('set:copied()'), -rev)"]
1853 ["sort(file('set:copied()'), -rev)"]
1854 []
1854 []
1855
1855
1856 Test --removed
1856 Test --removed
1857
1857
1858 $ testlog --removed
1858 $ testlog --removed
1859 []
1859 []
1860 []
1860 []
1861 $ testlog --removed a
1861 $ testlog --removed a
1862 []
1862 []
1863 (group
1863 (group
1864 (func
1864 (func
1865 ('symbol', '_matchfiles')
1865 ('symbol', '_matchfiles')
1866 (list
1866 (list
1867 (list
1867 (list
1868 ('string', 'r:')
1868 ('string', 'r:')
1869 ('string', 'd:relpath'))
1869 ('string', 'd:relpath'))
1870 ('string', 'p:a'))))
1870 ('string', 'p:a'))))
1871 $ testlog --removed --follow a
1871 $ testlog --removed --follow a
1872 []
1872 []
1873 (group
1873 (group
1874 (and
1874 (and
1875 (func
1875 (func
1876 ('symbol', 'ancestors')
1876 ('symbol', 'ancestors')
1877 ('symbol', '.'))
1877 ('symbol', '.'))
1878 (func
1878 (func
1879 ('symbol', '_matchfiles')
1879 ('symbol', '_matchfiles')
1880 (list
1880 (list
1881 (list
1881 (list
1882 ('string', 'r:')
1882 ('string', 'r:')
1883 ('string', 'd:relpath'))
1883 ('string', 'd:relpath'))
1884 ('string', 'p:a')))))
1884 ('string', 'p:a')))))
1885
1885
1886 Test --patch and --stat with --follow and --follow-first
1886 Test --patch and --stat with --follow and --follow-first
1887
1887
1888 $ hg up -q 3
1888 $ hg up -q 3
1889 $ hg log -G --git --patch b
1889 $ hg log -G --git --patch b
1890 o changeset: 1:216d4c92cf98
1890 o changeset: 1:216d4c92cf98
1891 | user: test
1891 | user: test
1892 | date: Thu Jan 01 00:00:00 1970 +0000
1892 | date: Thu Jan 01 00:00:00 1970 +0000
1893 | summary: copy a b
1893 | summary: copy a b
1894 |
1894 |
1895 | diff --git a/a b/b
1895 | diff --git a/a b/b
1896 | copy from a
1896 | copy from a
1897 | copy to b
1897 | copy to b
1898 |
1898 |
1899
1899
1900 $ hg log -G --git --stat b
1900 $ hg log -G --git --stat b
1901 o changeset: 1:216d4c92cf98
1901 o changeset: 1:216d4c92cf98
1902 | user: test
1902 | user: test
1903 | date: Thu Jan 01 00:00:00 1970 +0000
1903 | date: Thu Jan 01 00:00:00 1970 +0000
1904 | summary: copy a b
1904 | summary: copy a b
1905 |
1905 |
1906 | b | 0
1906 | b | 0
1907 | 1 files changed, 0 insertions(+), 0 deletions(-)
1907 | 1 files changed, 0 insertions(+), 0 deletions(-)
1908 |
1908 |
1909
1909
1910 $ hg log -G --git --patch --follow b
1910 $ hg log -G --git --patch --follow b
1911 o changeset: 1:216d4c92cf98
1911 o changeset: 1:216d4c92cf98
1912 | user: test
1912 | user: test
1913 | date: Thu Jan 01 00:00:00 1970 +0000
1913 | date: Thu Jan 01 00:00:00 1970 +0000
1914 | summary: copy a b
1914 | summary: copy a b
1915 |
1915 |
1916 | diff --git a/a b/b
1916 | diff --git a/a b/b
1917 | copy from a
1917 | copy from a
1918 | copy to b
1918 | copy to b
1919 |
1919 |
1920 o changeset: 0:f8035bb17114
1920 o changeset: 0:f8035bb17114
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 a
1923 summary: add a
1924
1924
1925 diff --git a/a b/a
1925 diff --git a/a b/a
1926 new file mode 100644
1926 new file mode 100644
1927 --- /dev/null
1927 --- /dev/null
1928 +++ b/a
1928 +++ b/a
1929 @@ -0,0 +1,1 @@
1929 @@ -0,0 +1,1 @@
1930 +a
1930 +a
1931
1931
1932
1932
1933 $ hg log -G --git --stat --follow b
1933 $ hg log -G --git --stat --follow b
1934 o changeset: 1:216d4c92cf98
1934 o changeset: 1:216d4c92cf98
1935 | user: test
1935 | user: test
1936 | date: Thu Jan 01 00:00:00 1970 +0000
1936 | date: Thu Jan 01 00:00:00 1970 +0000
1937 | summary: copy a b
1937 | summary: copy a b
1938 |
1938 |
1939 | b | 0
1939 | b | 0
1940 | 1 files changed, 0 insertions(+), 0 deletions(-)
1940 | 1 files changed, 0 insertions(+), 0 deletions(-)
1941 |
1941 |
1942 o changeset: 0:f8035bb17114
1942 o changeset: 0:f8035bb17114
1943 user: test
1943 user: test
1944 date: Thu Jan 01 00:00:00 1970 +0000
1944 date: Thu Jan 01 00:00:00 1970 +0000
1945 summary: add a
1945 summary: add a
1946
1946
1947 a | 1 +
1947 a | 1 +
1948 1 files changed, 1 insertions(+), 0 deletions(-)
1948 1 files changed, 1 insertions(+), 0 deletions(-)
1949
1949
1950
1950
1951 $ hg up -q 6
1951 $ hg up -q 6
1952 $ hg log -G --git --patch --follow-first e
1952 $ hg log -G --git --patch --follow-first e
1953 @ changeset: 6:fc281d8ff18d
1953 @ changeset: 6:fc281d8ff18d
1954 |\ tag: tip
1954 |\ tag: tip
1955 | | parent: 5:99b31f1c2782
1955 | | parent: 5:99b31f1c2782
1956 | | parent: 4:17d952250a9d
1956 | | parent: 4:17d952250a9d
1957 | | user: test
1957 | | user: test
1958 | | date: Thu Jan 01 00:00:00 1970 +0000
1958 | | date: Thu Jan 01 00:00:00 1970 +0000
1959 | | summary: merge 5 and 4
1959 | | summary: merge 5 and 4
1960 | |
1960 | |
1961 | | diff --git a/e b/e
1961 | | diff --git a/e b/e
1962 | | --- a/e
1962 | | --- a/e
1963 | | +++ b/e
1963 | | +++ b/e
1964 | | @@ -1,1 +1,1 @@
1964 | | @@ -1,1 +1,1 @@
1965 | | -ee
1965 | | -ee
1966 | | +merge
1966 | | +merge
1967 | |
1967 | |
1968 o | changeset: 5:99b31f1c2782
1968 o | changeset: 5:99b31f1c2782
1969 | | parent: 3:5918b8d165d1
1969 | | parent: 3:5918b8d165d1
1970 | | user: test
1970 | | user: test
1971 | | date: Thu Jan 01 00:00:00 1970 +0000
1971 | | date: Thu Jan 01 00:00:00 1970 +0000
1972 | | summary: add another e
1972 | | summary: add another e
1973 | |
1973 | |
1974 | | diff --git a/e b/e
1974 | | diff --git a/e b/e
1975 | | new file mode 100644
1975 | | new file mode 100644
1976 | | --- /dev/null
1976 | | --- /dev/null
1977 | | +++ b/e
1977 | | +++ b/e
1978 | | @@ -0,0 +1,1 @@
1978 | | @@ -0,0 +1,1 @@
1979 | | +ee
1979 | | +ee
1980 | |
1980 | |
1981
1981
1982 Test old-style --rev
1982 Test old-style --rev
1983
1983
1984 $ hg tag 'foo-bar'
1984 $ hg tag 'foo-bar'
1985 $ testlog -r 'foo-bar'
1985 $ testlog -r 'foo-bar'
1986 ['foo-bar']
1986 ['foo-bar']
1987 []
1987 []
1988
1988
1989 Test --follow and forward --rev
1989 Test --follow and forward --rev
1990
1990
1991 $ hg up -q 6
1991 $ hg up -q 6
1992 $ echo g > g
1992 $ echo g > g
1993 $ hg ci -Am 'add g' g
1993 $ hg ci -Am 'add g' g
1994 created new head
1994 created new head
1995 $ hg up -q 2
1995 $ hg up -q 2
1996 $ hg log -G --template "{rev} {desc|firstline}\n"
1996 $ hg log -G --template "{rev} {desc|firstline}\n"
1997 o 8 add g
1997 o 8 add g
1998 |
1998 |
1999 | o 7 Added tag foo-bar for changeset fc281d8ff18d
1999 | o 7 Added tag foo-bar for changeset fc281d8ff18d
2000 |/
2000 |/
2001 o 6 merge 5 and 4
2001 o 6 merge 5 and 4
2002 |\
2002 |\
2003 | o 5 add another e
2003 | o 5 add another e
2004 | |
2004 | |
2005 o | 4 mv dir/b e
2005 o | 4 mv dir/b e
2006 |/
2006 |/
2007 o 3 mv a b; add d
2007 o 3 mv a b; add d
2008 |
2008 |
2009 @ 2 mv b dir/b
2009 @ 2 mv b dir/b
2010 |
2010 |
2011 o 1 copy a b
2011 o 1 copy a b
2012 |
2012 |
2013 o 0 add a
2013 o 0 add a
2014
2014
2015 $ hg archive -r 7 archive
2016 $ grep changessincelatesttag archive/.hg_archival.txt
2017 changessincelatesttag: 1
2018 $ rm -r archive
2019
2020 changessincelatesttag with no prior tag
2021 $ hg archive -r 4 archive
2022 $ grep changessincelatesttag archive/.hg_archival.txt
2023 changessincelatesttag: 5
2024
2015 $ hg export 'all()'
2025 $ hg export 'all()'
2016 # HG changeset patch
2026 # HG changeset patch
2017 # User test
2027 # User test
2018 # Date 0 0
2028 # Date 0 0
2019 # Thu Jan 01 00:00:00 1970 +0000
2029 # Thu Jan 01 00:00:00 1970 +0000
2020 # Node ID f8035bb17114da16215af3436ec5222428ace8ee
2030 # Node ID f8035bb17114da16215af3436ec5222428ace8ee
2021 # Parent 0000000000000000000000000000000000000000
2031 # Parent 0000000000000000000000000000000000000000
2022 add a
2032 add a
2023
2033
2024 diff -r 000000000000 -r f8035bb17114 a
2034 diff -r 000000000000 -r f8035bb17114 a
2025 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2035 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2026 +++ b/a Thu Jan 01 00:00:00 1970 +0000
2036 +++ b/a Thu Jan 01 00:00:00 1970 +0000
2027 @@ -0,0 +1,1 @@
2037 @@ -0,0 +1,1 @@
2028 +a
2038 +a
2029 diff -r 000000000000 -r f8035bb17114 aa
2039 diff -r 000000000000 -r f8035bb17114 aa
2030 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2040 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2031 +++ b/aa Thu Jan 01 00:00:00 1970 +0000
2041 +++ b/aa Thu Jan 01 00:00:00 1970 +0000
2032 @@ -0,0 +1,1 @@
2042 @@ -0,0 +1,1 @@
2033 +aa
2043 +aa
2034 diff -r 000000000000 -r f8035bb17114 f
2044 diff -r 000000000000 -r f8035bb17114 f
2035 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2045 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2036 +++ b/f Thu Jan 01 00:00:00 1970 +0000
2046 +++ b/f Thu Jan 01 00:00:00 1970 +0000
2037 @@ -0,0 +1,1 @@
2047 @@ -0,0 +1,1 @@
2038 +f
2048 +f
2039 # HG changeset patch
2049 # HG changeset patch
2040 # User test
2050 # User test
2041 # Date 0 0
2051 # Date 0 0
2042 # Thu Jan 01 00:00:00 1970 +0000
2052 # Thu Jan 01 00:00:00 1970 +0000
2043 # Node ID 216d4c92cf98ff2b4641d508b76b529f3d424c92
2053 # Node ID 216d4c92cf98ff2b4641d508b76b529f3d424c92
2044 # Parent f8035bb17114da16215af3436ec5222428ace8ee
2054 # Parent f8035bb17114da16215af3436ec5222428ace8ee
2045 copy a b
2055 copy a b
2046
2056
2047 diff -r f8035bb17114 -r 216d4c92cf98 b
2057 diff -r f8035bb17114 -r 216d4c92cf98 b
2048 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2058 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2049 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2059 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2050 @@ -0,0 +1,1 @@
2060 @@ -0,0 +1,1 @@
2051 +a
2061 +a
2052 diff -r f8035bb17114 -r 216d4c92cf98 g
2062 diff -r f8035bb17114 -r 216d4c92cf98 g
2053 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2063 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2054 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2064 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2055 @@ -0,0 +1,1 @@
2065 @@ -0,0 +1,1 @@
2056 +f
2066 +f
2057 # HG changeset patch
2067 # HG changeset patch
2058 # User test
2068 # User test
2059 # Date 0 0
2069 # Date 0 0
2060 # Thu Jan 01 00:00:00 1970 +0000
2070 # Thu Jan 01 00:00:00 1970 +0000
2061 # Node ID bb573313a9e8349099b6ea2b2fb1fc7f424446f3
2071 # Node ID bb573313a9e8349099b6ea2b2fb1fc7f424446f3
2062 # Parent 216d4c92cf98ff2b4641d508b76b529f3d424c92
2072 # Parent 216d4c92cf98ff2b4641d508b76b529f3d424c92
2063 mv b dir/b
2073 mv b dir/b
2064
2074
2065 diff -r 216d4c92cf98 -r bb573313a9e8 b
2075 diff -r 216d4c92cf98 -r bb573313a9e8 b
2066 --- a/b Thu Jan 01 00:00:00 1970 +0000
2076 --- a/b Thu Jan 01 00:00:00 1970 +0000
2067 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2077 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2068 @@ -1,1 +0,0 @@
2078 @@ -1,1 +0,0 @@
2069 -a
2079 -a
2070 diff -r 216d4c92cf98 -r bb573313a9e8 dir/b
2080 diff -r 216d4c92cf98 -r bb573313a9e8 dir/b
2071 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2081 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2072 +++ b/dir/b Thu Jan 01 00:00:00 1970 +0000
2082 +++ b/dir/b Thu Jan 01 00:00:00 1970 +0000
2073 @@ -0,0 +1,1 @@
2083 @@ -0,0 +1,1 @@
2074 +a
2084 +a
2075 diff -r 216d4c92cf98 -r bb573313a9e8 f
2085 diff -r 216d4c92cf98 -r bb573313a9e8 f
2076 --- a/f Thu Jan 01 00:00:00 1970 +0000
2086 --- a/f Thu Jan 01 00:00:00 1970 +0000
2077 +++ b/f Thu Jan 01 00:00:00 1970 +0000
2087 +++ b/f Thu Jan 01 00:00:00 1970 +0000
2078 @@ -1,1 +1,2 @@
2088 @@ -1,1 +1,2 @@
2079 f
2089 f
2080 +f
2090 +f
2081 diff -r 216d4c92cf98 -r bb573313a9e8 g
2091 diff -r 216d4c92cf98 -r bb573313a9e8 g
2082 --- a/g Thu Jan 01 00:00:00 1970 +0000
2092 --- a/g Thu Jan 01 00:00:00 1970 +0000
2083 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2093 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2084 @@ -1,1 +1,2 @@
2094 @@ -1,1 +1,2 @@
2085 f
2095 f
2086 +g
2096 +g
2087 # HG changeset patch
2097 # HG changeset patch
2088 # User test
2098 # User test
2089 # Date 0 0
2099 # Date 0 0
2090 # Thu Jan 01 00:00:00 1970 +0000
2100 # Thu Jan 01 00:00:00 1970 +0000
2091 # Node ID 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2101 # Node ID 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2092 # Parent bb573313a9e8349099b6ea2b2fb1fc7f424446f3
2102 # Parent bb573313a9e8349099b6ea2b2fb1fc7f424446f3
2093 mv a b; add d
2103 mv a b; add d
2094
2104
2095 diff -r bb573313a9e8 -r 5918b8d165d1 a
2105 diff -r bb573313a9e8 -r 5918b8d165d1 a
2096 --- a/a Thu Jan 01 00:00:00 1970 +0000
2106 --- a/a Thu Jan 01 00:00:00 1970 +0000
2097 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2107 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2098 @@ -1,1 +0,0 @@
2108 @@ -1,1 +0,0 @@
2099 -a
2109 -a
2100 diff -r bb573313a9e8 -r 5918b8d165d1 b
2110 diff -r bb573313a9e8 -r 5918b8d165d1 b
2101 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2111 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2102 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2112 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2103 @@ -0,0 +1,1 @@
2113 @@ -0,0 +1,1 @@
2104 +a
2114 +a
2105 diff -r bb573313a9e8 -r 5918b8d165d1 d
2115 diff -r bb573313a9e8 -r 5918b8d165d1 d
2106 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2116 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2107 +++ b/d Thu Jan 01 00:00:00 1970 +0000
2117 +++ b/d Thu Jan 01 00:00:00 1970 +0000
2108 @@ -0,0 +1,1 @@
2118 @@ -0,0 +1,1 @@
2109 +a
2119 +a
2110 diff -r bb573313a9e8 -r 5918b8d165d1 g
2120 diff -r bb573313a9e8 -r 5918b8d165d1 g
2111 --- a/g Thu Jan 01 00:00:00 1970 +0000
2121 --- a/g Thu Jan 01 00:00:00 1970 +0000
2112 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2122 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2113 @@ -1,2 +1,2 @@
2123 @@ -1,2 +1,2 @@
2114 f
2124 f
2115 -g
2125 -g
2116 +f
2126 +f
2117 # HG changeset patch
2127 # HG changeset patch
2118 # User test
2128 # User test
2119 # Date 0 0
2129 # Date 0 0
2120 # Thu Jan 01 00:00:00 1970 +0000
2130 # Thu Jan 01 00:00:00 1970 +0000
2121 # Node ID 17d952250a9d03cc3dc77b199ab60e959b9b0260
2131 # Node ID 17d952250a9d03cc3dc77b199ab60e959b9b0260
2122 # Parent 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2132 # Parent 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2123 mv dir/b e
2133 mv dir/b e
2124
2134
2125 diff -r 5918b8d165d1 -r 17d952250a9d dir/b
2135 diff -r 5918b8d165d1 -r 17d952250a9d dir/b
2126 --- a/dir/b Thu Jan 01 00:00:00 1970 +0000
2136 --- a/dir/b Thu Jan 01 00:00:00 1970 +0000
2127 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2137 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2128 @@ -1,1 +0,0 @@
2138 @@ -1,1 +0,0 @@
2129 -a
2139 -a
2130 diff -r 5918b8d165d1 -r 17d952250a9d e
2140 diff -r 5918b8d165d1 -r 17d952250a9d e
2131 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2141 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2132 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2142 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2133 @@ -0,0 +1,1 @@
2143 @@ -0,0 +1,1 @@
2134 +a
2144 +a
2135 # HG changeset patch
2145 # HG changeset patch
2136 # User test
2146 # User test
2137 # Date 0 0
2147 # Date 0 0
2138 # Thu Jan 01 00:00:00 1970 +0000
2148 # Thu Jan 01 00:00:00 1970 +0000
2139 # Node ID 99b31f1c2782e2deb1723cef08930f70fc84b37b
2149 # Node ID 99b31f1c2782e2deb1723cef08930f70fc84b37b
2140 # Parent 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2150 # Parent 5918b8d165d1364e78a66d02e66caa0133c5d1ed
2141 add another e
2151 add another e
2142
2152
2143 diff -r 5918b8d165d1 -r 99b31f1c2782 e
2153 diff -r 5918b8d165d1 -r 99b31f1c2782 e
2144 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2154 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2145 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2155 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2146 @@ -0,0 +1,1 @@
2156 @@ -0,0 +1,1 @@
2147 +ee
2157 +ee
2148 # HG changeset patch
2158 # HG changeset patch
2149 # User test
2159 # User test
2150 # Date 0 0
2160 # Date 0 0
2151 # Thu Jan 01 00:00:00 1970 +0000
2161 # Thu Jan 01 00:00:00 1970 +0000
2152 # Node ID fc281d8ff18d999ad6497b3d27390bcd695dcc73
2162 # Node ID fc281d8ff18d999ad6497b3d27390bcd695dcc73
2153 # Parent 99b31f1c2782e2deb1723cef08930f70fc84b37b
2163 # Parent 99b31f1c2782e2deb1723cef08930f70fc84b37b
2154 # Parent 17d952250a9d03cc3dc77b199ab60e959b9b0260
2164 # Parent 17d952250a9d03cc3dc77b199ab60e959b9b0260
2155 merge 5 and 4
2165 merge 5 and 4
2156
2166
2157 diff -r 99b31f1c2782 -r fc281d8ff18d dir/b
2167 diff -r 99b31f1c2782 -r fc281d8ff18d dir/b
2158 --- a/dir/b Thu Jan 01 00:00:00 1970 +0000
2168 --- a/dir/b Thu Jan 01 00:00:00 1970 +0000
2159 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2169 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2160 @@ -1,1 +0,0 @@
2170 @@ -1,1 +0,0 @@
2161 -a
2171 -a
2162 diff -r 99b31f1c2782 -r fc281d8ff18d e
2172 diff -r 99b31f1c2782 -r fc281d8ff18d e
2163 --- a/e Thu Jan 01 00:00:00 1970 +0000
2173 --- a/e Thu Jan 01 00:00:00 1970 +0000
2164 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2174 +++ b/e Thu Jan 01 00:00:00 1970 +0000
2165 @@ -1,1 +1,1 @@
2175 @@ -1,1 +1,1 @@
2166 -ee
2176 -ee
2167 +merge
2177 +merge
2168 # HG changeset patch
2178 # HG changeset patch
2169 # User test
2179 # User test
2170 # Date 0 0
2180 # Date 0 0
2171 # Thu Jan 01 00:00:00 1970 +0000
2181 # Thu Jan 01 00:00:00 1970 +0000
2172 # Node ID 02dbb8e276b8ab7abfd07cab50c901647e75c2dd
2182 # Node ID 02dbb8e276b8ab7abfd07cab50c901647e75c2dd
2173 # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73
2183 # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73
2174 Added tag foo-bar for changeset fc281d8ff18d
2184 Added tag foo-bar for changeset fc281d8ff18d
2175
2185
2176 diff -r fc281d8ff18d -r 02dbb8e276b8 .hgtags
2186 diff -r fc281d8ff18d -r 02dbb8e276b8 .hgtags
2177 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2187 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2178 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
2188 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
2179 @@ -0,0 +1,1 @@
2189 @@ -0,0 +1,1 @@
2180 +fc281d8ff18d999ad6497b3d27390bcd695dcc73 foo-bar
2190 +fc281d8ff18d999ad6497b3d27390bcd695dcc73 foo-bar
2181 # HG changeset patch
2191 # HG changeset patch
2182 # User test
2192 # User test
2183 # Date 0 0
2193 # Date 0 0
2184 # Thu Jan 01 00:00:00 1970 +0000
2194 # Thu Jan 01 00:00:00 1970 +0000
2185 # Node ID 24c2e826ddebf80f9dcd60b856bdb8e6715c5449
2195 # Node ID 24c2e826ddebf80f9dcd60b856bdb8e6715c5449
2186 # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73
2196 # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73
2187 add g
2197 add g
2188
2198
2189 diff -r fc281d8ff18d -r 24c2e826ddeb g
2199 diff -r fc281d8ff18d -r 24c2e826ddeb g
2190 --- a/g Thu Jan 01 00:00:00 1970 +0000
2200 --- a/g Thu Jan 01 00:00:00 1970 +0000
2191 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2201 +++ b/g Thu Jan 01 00:00:00 1970 +0000
2192 @@ -1,2 +1,1 @@
2202 @@ -1,2 +1,1 @@
2193 -f
2203 -f
2194 -f
2204 -f
2195 +g
2205 +g
2196 $ testlog --follow -r6 -r8 -r5 -r7 -r4
2206 $ testlog --follow -r6 -r8 -r5 -r7 -r4
2197 ['6', '8', '5', '7', '4']
2207 ['6', '8', '5', '7', '4']
2198 (group
2208 (group
2199 (func
2209 (func
2200 ('symbol', 'descendants')
2210 ('symbol', 'descendants')
2201 (func
2211 (func
2202 ('symbol', 'rev')
2212 ('symbol', 'rev')
2203 ('symbol', '6'))))
2213 ('symbol', '6'))))
2204
2214
2205 Test --follow-first and forward --rev
2215 Test --follow-first and forward --rev
2206
2216
2207 $ testlog --follow-first -r6 -r8 -r5 -r7 -r4
2217 $ testlog --follow-first -r6 -r8 -r5 -r7 -r4
2208 ['6', '8', '5', '7', '4']
2218 ['6', '8', '5', '7', '4']
2209 (group
2219 (group
2210 (func
2220 (func
2211 ('symbol', '_firstdescendants')
2221 ('symbol', '_firstdescendants')
2212 (func
2222 (func
2213 ('symbol', 'rev')
2223 ('symbol', 'rev')
2214 ('symbol', '6'))))
2224 ('symbol', '6'))))
2215 --- log.nodes * (glob)
2225 --- log.nodes * (glob)
2216 +++ glog.nodes * (glob)
2226 +++ glog.nodes * (glob)
2217 @@ -1,3 +1,3 @@
2227 @@ -1,3 +1,3 @@
2218 -nodetag 6
2228 -nodetag 6
2219 nodetag 8
2229 nodetag 8
2220 nodetag 7
2230 nodetag 7
2221 +nodetag 6
2231 +nodetag 6
2222
2232
2223 Test --follow and backward --rev
2233 Test --follow and backward --rev
2224
2234
2225 $ testlog --follow -r6 -r5 -r7 -r8 -r4
2235 $ testlog --follow -r6 -r5 -r7 -r8 -r4
2226 ['6', '5', '7', '8', '4']
2236 ['6', '5', '7', '8', '4']
2227 (group
2237 (group
2228 (func
2238 (func
2229 ('symbol', 'ancestors')
2239 ('symbol', 'ancestors')
2230 (func
2240 (func
2231 ('symbol', 'rev')
2241 ('symbol', 'rev')
2232 ('symbol', '6'))))
2242 ('symbol', '6'))))
2233
2243
2234 Test --follow-first and backward --rev
2244 Test --follow-first and backward --rev
2235
2245
2236 $ testlog --follow-first -r6 -r5 -r7 -r8 -r4
2246 $ testlog --follow-first -r6 -r5 -r7 -r8 -r4
2237 ['6', '5', '7', '8', '4']
2247 ['6', '5', '7', '8', '4']
2238 (group
2248 (group
2239 (func
2249 (func
2240 ('symbol', '_firstancestors')
2250 ('symbol', '_firstancestors')
2241 (func
2251 (func
2242 ('symbol', 'rev')
2252 ('symbol', 'rev')
2243 ('symbol', '6'))))
2253 ('symbol', '6'))))
2244
2254
2245 Test --follow with --rev of graphlog extension
2255 Test --follow with --rev of graphlog extension
2246
2256
2247 $ hg --config extensions.graphlog= glog -qfr1
2257 $ hg --config extensions.graphlog= glog -qfr1
2248 o 1:216d4c92cf98
2258 o 1:216d4c92cf98
2249 |
2259 |
2250 o 0:f8035bb17114
2260 o 0:f8035bb17114
2251
2261
2252
2262
2253 Test subdir
2263 Test subdir
2254
2264
2255 $ hg up -q 3
2265 $ hg up -q 3
2256 $ cd dir
2266 $ cd dir
2257 $ testlog .
2267 $ testlog .
2258 []
2268 []
2259 (group
2269 (group
2260 (func
2270 (func
2261 ('symbol', '_matchfiles')
2271 ('symbol', '_matchfiles')
2262 (list
2272 (list
2263 (list
2273 (list
2264 ('string', 'r:')
2274 ('string', 'r:')
2265 ('string', 'd:relpath'))
2275 ('string', 'd:relpath'))
2266 ('string', 'p:.'))))
2276 ('string', 'p:.'))))
2267 $ testlog ../b
2277 $ testlog ../b
2268 []
2278 []
2269 (group
2279 (group
2270 (group
2280 (group
2271 (func
2281 (func
2272 ('symbol', 'filelog')
2282 ('symbol', 'filelog')
2273 ('string', '../b'))))
2283 ('string', '../b'))))
2274 $ testlog -f ../b
2284 $ testlog -f ../b
2275 []
2285 []
2276 (group
2286 (group
2277 (group
2287 (group
2278 (func
2288 (func
2279 ('symbol', 'follow')
2289 ('symbol', 'follow')
2280 ('string', 'b'))))
2290 ('string', 'b'))))
2281 $ cd ..
2291 $ cd ..
2282
2292
2283 Test --hidden
2293 Test --hidden
2284 (enable obsolete)
2294 (enable obsolete)
2285
2295
2286 $ cat >> $HGRCPATH << EOF
2296 $ cat >> $HGRCPATH << EOF
2287 > [experimental]
2297 > [experimental]
2288 > evolution=createmarkers
2298 > evolution=createmarkers
2289 > EOF
2299 > EOF
2290
2300
2291 $ hg debugobsolete `hg id --debug -i -r 8`
2301 $ hg debugobsolete `hg id --debug -i -r 8`
2292 $ testlog
2302 $ testlog
2293 []
2303 []
2294 []
2304 []
2295 $ testlog --hidden
2305 $ testlog --hidden
2296 []
2306 []
2297 []
2307 []
2298 $ hg log -G --template '{rev} {desc}\n'
2308 $ hg log -G --template '{rev} {desc}\n'
2299 o 7 Added tag foo-bar for changeset fc281d8ff18d
2309 o 7 Added tag foo-bar for changeset fc281d8ff18d
2300 |
2310 |
2301 o 6 merge 5 and 4
2311 o 6 merge 5 and 4
2302 |\
2312 |\
2303 | o 5 add another e
2313 | o 5 add another e
2304 | |
2314 | |
2305 o | 4 mv dir/b e
2315 o | 4 mv dir/b e
2306 |/
2316 |/
2307 @ 3 mv a b; add d
2317 @ 3 mv a b; add d
2308 |
2318 |
2309 o 2 mv b dir/b
2319 o 2 mv b dir/b
2310 |
2320 |
2311 o 1 copy a b
2321 o 1 copy a b
2312 |
2322 |
2313 o 0 add a
2323 o 0 add a
2314
2324
2315
2325
2316 A template without trailing newline should do something sane
2326 A template without trailing newline should do something sane
2317
2327
2318 $ hg log -G -r ::2 --template '{rev} {desc}'
2328 $ hg log -G -r ::2 --template '{rev} {desc}'
2319 o 2 mv b dir/b
2329 o 2 mv b dir/b
2320 |
2330 |
2321 o 1 copy a b
2331 o 1 copy a b
2322 |
2332 |
2323 o 0 add a
2333 o 0 add a
2324
2334
2325
2335
2326 Extra newlines must be preserved
2336 Extra newlines must be preserved
2327
2337
2328 $ hg log -G -r ::2 --template '\n{rev} {desc}\n\n'
2338 $ hg log -G -r ::2 --template '\n{rev} {desc}\n\n'
2329 o
2339 o
2330 | 2 mv b dir/b
2340 | 2 mv b dir/b
2331 |
2341 |
2332 o
2342 o
2333 | 1 copy a b
2343 | 1 copy a b
2334 |
2344 |
2335 o
2345 o
2336 0 add a
2346 0 add a
2337
2347
2338
2348
2339 The almost-empty template should do something sane too ...
2349 The almost-empty template should do something sane too ...
2340
2350
2341 $ hg log -G -r ::2 --template '\n'
2351 $ hg log -G -r ::2 --template '\n'
2342 o
2352 o
2343 |
2353 |
2344 o
2354 o
2345 |
2355 |
2346 o
2356 o
2347
2357
2348
2358
2349 issue3772
2359 issue3772
2350
2360
2351 $ hg log -G -r :null
2361 $ hg log -G -r :null
2352 o changeset: 0:f8035bb17114
2362 o changeset: 0:f8035bb17114
2353 | user: test
2363 | user: test
2354 | date: Thu Jan 01 00:00:00 1970 +0000
2364 | date: Thu Jan 01 00:00:00 1970 +0000
2355 | summary: add a
2365 | summary: add a
2356 |
2366 |
2357 o changeset: -1:000000000000
2367 o changeset: -1:000000000000
2358 user:
2368 user:
2359 date: Thu Jan 01 00:00:00 1970 +0000
2369 date: Thu Jan 01 00:00:00 1970 +0000
2360
2370
2361 $ hg log -G -r null:null
2371 $ hg log -G -r null:null
2362 o changeset: -1:000000000000
2372 o changeset: -1:000000000000
2363 user:
2373 user:
2364 date: Thu Jan 01 00:00:00 1970 +0000
2374 date: Thu Jan 01 00:00:00 1970 +0000
2365
2375
2366
2376
2367 should not draw line down to null due to the magic of fullreposet
2377 should not draw line down to null due to the magic of fullreposet
2368
2378
2369 $ hg log -G -r 'all()' | tail -6
2379 $ hg log -G -r 'all()' | tail -6
2370 |
2380 |
2371 o changeset: 0:f8035bb17114
2381 o changeset: 0:f8035bb17114
2372 user: test
2382 user: test
2373 date: Thu Jan 01 00:00:00 1970 +0000
2383 date: Thu Jan 01 00:00:00 1970 +0000
2374 summary: add a
2384 summary: add a
2375
2385
2376
2386
2377 $ hg log -G -r 'branch(default)' | tail -6
2387 $ hg log -G -r 'branch(default)' | tail -6
2378 |
2388 |
2379 o changeset: 0:f8035bb17114
2389 o changeset: 0:f8035bb17114
2380 user: test
2390 user: test
2381 date: Thu Jan 01 00:00:00 1970 +0000
2391 date: Thu Jan 01 00:00:00 1970 +0000
2382 summary: add a
2392 summary: add a
2383
2393
2384
2394
2385 $ cd ..
2395 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now