annotate utility_commands.py @ 181:e37f9d3fd5e7

remove decorators (compat with python2.3)
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Tue, 13 Jan 2009 13:59:50 +0100
parents a05250261102
children 57355b0e7bd1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
1 from mercurial import cmdutil
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
2 from mercurial import node
64
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
3 from mercurial import util as mutil
0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
4 from hgext import rebase
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
5
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
6 import util
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
7 import hg_delta_editor
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
8
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
9 def print_wc_url(ui, repo, hg_repo_path, **opts):
162
7a58ff3502b7 Punctuation.
Martin Geisler <mg@daimi.au.dk>
parents: 160
diff changeset
10 """Url of Subversion repository.
115
ed42f6e5705a Clean up help text, document subcommands.
Luke Opperman <luke@loppear.com>
parents: 101
diff changeset
11 """
0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
12 hge = hg_delta_editor.HgChangeReceiver(hg_repo_path,
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
13 ui_=ui)
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
14 ui.status(hge.url, '\n')
181
e37f9d3fd5e7 remove decorators (compat with python2.3)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 165
diff changeset
15 print_wc_url = util.register_subcommand('url')(print_wc_url)
0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
16
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
17
64
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
18 def run_svn_info(ui, repo, hg_repo_path, **opts):
162
7a58ff3502b7 Punctuation.
Martin Geisler <mg@daimi.au.dk>
parents: 160
diff changeset
19 """Like svn info details.
115
ed42f6e5705a Clean up help text, document subcommands.
Luke Opperman <luke@loppear.com>
parents: 101
diff changeset
20 """
64
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
21 hge = hg_delta_editor.HgChangeReceiver(hg_repo_path,
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
22 ui_=ui)
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
23 svn_commit_hashes = dict(zip(hge.revmap.itervalues(),
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
24 hge.revmap.iterkeys()))
152
1fde85a10f9e push: Fix the bad implementation that required modifying the dirstate to push.
Augie Fackler <durin42@gmail.com>
parents: 150
diff changeset
25 workingctx = repo.parents()[0]
1fde85a10f9e push: Fix the bad implementation that required modifying the dirstate to push.
Augie Fackler <durin42@gmail.com>
parents: 150
diff changeset
26 o_r = util.outgoing_revisions(ui, repo, hge, svn_commit_hashes, workingctx.node())
64
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
27 if o_r:
152
1fde85a10f9e push: Fix the bad implementation that required modifying the dirstate to push.
Augie Fackler <durin42@gmail.com>
parents: 150
diff changeset
28 workingctx = repo[o_r[-1]].parents()[0]
1fde85a10f9e push: Fix the bad implementation that required modifying the dirstate to push.
Augie Fackler <durin42@gmail.com>
parents: 150
diff changeset
29 r, br = svn_commit_hashes[workingctx.node()]
64
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
30 if br == None:
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
31 branchpath = '/trunk'
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
32 else:
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
33 branchpath = '/branches/%s' % br
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
34 url = hge.url
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
35 if url[-1] == '/':
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
36 url = url[:-1]
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
37 url = '%s%s' % (url, branchpath)
152
1fde85a10f9e push: Fix the bad implementation that required modifying the dirstate to push.
Augie Fackler <durin42@gmail.com>
parents: 150
diff changeset
38 author = '@'.join(workingctx.user().split('@')[:-1])
160
7a5a0b5c8e34 info: Actually determine and show the repo root.
Augie Fackler <durin42@gmail.com>
parents: 157
diff changeset
39 # cleverly figure out repo root w/o actually contacting the server
7a5a0b5c8e34 info: Actually determine and show the repo root.
Augie Fackler <durin42@gmail.com>
parents: 157
diff changeset
40 subdir = workingctx.extra()['convert_revision'][40:].split('@')[0]
7a5a0b5c8e34 info: Actually determine and show the repo root.
Augie Fackler <durin42@gmail.com>
parents: 157
diff changeset
41 reporoot = url[:len(url)-len(subdir)]
64
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
42 ui.status('''URL: %(url)s
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
43 Repository Root: %(reporoot)s
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
44 Repository UUID: %(uuid)s
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
45 Revision: %(revision)s
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
46 Node Kind: directory
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
47 Last Changed Author: %(author)s
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
48 Last Changed Rev: %(revision)s
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
49 Last Changed Date: %(date)s\n''' %
160
7a5a0b5c8e34 info: Actually determine and show the repo root.
Augie Fackler <durin42@gmail.com>
parents: 157
diff changeset
50 {'reporoot': reporoot,
64
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
51 'uuid': open(hge.uuid_file).read(),
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
52 'url': url,
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
53 'author': author,
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
54 'revision': r,
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
55 # TODO I'd like to format this to the user's local TZ if possible
152
1fde85a10f9e push: Fix the bad implementation that required modifying the dirstate to push.
Augie Fackler <durin42@gmail.com>
parents: 150
diff changeset
56 'date': mutil.datestr(workingctx.date(),
64
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
57 '%Y-%m-%d %H:%M:%S %1%2 (%a, %d %b %Y)')
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
58 })
181
e37f9d3fd5e7 remove decorators (compat with python2.3)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 165
diff changeset
59 run_svn_info = util.register_subcommand('info')(run_svn_info)
64
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
60
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
61
0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
62 def print_parent_revision(ui, repo, hg_repo_path, **opts):
162
7a58ff3502b7 Punctuation.
Martin Geisler <mg@daimi.au.dk>
parents: 160
diff changeset
63 """Display hg hash and svn revision of nearest svn parent.
115
ed42f6e5705a Clean up help text, document subcommands.
Luke Opperman <luke@loppear.com>
parents: 101
diff changeset
64 """
0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
65 hge = hg_delta_editor.HgChangeReceiver(hg_repo_path,
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
66 ui_=ui)
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
67 svn_commit_hashes = dict(zip(hge.revmap.itervalues(),
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
68 hge.revmap.iterkeys()))
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
69 ha = repo.parents()[0]
152
1fde85a10f9e push: Fix the bad implementation that required modifying the dirstate to push.
Augie Fackler <durin42@gmail.com>
parents: 150
diff changeset
70 o_r = util.outgoing_revisions(ui, repo, hge, svn_commit_hashes, ha.node())
0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
71 if o_r:
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
72 ha = repo[o_r[-1]].parents()[0]
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
73 if ha.node() != node.nullid:
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
74 r, br = svn_commit_hashes[ha.node()]
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
75 ui.status('Working copy parent revision is %s: r%s on %s\n' %
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
76 (ha, r, br or 'trunk'))
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
77 else:
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
78 ui.status('Working copy seems to have no parent svn revision.\n')
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
79 return 0
181
e37f9d3fd5e7 remove decorators (compat with python2.3)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 165
diff changeset
80 print_parent_revision = util.register_subcommand('parent')(print_parent_revision)
0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
81
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
82
152
1fde85a10f9e push: Fix the bad implementation that required modifying the dirstate to push.
Augie Fackler <durin42@gmail.com>
parents: 150
diff changeset
83 def rebase_commits(ui, repo, hg_repo_path, extrafn=None, sourcerev=None, **opts):
162
7a58ff3502b7 Punctuation.
Martin Geisler <mg@daimi.au.dk>
parents: 160
diff changeset
84 """Rebases current unpushed revisions onto Subversion head.
64
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
85
08be8ee73551 Add an hg svn info subsubcommand that prints out what you would expect from svn info.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
86 This moves a line of development from making its own head to the top of
31
05800c403321 Fix up the rebase docstring to be less vague.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
87 Subversion development, linearizing the changes. In order to make sure you
05800c403321 Fix up the rebase docstring to be less vague.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
88 rebase on top of the current top of Subversion work, you should probably run
05800c403321 Fix up the rebase docstring to be less vague.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
89 'hg svn pull' before running this.
0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
90 """
150
58ae90a65f41 push: Improved the rebasing logic for push so that it doesn't break with
Augie Fackler <durin42@gmail.com>
parents: 149
diff changeset
91 if extrafn is None:
58ae90a65f41 push: Improved the rebasing logic for push so that it doesn't break with
Augie Fackler <durin42@gmail.com>
parents: 149
diff changeset
92 def extrafn2(ctx, extra):
58ae90a65f41 push: Improved the rebasing logic for push so that it doesn't break with
Augie Fackler <durin42@gmail.com>
parents: 149
diff changeset
93 """defined here so we can add things easily.
58ae90a65f41 push: Improved the rebasing logic for push so that it doesn't break with
Augie Fackler <durin42@gmail.com>
parents: 149
diff changeset
94 """
58ae90a65f41 push: Improved the rebasing logic for push so that it doesn't break with
Augie Fackler <durin42@gmail.com>
parents: 149
diff changeset
95 extra['branch'] = ctx.branch()
58ae90a65f41 push: Improved the rebasing logic for push so that it doesn't break with
Augie Fackler <durin42@gmail.com>
parents: 149
diff changeset
96 extrafn = extrafn2
152
1fde85a10f9e push: Fix the bad implementation that required modifying the dirstate to push.
Augie Fackler <durin42@gmail.com>
parents: 150
diff changeset
97 if sourcerev is None:
1fde85a10f9e push: Fix the bad implementation that required modifying the dirstate to push.
Augie Fackler <durin42@gmail.com>
parents: 150
diff changeset
98 sourcerev = repo.parents()[0].node()
0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
99 hge = hg_delta_editor.HgChangeReceiver(hg_repo_path,
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
100 ui_=ui)
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
101 svn_commit_hashes = dict(zip(hge.revmap.itervalues(),
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
102 hge.revmap.iterkeys()))
152
1fde85a10f9e push: Fix the bad implementation that required modifying the dirstate to push.
Augie Fackler <durin42@gmail.com>
parents: 150
diff changeset
103 o_r = util.outgoing_revisions(ui, repo, hge, svn_commit_hashes, sourcerev=sourcerev)
0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
104 if not o_r:
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
105 ui.status('Nothing to rebase!\n')
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
106 return 0
152
1fde85a10f9e push: Fix the bad implementation that required modifying the dirstate to push.
Augie Fackler <durin42@gmail.com>
parents: 150
diff changeset
107 if len(repo[sourcerev].children()):
0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
108 ui.status('Refusing to rebase non-head commit like a coward\n')
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
109 return 0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
110 parent_rev = repo[o_r[-1]].parents()[0]
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
111 target_rev = parent_rev
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
112 p_n = parent_rev.node()
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
113 exhausted_choices = False
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
114 while target_rev.children() and not exhausted_choices:
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
115 for c in target_rev.children():
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
116 exhausted_choices = True
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
117 n = c.node()
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
118 if (n in svn_commit_hashes and
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
119 svn_commit_hashes[n][1] == svn_commit_hashes[p_n][1]):
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
120 target_rev = c
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
121 exhausted_choices = False
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
122 break
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
123 if parent_rev == target_rev:
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
124 ui.status('Already up to date!\n')
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
125 return 0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
126 # TODO this is really hacky, there must be a more direct way
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
127 return rebase.rebase(ui, repo, dest=node.hex(target_rev.node()),
152
1fde85a10f9e push: Fix the bad implementation that required modifying the dirstate to push.
Augie Fackler <durin42@gmail.com>
parents: 150
diff changeset
128 base=node.hex(sourcerev),
149
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 115
diff changeset
129 extrafn=extrafn)
181
e37f9d3fd5e7 remove decorators (compat with python2.3)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 165
diff changeset
130 rebase_commits = util.register_subcommand('rebase')(rebase_commits)
0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
131
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
132
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
133 def show_outgoing_to_svn(ui, repo, hg_repo_path, **opts):
165
a05250261102 Fix "hg svn outgoing" help text.
Martin Geisler <mg@daimi.au.dk>
parents: 162
diff changeset
134 """Show changesets not yet pushed to SVN.
0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
135 """
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
136 hge = hg_delta_editor.HgChangeReceiver(hg_repo_path,
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
137 ui_=ui)
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
138 svn_commit_hashes = dict(zip(hge.revmap.itervalues(),
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
139 hge.revmap.iterkeys()))
157
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 152
diff changeset
140 o_r = util.outgoing_revisions(ui, repo, hge, svn_commit_hashes, repo.parents()[0].node())
0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
141 if not (o_r and len(o_r)):
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
142 ui.status('No outgoing changes found.\n')
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
143 return 0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
144 displayer = cmdutil.show_changeset(ui, repo, opts, buffered=False)
95
10dd34deac3b utility_commands: fix outgoing against crew (required because of crew cset 87158be081b8)
Augie Fackler <durin42@gmail.com>
parents: 64
diff changeset
145 for node in reversed(o_r):
10dd34deac3b utility_commands: fix outgoing against crew (required because of crew cset 87158be081b8)
Augie Fackler <durin42@gmail.com>
parents: 64
diff changeset
146 displayer.show(repo[node])
181
e37f9d3fd5e7 remove decorators (compat with python2.3)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 165
diff changeset
147 show_outgoing_to_svn = util.register_subcommand('outgoing')(show_outgoing_to_svn)