Mercurial > hgsubversion
comparison utility_commands.py @ 256:7932d098cb5f
Refactor commands to wrap their hg equivalent adding a --svn flag where sane.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Fri, 10 Apr 2009 18:47:18 -0500 |
parents | 9ba31af57e4b |
children | ffccf0080e54 |
comparison
equal
deleted
inserted
replaced
255:246aaefb1cc0 | 256:7932d098cb5f |
---|---|
100 'date': hgutil.datestr(parent.date(), | 100 'date': hgutil.datestr(parent.date(), |
101 '%Y-%m-%d %H:%M:%S %1%2 (%a, %d %b %Y)') | 101 '%Y-%m-%d %H:%M:%S %1%2 (%a, %d %b %Y)') |
102 }) | 102 }) |
103 | 103 |
104 | 104 |
105 def parent(ui, repo, hg_repo_path, **opts): | 105 def parent(orig, ui, repo, *args, **opts): |
106 """show Mercurial & Subversion parents of the working dir or revision | 106 """show Mercurial & Subversion parents of the working dir or revision |
107 """ | 107 """ |
108 hge = hg_delta_editor.HgChangeReceiver(hg_repo_path, | 108 if not opts.get('svn', False): |
109 ui_=ui) | 109 return orig(ui, repo, *args, **opts) |
110 hge = hg_delta_editor.HgChangeReceiver(repo=repo) | |
110 svn_commit_hashes = dict(zip(hge.revmap.itervalues(), | 111 svn_commit_hashes = dict(zip(hge.revmap.itervalues(), |
111 hge.revmap.iterkeys())) | 112 hge.revmap.iterkeys())) |
112 ha = cmdutil.parentrev(ui, repo, hge, svn_commit_hashes) | 113 ha = cmdutil.parentrev(ui, repo, hge, svn_commit_hashes) |
113 if ha.node() != node.nullid: | 114 if ha.node() == node.nullid: |
114 r, br = svn_commit_hashes[ha.node()] | 115 raise mutil.Abort('No parent svn revision!') |
115 ui.status('Working copy parent revision is %s: r%s on %s\n' % | 116 displayer = hgcmdutil.show_changeset(ui, repo, opts, buffered=False) |
116 (ha, r, br or 'trunk')) | 117 displayer.show(ha) |
117 else: | |
118 ui.status('Working copy seems to have no parent svn revision.\n') | |
119 return 0 | 118 return 0 |
120 | 119 |
121 | 120 |
122 def rebase(ui, repo, extrafn=None, sourcerev=None, **opts): | 121 def rebase(ui, repo, extrafn=None, sourcerev=None, **opts): |
123 """rebase current unpushed revisions onto the Subversion head | 122 """rebase current unpushed revisions onto the Subversion head |
165 return hgrebase.rebase(ui, repo, dest=node.hex(target_rev.node()), | 164 return hgrebase.rebase(ui, repo, dest=node.hex(target_rev.node()), |
166 base=node.hex(sourcerev), | 165 base=node.hex(sourcerev), |
167 extrafn=extrafn) | 166 extrafn=extrafn) |
168 | 167 |
169 | 168 |
170 def outgoing(ui, repo, hg_repo_path, **opts): | 169 def outgoing(orig, ui, repo, dest=None, *args, **opts): |
171 """show changesets not found in the Subversion repository | 170 """show changesets not found in the Subversion repository |
172 """ | 171 """ |
173 hge = hg_delta_editor.HgChangeReceiver(hg_repo_path, | 172 svnurl = ui.expandpath(dest or 'default-push', dest or 'default') |
174 ui_=ui) | 173 if not (cmdutil.issvnurl(svnurl) or opts.get('svn', False)): |
175 svn_commit_hashes = dict(zip(hge.revmap.itervalues(), | 174 return orig(ui, repo, dest, *args, **opts) |
176 hge.revmap.iterkeys())) | 175 |
177 o_r = util.outgoing_revisions(ui, repo, hge, svn_commit_hashes, repo.parents()[0].node()) | 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()) | |
178 if not (o_r and len(o_r)): | 181 if not (o_r and len(o_r)): |
179 ui.status('No outgoing changes found.\n') | 182 ui.status('no changes found\n') |
180 return 0 | 183 return 0 |
181 displayer = hgcmdutil.show_changeset(ui, repo, opts, buffered=False) | 184 displayer = hgcmdutil.show_changeset(ui, repo, opts, buffered=False) |
182 for node in reversed(o_r): | 185 for node in reversed(o_r): |
183 displayer.show(repo[node]) | 186 displayer.show(repo[node]) |
184 | 187 |
212 nourl = ['version', 'listauthors'] | 215 nourl = ['version', 'listauthors'] |
213 table = { | 216 table = { |
214 'url': url, | 217 'url': url, |
215 'genignore': genignore, | 218 'genignore': genignore, |
216 'info': info, | 219 'info': info, |
217 'parent': parent, | |
218 'outgoing': outgoing, | |
219 'listauthors': listauthors, | 220 'listauthors': listauthors, |
220 'version': version, | 221 'version': version, |
221 'rebase': rebase, | 222 'rebase': rebase, |
222 } | 223 } |