comparison mercurial/hg.py @ 2822:30f59f4a327e

Introduce update helper functions: update, merge, clean, and revert
author Matt Mackall <mpm@selenic.com>
date Mon, 07 Aug 2006 22:54:33 -0500
parents fdc232d8a193
children 1c6beafbae97
comparison
equal deleted inserted replaced
2821:a8a7ce1a01a5 2822:30f59f4a327e
8 from node import * 8 from node import *
9 from repo import * 9 from repo import *
10 from demandload import * 10 from demandload import *
11 from i18n import gettext as _ 11 from i18n import gettext as _
12 demandload(globals(), "localrepo bundlerepo httprepo sshrepo statichttprepo") 12 demandload(globals(), "localrepo bundlerepo httprepo sshrepo statichttprepo")
13 demandload(globals(), "errno lock os shutil util merge") 13 demandload(globals(), "errno lock os shutil util merge@_merge")
14 14
15 def _local(path): 15 def _local(path):
16 return (os.path.isfile(path and util.drop_scheme('file', path)) and 16 return (os.path.isfile(path and util.drop_scheme('file', path)) and
17 bundlerepo or localrepo) 17 bundlerepo or localrepo)
18 18
198 198
199 if dest_lock: 199 if dest_lock:
200 dest_lock.release() 200 dest_lock.release()
201 201
202 if update: 202 if update:
203 merge.update(dest_repo, dest_repo.changelog.tip()) 203 _merge.update(dest_repo, dest_repo.changelog.tip())
204 if dir_cleanup: 204 if dir_cleanup:
205 dir_cleanup.close() 205 dir_cleanup.close()
206 206
207 return src_repo, dest_repo 207 return src_repo, dest_repo
208 208
209 209 def update(repo, node):
210 # This should instead be several functions with short arglists, like 210 """update the working directory to node, merging linear changes"""
211 # update/merge/revert 211 return _merge.update(repo, node)
212 212
213 def update(repo, node, allow=False, force=False, choose=None, 213 def clean(repo, node, wlock=None, show_stats=True):
214 moddirstate=True, forcemerge=False, wlock=None, show_stats=True): 214 """forcibly switch the working directory to node, clobbering changes"""
215 return merge.update(repo, node, allow, force, choose, moddirstate, 215 return _merge.update(repo, node, force=True, wlock=wlock,
216 forcemerge, wlock, show_stats) 216 show_stats=show_stats)
217
218 def merge(repo, node, force=None, remind=True, wlock=None):
219 """branch merge with node, resolving changes"""
220 return _merge.update(repo, node, allow=True, forcemerge=force,
221 remind=remind, wlock=wlock)
222
223 def revert(repo, node, choose):
224 """revert changes to revision in node without updating dirstate"""
225 return _merge.update(repo, node, force=True, choose=choose,
226 moddirstate=False, show_stats=False)
217 227
218 def verify(repo): 228 def verify(repo):
219 """verify the consistency of a repository""" 229 """verify the consistency of a repository"""
220 import verify as _verify 230 import verify as _verify
221 return _verify.verify(repo) 231 return _verify.verify(repo)