comparison mercurial/hg.py @ 42970:1ad3ebb39c61

merge: replace magic strings with NAMED_CONSTANTS (API) .. api:: `mercurial.hg.update*` and `mercurial.merge.update` now expect a value from a set of NAMED_CONSTANTS (`merge.UPDATECHECK_*` constants) rather than a collection of magic strings. As of now, the values are the same, but code should be prepared for these values to change in the future. Differential Revision: https://phab.mercurial-scm.org/D6877
author Augie Fackler <augie@google.com>
date Wed, 25 Sep 2019 10:53:10 -0400
parents 268662aac075
children ee1ef76d7339
comparison
equal deleted inserted replaced
42969:76608f9f27f6 42970:1ad3ebb39c61
895 :checkout: to which revision the working directory is updated 895 :checkout: to which revision the working directory is updated
896 :brev: a name, which might be a bookmark to be activated after updating 896 :brev: a name, which might be a bookmark to be activated after updating
897 :clean: whether changes in the working directory can be discarded 897 :clean: whether changes in the working directory can be discarded
898 :updatecheck: how to deal with a dirty working directory 898 :updatecheck: how to deal with a dirty working directory
899 899
900 Valid values for updatecheck are (None => linear): 900 Valid values for updatecheck are the UPDATECHECK_* constants
901 901 defined in the merge module. Passing `None` will result in using the
902 * abort: abort if the working directory is dirty 902 configured default.
903 * none: don't check (merge working directory changes into destination) 903
904 * linear: check that update is linear before merging working directory 904 * ABORT: abort if the working directory is dirty
905 * NONE: don't check (merge working directory changes into destination)
906 * LINEAR: check that update is linear before merging working directory
905 changes into destination 907 changes into destination
906 * noconflict: check that the update does not result in file merges 908 * NO_CONFLICT: check that the update does not result in file merges
907 909
908 This returns whether conflict is detected at updating or not. 910 This returns whether conflict is detected at updating or not.
909 """ 911 """
910 if updatecheck is None: 912 if updatecheck is None:
911 updatecheck = ui.config('commands', 'update.check') 913 updatecheck = ui.config('commands', 'update.check')
912 if updatecheck not in ('abort', 'none', 'linear', 'noconflict'): 914 if updatecheck not in (mergemod.UPDATECHECK_ABORT,
915 mergemod.UPDATECHECK_NONE,
916 mergemod.UPDATECHECK_LINEAR,
917 mergemod.UPDATECHECK_NO_CONFLICT):
913 # If not configured, or invalid value configured 918 # If not configured, or invalid value configured
914 updatecheck = 'linear' 919 updatecheck = mergemod.UPDATECHECK_LINEAR
915 with repo.wlock(): 920 with repo.wlock():
916 movemarkfrom = None 921 movemarkfrom = None
917 warndest = False 922 warndest = False
918 if checkout is None: 923 if checkout is None:
919 updata = destutil.destupdate(repo, clean=clean) 924 updata = destutil.destupdate(repo, clean=clean)
921 warndest = True 926 warndest = True
922 927
923 if clean: 928 if clean:
924 ret = _clean(repo, checkout) 929 ret = _clean(repo, checkout)
925 else: 930 else:
926 if updatecheck == 'abort': 931 if updatecheck == mergemod.UPDATECHECK_ABORT:
927 cmdutil.bailifchanged(repo, merge=False) 932 cmdutil.bailifchanged(repo, merge=False)
928 updatecheck = 'none' 933 updatecheck = mergemod.UPDATECHECK_NONE
929 ret = _update(repo, checkout, updatecheck=updatecheck) 934 ret = _update(repo, checkout, updatecheck=updatecheck)
930 935
931 if not ret and movemarkfrom: 936 if not ret and movemarkfrom:
932 if movemarkfrom == repo['.'].node(): 937 if movemarkfrom == repo['.'].node():
933 pass # no-op update 938 pass # no-op update