##// END OF EJS Templates
parseurl: also return the revision after the "#"; add a test
Alexis S. L. Carvalho -
r5222:cbe6e263 default
parent child Browse files
Show More
@@ -0,0 +1,50 b''
1 #!/bin/sh
2 # test basic functionality of url#rev syntax
3
4 hg init repo
5 cd repo
6 echo a > a
7 hg ci -qAm 'add a' -d '0 0'
8 hg branch foo
9 echo >> a
10 hg ci -m 'change a' -d '0 0'
11 cd ..
12
13 echo '% clone repo#foo'
14 hg clone 'repo#foo' clone
15 hg --cwd clone heads
16 sed -e 's/default.*#/default = #/' clone/.hg/hgrc
17 echo
18
19 echo '% changing original repo'
20 cd repo
21 echo >> a
22 hg ci -m 'new head of branch foo' -d '0 0'
23 hg up -qC default
24 echo bar > bar
25 hg ci -qAm 'add bar' -d '0 0'
26 hg log
27 echo
28
29 echo '% outgoing'
30 hg -q outgoing '../clone#foo'
31 echo
32
33 echo '% push'
34 hg -q push '../clone#foo'
35 hg --cwd ../clone heads
36 cd ..
37 echo
38
39 echo '% rolling back'
40 cd clone
41 hg rollback
42
43 echo '% incoming'
44 hg -q incoming
45
46 echo '% pull'
47 hg -q pull
48 hg heads
49 echo
50
@@ -0,0 +1,69 b''
1 marked working directory as branch foo
2 % clone repo#foo
3 requesting all changes
4 adding changesets
5 adding manifests
6 adding file changes
7 added 2 changesets with 2 changes to 1 files
8 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
9 changeset: 1:cd2a86ecc814
10 branch: foo
11 tag: tip
12 user: test
13 date: Thu Jan 01 00:00:00 1970 +0000
14 summary: change a
15
16 [paths]
17 default = #foo
18
19 % changing original repo
20 changeset: 3:4cd725637392
21 tag: tip
22 parent: 0:1f0dee641bb7
23 user: test
24 date: Thu Jan 01 00:00:00 1970 +0000
25 summary: add bar
26
27 changeset: 2:faba9097cad4
28 branch: foo
29 user: test
30 date: Thu Jan 01 00:00:00 1970 +0000
31 summary: new head of branch foo
32
33 changeset: 1:cd2a86ecc814
34 branch: foo
35 user: test
36 date: Thu Jan 01 00:00:00 1970 +0000
37 summary: change a
38
39 changeset: 0:1f0dee641bb7
40 user: test
41 date: Thu Jan 01 00:00:00 1970 +0000
42 summary: add a
43
44
45 % outgoing
46 2:faba9097cad4
47
48 % push
49 changeset: 2:faba9097cad4
50 branch: foo
51 tag: tip
52 user: test
53 date: Thu Jan 01 00:00:00 1970 +0000
54 summary: new head of branch foo
55
56
57 % rolling back
58 rolling back last transaction
59 % incoming
60 2:faba9097cad4
61 % pull
62 changeset: 2:faba9097cad4
63 branch: foo
64 tag: tip
65 user: test
66 date: Thu Jan 01 00:00:00 1970 +0000
67 summary: new head of branch foo
68
69
@@ -462,10 +462,10 b' def parseurl(url, revs):'
462 '''parse url#branch, returning url, branch + revs'''
462 '''parse url#branch, returning url, branch + revs'''
463
463
464 if '#' not in url:
464 if '#' not in url:
465 return url, (revs or None)
465 return url, (revs or None), None
466
466
467 url, rev = url.split('#', 1)
467 url, rev = url.split('#', 1)
468 return url, revs + [rev]
468 return url, revs + [rev], rev
469
469
470 def revpair(repo, revs):
470 def revpair(repo, revs):
471 '''return pair of nodes, given list of revisions. second item can
471 '''return pair of nodes, given list of revisions. second item can
@@ -324,7 +324,7 b' def bundle(ui, repo, fname, dest=None, *'
324 visit.append(p)
324 visit.append(p)
325 else:
325 else:
326 cmdutil.setremoteconfig(ui, opts)
326 cmdutil.setremoteconfig(ui, opts)
327 dest, revs = cmdutil.parseurl(
327 dest, revs, checkout = cmdutil.parseurl(
328 ui.expandpath(dest or 'default-push', dest or 'default'), revs)
328 ui.expandpath(dest or 'default-push', dest or 'default'), revs)
329 other = hg.repository(ui, dest)
329 other = hg.repository(ui, dest)
330 o = repo.findoutgoing(other, force=opts['force'])
330 o = repo.findoutgoing(other, force=opts['force'])
@@ -1491,7 +1491,7 b' def identify(ui, repo, source=None,'
1491 output = []
1491 output = []
1492
1492
1493 if source:
1493 if source:
1494 source, revs = cmdutil.parseurl(ui.expandpath(source), [])
1494 source, revs, checkout = cmdutil.parseurl(ui.expandpath(source), [])
1495 srepo = hg.repository(ui, source)
1495 srepo = hg.repository(ui, source)
1496 if not rev and revs:
1496 if not rev and revs:
1497 rev = revs[0]
1497 rev = revs[0]
@@ -1649,7 +1649,8 b' def incoming(ui, repo, source="default",'
1649
1649
1650 See pull for valid source format details.
1650 See pull for valid source format details.
1651 """
1651 """
1652 source, revs = cmdutil.parseurl(ui.expandpath(source), opts['rev'])
1652 source, revs, checkout = cmdutil.parseurl(ui.expandpath(source),
1653 opts['rev'])
1653 cmdutil.setremoteconfig(ui, opts)
1654 cmdutil.setremoteconfig(ui, opts)
1654
1655
1655 other = hg.repository(ui, source)
1656 other = hg.repository(ui, source)
@@ -1952,7 +1953,7 b' def outgoing(ui, repo, dest=None, **opts'
1952
1953
1953 See pull for valid destination format details.
1954 See pull for valid destination format details.
1954 """
1955 """
1955 dest, revs = cmdutil.parseurl(
1956 dest, revs, checkout = cmdutil.parseurl(
1956 ui.expandpath(dest or 'default-push', dest or 'default'), opts['rev'])
1957 ui.expandpath(dest or 'default-push', dest or 'default'), opts['rev'])
1957 cmdutil.setremoteconfig(ui, opts)
1958 cmdutil.setremoteconfig(ui, opts)
1958 if revs:
1959 if revs:
@@ -2074,7 +2075,8 b' def pull(ui, repo, source="default", **o'
2074 Alternatively specify "ssh -C" as your ssh command in your hgrc or
2075 Alternatively specify "ssh -C" as your ssh command in your hgrc or
2075 with the --ssh command line option.
2076 with the --ssh command line option.
2076 """
2077 """
2077 source, revs = cmdutil.parseurl(ui.expandpath(source), opts['rev'])
2078 source, revs, checkout = cmdutil.parseurl(ui.expandpath(source),
2079 opts['rev'])
2078 cmdutil.setremoteconfig(ui, opts)
2080 cmdutil.setremoteconfig(ui, opts)
2079
2081
2080 other = hg.repository(ui, source)
2082 other = hg.repository(ui, source)
@@ -2119,7 +2121,7 b' def push(ui, repo, dest=None, **opts):'
2119 Pushing to http:// and https:// URLs is only possible, if this
2121 Pushing to http:// and https:// URLs is only possible, if this
2120 feature is explicitly enabled on the remote Mercurial server.
2122 feature is explicitly enabled on the remote Mercurial server.
2121 """
2123 """
2122 dest, revs = cmdutil.parseurl(
2124 dest, revs, checkout = cmdutil.parseurl(
2123 ui.expandpath(dest or 'default-push', dest or 'default'), opts['rev'])
2125 ui.expandpath(dest or 'default-push', dest or 'default'), opts['rev'])
2124 cmdutil.setremoteconfig(ui, opts)
2126 cmdutil.setremoteconfig(ui, opts)
2125
2127
@@ -99,7 +99,7 b' def clone(ui, source, dest=None, pull=Fa'
99 """
99 """
100
100
101 origsource = source
101 origsource = source
102 source, rev = cmdutil.parseurl(ui.expandpath(source), rev)
102 source, rev, checkout = cmdutil.parseurl(ui.expandpath(source), rev)
103
103
104 if isinstance(source, str):
104 if isinstance(source, str):
105 src_repo = repository(ui, source)
105 src_repo = repository(ui, source)
General Comments 0
You need to be logged in to leave comments. Login now