Mercurial > hgsubversion
comparison utility_commands.py @ 257:ffccf0080e54
Move wrappers for hg commands to their own module.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Fri, 10 Apr 2009 22:38:29 -0500 |
parents | 7932d098cb5f |
children | d978192f0d63 |
comparison
equal
deleted
inserted
replaced
256:7932d098cb5f | 257:ffccf0080e54 |
---|---|
1 import os | 1 import os |
2 | 2 |
3 import mercurial | |
4 from mercurial import cmdutil as hgcmdutil | |
5 from mercurial import node | 3 from mercurial import node |
6 from mercurial import util as hgutil | 4 from mercurial import util as hgutil |
7 from hgext import rebase as hgrebase | 5 from hgext import rebase as hgrebase |
8 | 6 |
9 import svnwrap | 7 import svnwrap |
100 'date': hgutil.datestr(parent.date(), | 98 'date': hgutil.datestr(parent.date(), |
101 '%Y-%m-%d %H:%M:%S %1%2 (%a, %d %b %Y)') | 99 '%Y-%m-%d %H:%M:%S %1%2 (%a, %d %b %Y)') |
102 }) | 100 }) |
103 | 101 |
104 | 102 |
105 def parent(orig, ui, repo, *args, **opts): | |
106 """show Mercurial & Subversion parents of the working dir or revision | |
107 """ | |
108 if not opts.get('svn', False): | |
109 return orig(ui, repo, *args, **opts) | |
110 hge = hg_delta_editor.HgChangeReceiver(repo=repo) | |
111 svn_commit_hashes = dict(zip(hge.revmap.itervalues(), | |
112 hge.revmap.iterkeys())) | |
113 ha = cmdutil.parentrev(ui, repo, hge, svn_commit_hashes) | |
114 if ha.node() == node.nullid: | |
115 raise mutil.Abort('No parent svn revision!') | |
116 displayer = hgcmdutil.show_changeset(ui, repo, opts, buffered=False) | |
117 displayer.show(ha) | |
118 return 0 | |
119 | |
120 | |
121 def rebase(ui, repo, extrafn=None, sourcerev=None, **opts): | 103 def rebase(ui, repo, extrafn=None, sourcerev=None, **opts): |
122 """rebase current unpushed revisions onto the Subversion head | 104 """rebase current unpushed revisions onto the Subversion head |
123 | 105 |
124 This moves a line of development from making its own head to the top of | 106 This moves a line of development from making its own head to the top of |
125 Subversion development, linearizing the changes. In order to make sure you | 107 Subversion development, linearizing the changes. In order to make sure you |
164 return hgrebase.rebase(ui, repo, dest=node.hex(target_rev.node()), | 146 return hgrebase.rebase(ui, repo, dest=node.hex(target_rev.node()), |
165 base=node.hex(sourcerev), | 147 base=node.hex(sourcerev), |
166 extrafn=extrafn) | 148 extrafn=extrafn) |
167 | 149 |
168 | 150 |
169 def outgoing(orig, ui, repo, dest=None, *args, **opts): | |
170 """show changesets not found in the Subversion repository | |
171 """ | |
172 svnurl = ui.expandpath(dest or 'default-push', dest or 'default') | |
173 if not (cmdutil.issvnurl(svnurl) or opts.get('svn', False)): | |
174 return orig(ui, repo, dest, *args, **opts) | |
175 | |
176 hge = hg_delta_editor.HgChangeReceiver(repo=repo) | |
177 svn_commit_hashes = dict(zip(hge.revmap.itervalues(), | |
178 hge.revmap.iterkeys())) | |
179 o_r = util.outgoing_revisions(ui, repo, hge, svn_commit_hashes, | |
180 repo.parents()[0].node()) | |
181 if not (o_r and len(o_r)): | |
182 ui.status('no changes found\n') | |
183 return 0 | |
184 displayer = hgcmdutil.show_changeset(ui, repo, opts, buffered=False) | |
185 for node in reversed(o_r): | |
186 displayer.show(repo[node]) | |
187 | |
188 | |
189 def listauthors(ui, args, authors=None, **opts): | 151 def listauthors(ui, args, authors=None, **opts): |
190 """list all authors in a Subversion repository | 152 """list all authors in a Subversion repository |
191 """ | 153 """ |
192 if not len(args): | 154 if not len(args): |
193 ui.status('No repository specified.\n') | 155 ui.status('No repository specified.\n') |