tests/test-revset-legacy-lookup.t
changeset 37759 aa3f63e02c3c
child 37760 29eb4cafeeb8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-revset-legacy-lookup.t	Thu Mar 01 11:37:16 2018 -0500
@@ -0,0 +1,259 @@
+
+  $ cat >> $HGRCPATH << EOF
+  > [ui]
+  > logtemplate="{rev}:{node|short} {desc} [{tags}]\n"
+  > EOF
+
+  $ hg init legacy-lookup
+  $ cd legacy-lookup
+  $ echo a > a
+  $ hg add a
+  $ hg commit -m 'first'
+  $ echo aa > a
+  $ hg commit -m 'second'
+  $ hg log -G
+  @  1:43114e71eddd second [tip]
+  |
+  o  0:a87874c6ec31 first []
+  
+
+Create a tag that looks like a revset
+
+  $ hg tag 'rev(0)'
+  $ hg log -G
+  @  2:fb616635b18f Added tag rev(0) for changeset 43114e71eddd [tip]
+  |
+  o  1:43114e71eddd second [rev(0)]
+  |
+  o  0:a87874c6ec31 first []
+  
+
+See how various things are resolved
+-----------------------------------
+
+Revision numbers
+
+  $ hg log -r '0'
+  0:a87874c6ec31 first []
+  $ hg log -r '1'
+  1:43114e71eddd second [rev(0)]
+
+"rev(x)" form (the one conflicting with the tags)
+(resolved as a label)
+
+  $ hg log -r 'rev(0)'
+  1:43114e71eddd second [rev(0)]
+  $ hg log -r 'rev(1)'
+  1:43114e71eddd second [rev(0)]
+
+same within a simple revspec
+(still resolved as the label)
+
+  $ hg log -r ':rev(0)'
+  0:a87874c6ec31 first []
+  1:43114e71eddd second [rev(0)]
+  $ hg log -r 'rev(0):'
+  1:43114e71eddd second [rev(0)]
+  2:fb616635b18f Added tag rev(0) for changeset 43114e71eddd [tip]
+
+within a more advances revset
+(still resolved as the label)
+
+  $ hg log -r 'rev(0) and branch(default)'
+  0:a87874c6ec31 first []
+
+some of the above with quote to force its resolution as a label
+
+  $ hg log -r ':"rev(0)"'
+  0:a87874c6ec31 first []
+  1:43114e71eddd second [rev(0)]
+  $ hg log -r '"rev(0)":'
+  1:43114e71eddd second [rev(0)]
+  2:fb616635b18f Added tag rev(0) for changeset 43114e71eddd [tip]
+  $ hg log -r '"rev(0)" and branch(default)'
+  1:43114e71eddd second [rev(0)]
+
+confusing bits within parents
+
+  $ hg log -r '(rev(0))'
+  0:a87874c6ec31 first []
+  $ hg log -r '( rev(0))'
+  0:a87874c6ec31 first []
+  $ hg log -r '("rev(0)")'
+  1:43114e71eddd second [rev(0)]
+
+Test label with quote in them.
+
+  $ hg tag '"foo"'
+
+  $ hg log -r '"foo"'
+  2:fb616635b18f Added tag rev(0) for changeset 43114e71eddd ["foo"]
+  $ hg log -r '("foo")'
+  abort: unknown revision 'foo'!
+  [255]
+  $ hg log -r '("\"foo\"")'
+  2:fb616635b18f Added tag rev(0) for changeset 43114e71eddd ["foo"]
+
+Test label with dash in them.
+
+  $ hg tag 'foo-bar'
+
+  $ hg log -r 'foo-bar'
+  3:a50aae922707 Added tag "foo" for changeset fb616635b18f [foo-bar]
+  $ hg log -r '(foo-bar)'
+  3:a50aae922707 Added tag "foo" for changeset fb616635b18f [foo-bar]
+  $ hg log -r '"foo-bar"'
+  3:a50aae922707 Added tag "foo" for changeset fb616635b18f [foo-bar]
+  $ hg log -r '("foo-bar")'
+  3:a50aae922707 Added tag "foo" for changeset fb616635b18f [foo-bar]
+
+Test label with + in them.
+
+  $ hg tag 'foo+bar'
+
+  $ hg log -r 'foo+bar'
+  4:bbf52b87b370 Added tag foo-bar for changeset a50aae922707 [foo+bar]
+  $ hg log -r '(foo+bar)'
+  abort: unknown revision 'foo'!
+  [255]
+  $ hg log -r '"foo+bar"'
+  4:bbf52b87b370 Added tag foo-bar for changeset a50aae922707 [foo+bar]
+  $ hg log -r '("foo+bar")'
+  4:bbf52b87b370 Added tag foo-bar for changeset a50aae922707 [foo+bar]
+
+Test tag with numeric version number.
+
+  $ hg tag '1.2'
+
+  $ hg log -r '1.2'
+  5:ff42fde8edbb Added tag foo+bar for changeset bbf52b87b370 [1.2]
+  $ hg log -r '(1.2)'
+  5:ff42fde8edbb Added tag foo+bar for changeset bbf52b87b370 [1.2]
+  $ hg log -r '"1.2"'
+  5:ff42fde8edbb Added tag foo+bar for changeset bbf52b87b370 [1.2]
+  $ hg log -r '("1.2")'
+  5:ff42fde8edbb Added tag foo+bar for changeset bbf52b87b370 [1.2]
+  $ hg log -r '::"1.2"'
+  0:a87874c6ec31 first []
+  1:43114e71eddd second [rev(0)]
+  2:fb616635b18f Added tag rev(0) for changeset 43114e71eddd ["foo"]
+  3:a50aae922707 Added tag "foo" for changeset fb616635b18f [foo-bar]
+  4:bbf52b87b370 Added tag foo-bar for changeset a50aae922707 [foo+bar]
+  5:ff42fde8edbb Added tag foo+bar for changeset bbf52b87b370 [1.2]
+  $ hg log -r '::1.2'
+  0:a87874c6ec31 first []
+  1:43114e71eddd second [rev(0)]
+  2:fb616635b18f Added tag rev(0) for changeset 43114e71eddd ["foo"]
+  3:a50aae922707 Added tag "foo" for changeset fb616635b18f [foo-bar]
+  4:bbf52b87b370 Added tag foo-bar for changeset a50aae922707 [foo+bar]
+  5:ff42fde8edbb Added tag foo+bar for changeset bbf52b87b370 [1.2]
+
+Test tag with parenthesis (but not a valid revset)
+
+  $ hg tag 'release_4.1(candidate1)'
+
+  $ hg log -r 'release_4.1(candidate1)'
+  6:db72e24fe069 Added tag 1.2 for changeset ff42fde8edbb [release_4.1(candidate1)]
+  $ hg log -r '(release_4.1(candidate1))'
+  hg: parse error: unknown identifier: release_4.1
+  [255]
+  $ hg log -r '"release_4.1(candidate1)"'
+  6:db72e24fe069 Added tag 1.2 for changeset ff42fde8edbb [release_4.1(candidate1)]
+  $ hg log -r '("release_4.1(candidate1)")'
+  6:db72e24fe069 Added tag 1.2 for changeset ff42fde8edbb [release_4.1(candidate1)]
+  $ hg log -r '::"release_4.1(candidate1)"'
+  0:a87874c6ec31 first []
+  1:43114e71eddd second [rev(0)]
+  2:fb616635b18f Added tag rev(0) for changeset 43114e71eddd ["foo"]
+  3:a50aae922707 Added tag "foo" for changeset fb616635b18f [foo-bar]
+  4:bbf52b87b370 Added tag foo-bar for changeset a50aae922707 [foo+bar]
+  5:ff42fde8edbb Added tag foo+bar for changeset bbf52b87b370 [1.2]
+  6:db72e24fe069 Added tag 1.2 for changeset ff42fde8edbb [release_4.1(candidate1)]
+  $ hg log -r '::release_4.1(candidate1)'
+  hg: parse error: unknown identifier: release_4.1
+  [255]
+
+Test tag with parenthesis and other function like char
+
+  $ hg tag 'release_4.1(arch=x86,arm)'
+
+  $ hg log -r 'release_4.1(arch=x86,arm)'
+  7:b29b25d7d687 Added tag release_4.1(candidate1) for changeset db72e24fe069 [release_4.1(arch=x86,arm)]
+  $ hg log -r '(release_4.1(arch=x86,arm))'
+  hg: parse error: unknown identifier: release_4.1
+  [255]
+  $ hg log -r '"release_4.1(arch=x86,arm)"'
+  7:b29b25d7d687 Added tag release_4.1(candidate1) for changeset db72e24fe069 [release_4.1(arch=x86,arm)]
+  $ hg log -r '("release_4.1(arch=x86,arm)")'
+  7:b29b25d7d687 Added tag release_4.1(candidate1) for changeset db72e24fe069 [release_4.1(arch=x86,arm)]
+  $ hg log -r '::"release_4.1(arch=x86,arm)"'
+  0:a87874c6ec31 first []
+  1:43114e71eddd second [rev(0)]
+  2:fb616635b18f Added tag rev(0) for changeset 43114e71eddd ["foo"]
+  3:a50aae922707 Added tag "foo" for changeset fb616635b18f [foo-bar]
+  4:bbf52b87b370 Added tag foo-bar for changeset a50aae922707 [foo+bar]
+  5:ff42fde8edbb Added tag foo+bar for changeset bbf52b87b370 [1.2]
+  6:db72e24fe069 Added tag 1.2 for changeset ff42fde8edbb [release_4.1(candidate1)]
+  7:b29b25d7d687 Added tag release_4.1(candidate1) for changeset db72e24fe069 [release_4.1(arch=x86,arm)]
+  $ hg log -r '::release_4.1(arch=x86,arm)'
+  hg: parse error: unknown identifier: release_4.1
+  [255]
+
+Test tag conflicting with revset function
+
+  $ hg tag 'secret(team=foo,project=bar)'
+
+  $ hg log -r 'secret(team=foo,project=bar)'
+  8:6b2e2d4ea455 Added tag release_4.1(arch=x86,arm) for changeset b29b25d7d687 [secret(team=foo,project=bar)]
+  $ hg log -r '(secret(team=foo,project=bar))'
+  hg: parse error: secret takes no arguments
+  [255]
+  $ hg log -r '"secret(team=foo,project=bar)"'
+  8:6b2e2d4ea455 Added tag release_4.1(arch=x86,arm) for changeset b29b25d7d687 [secret(team=foo,project=bar)]
+  $ hg log -r '("secret(team=foo,project=bar)")'
+  8:6b2e2d4ea455 Added tag release_4.1(arch=x86,arm) for changeset b29b25d7d687 [secret(team=foo,project=bar)]
+  $ hg log -r '::"secret(team=foo,project=bar)"'
+  0:a87874c6ec31 first []
+  1:43114e71eddd second [rev(0)]
+  2:fb616635b18f Added tag rev(0) for changeset 43114e71eddd ["foo"]
+  3:a50aae922707 Added tag "foo" for changeset fb616635b18f [foo-bar]
+  4:bbf52b87b370 Added tag foo-bar for changeset a50aae922707 [foo+bar]
+  5:ff42fde8edbb Added tag foo+bar for changeset bbf52b87b370 [1.2]
+  6:db72e24fe069 Added tag 1.2 for changeset ff42fde8edbb [release_4.1(candidate1)]
+  7:b29b25d7d687 Added tag release_4.1(candidate1) for changeset db72e24fe069 [release_4.1(arch=x86,arm)]
+  8:6b2e2d4ea455 Added tag release_4.1(arch=x86,arm) for changeset b29b25d7d687 [secret(team=foo,project=bar)]
+  $ hg log -r '::secret(team=foo,project=bar)'
+  hg: parse error: secret takes no arguments
+  [255]
+
+Test tag with space
+
+  $ hg tag 'my little version'
+
+  $ hg log -r 'my little version'
+  9:269192bf8fc3 Added tag secret(team=foo,project=bar) for changeset 6b2e2d4ea455 [my little version]
+  $ hg log -r '(my little version)'
+  hg: parse error at 4: unexpected token: symbol
+  ((my little version)
+       ^ here)
+  [255]
+  $ hg log -r '"my little version"'
+  9:269192bf8fc3 Added tag secret(team=foo,project=bar) for changeset 6b2e2d4ea455 [my little version]
+  $ hg log -r '("my little version")'
+  9:269192bf8fc3 Added tag secret(team=foo,project=bar) for changeset 6b2e2d4ea455 [my little version]
+  $ hg log -r '::"my little version"'
+  0:a87874c6ec31 first []
+  1:43114e71eddd second [rev(0)]
+  2:fb616635b18f Added tag rev(0) for changeset 43114e71eddd ["foo"]
+  3:a50aae922707 Added tag "foo" for changeset fb616635b18f [foo-bar]
+  4:bbf52b87b370 Added tag foo-bar for changeset a50aae922707 [foo+bar]
+  5:ff42fde8edbb Added tag foo+bar for changeset bbf52b87b370 [1.2]
+  6:db72e24fe069 Added tag 1.2 for changeset ff42fde8edbb [release_4.1(candidate1)]
+  7:b29b25d7d687 Added tag release_4.1(candidate1) for changeset db72e24fe069 [release_4.1(arch=x86,arm)]
+  8:6b2e2d4ea455 Added tag release_4.1(arch=x86,arm) for changeset b29b25d7d687 [secret(team=foo,project=bar)]
+  9:269192bf8fc3 Added tag secret(team=foo,project=bar) for changeset 6b2e2d4ea455 [my little version]
+  $ hg log -r '::my little version'
+  hg: parse error at 5: invalid token
+  (::my little version
+        ^ here)
+  [255]