##// END OF EJS Templates
Add extension to provide the 'hg children' command (with tests)
Thomas Arendsen Hein -
r4783:8b90d763 default
parent child Browse files
Show More
@@ -0,0 +1,45 b''
1 # Mercurial extension to provide the 'hg children' command
2 #
3 # Copyright 2007 by Intevation GmbH <intevation@intevation.de>
4 # Author(s):
5 # Thomas Arendsen Hein <thomas@intevation.de>
6 #
7 # This software may be used and distributed according to the terms
8 # of the GNU General Public License, incorporated herein by reference.
9
10 from mercurial import cmdutil, util
11 from mercurial.i18n import _
12 from mercurial.node import nullid
13
14
15 def children(ui, repo, file_=None, **opts):
16 """show the children of the given or working dir revision
17
18 Print the children of the working directory's revisions.
19 If a revision is given via --rev, the children of that revision
20 will be printed. If a file argument is given, revision in
21 which the file was last changed (after the working directory
22 revision or the argument to --rev if given) is printed.
23 """
24 rev = opts.get('rev')
25 if file_:
26 ctx = repo.filectx(file_, changeid=rev)
27 else:
28 ctx = repo.changectx(rev)
29 if ctx.node() == nullid:
30 raise util.Abort(_("All non-merge changesets are children of "
31 "the null revision!"))
32
33 displayer = cmdutil.show_changeset(ui, repo, opts)
34 for node in [cp.node() for cp in ctx.children()]:
35 displayer.show(changenode=node)
36
37
38 cmdtable = {
39 "children":
40 (children,
41 [('r', 'rev', '', _('show children of the specified rev')),
42 ('', 'style', '', _('display using template map file')),
43 ('', 'template', '', _('display with template'))],
44 _('hg children [-r REV] [FILE]')),
45 }
@@ -0,0 +1,59 b''
1 #!/bin/sh
2 # test children command
3
4 cat <<EOF >> $HGRCPATH
5 [extensions]
6 hgext.children=
7 EOF
8
9 echo "% init"
10 hg init t
11 cd t
12
13 echo "% no working directory"
14 hg children
15
16 echo % setup
17 echo 0 > file0
18 hg ci -qAm 0 -d '0 0'
19
20 echo 1 > file1
21 hg ci -qAm 1 -d '1 0'
22
23 echo 2 >> file0
24 hg ci -qAm 2 -d '2 0'
25
26 hg co null
27 echo 3 > file3
28 hg ci -qAm 3 -d '3 0'
29
30 echo "% hg children at revision 3 (tip)"
31 hg children
32
33 hg co null
34 echo "% hg children at nullrev (should be 0 and 3)"
35 hg children
36
37 hg co 1
38 echo "% hg children at revision 1 (should be 2)"
39 hg children
40
41 hg co 2
42 echo "% hg children at revision 2 (other head)"
43 hg children
44
45 for i in null 0 1 2 3; do
46 echo "% hg children -r $i"
47 hg children -r $i
48 done
49
50 echo "% hg children -r 0 file0 (should be 2)"
51 hg children -r 0 file0
52
53 echo "% hg children -r 1 file0 (should be 2)"
54 hg children -r 1 file0
55
56 hg co 0
57 echo "% hg children file0 at revision 0 (should be 2)"
58 hg children file0
59
@@ -0,0 +1,52 b''
1 % init
2 % no working directory
3 abort: All non-merge changesets are children of the null revision!
4 % setup
5 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
6 % hg children at revision 3 (tip)
7 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
8 % hg children at nullrev (should be 0 and 3)
9 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
10 % hg children at revision 1 (should be 2)
11 changeset: 2:8f5eea5023c2
12 user: test
13 date: Thu Jan 01 00:00:02 1970 +0000
14 summary: 2
15
16 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
17 % hg children at revision 2 (other head)
18 % hg children -r null
19 abort: All non-merge changesets are children of the null revision!
20 % hg children -r 0
21 changeset: 1:708c093edef0
22 user: test
23 date: Thu Jan 01 00:00:01 1970 +0000
24 summary: 1
25
26 % hg children -r 1
27 changeset: 2:8f5eea5023c2
28 user: test
29 date: Thu Jan 01 00:00:02 1970 +0000
30 summary: 2
31
32 % hg children -r 2
33 % hg children -r 3
34 % hg children -r 0 file0 (should be 2)
35 changeset: 2:8f5eea5023c2
36 user: test
37 date: Thu Jan 01 00:00:02 1970 +0000
38 summary: 2
39
40 % hg children -r 1 file0 (should be 2)
41 changeset: 2:8f5eea5023c2
42 user: test
43 date: Thu Jan 01 00:00:02 1970 +0000
44 summary: 2
45
46 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
47 % hg children file0 at revision 0 (should be 2)
48 changeset: 2:8f5eea5023c2
49 user: test
50 date: Thu Jan 01 00:00:02 1970 +0000
51 summary: 2
52
General Comments 0
You need to be logged in to leave comments. Login now