mercurial/subrepo.py
changeset 19811 5e10d41e7b9c
parent 19788 c26690fe5f08
child 20033 f962870712da
child 20104 224e96078708
equal deleted inserted replaced
19810:c80feeb715d1 19811:5e10d41e7b9c
   200             elif ld[1] == a[1]: # local side is unchanged
   200             elif ld[1] == a[1]: # local side is unchanged
   201                 debug(s, "other side changed, get", r)
   201                 debug(s, "other side changed, get", r)
   202                 wctx.sub(s).get(r, overwrite)
   202                 wctx.sub(s).get(r, overwrite)
   203                 sm[s] = r
   203                 sm[s] = r
   204             else:
   204             else:
   205                 debug(s, "both sides changed, merge with", r)
   205                 debug(s, "both sides changed")
   206                 wctx.sub(s).merge(r)
   206                 option = repo.ui.promptchoice(
   207                 sm[s] = l
   207                     _(' subrepository %s diverged (local revision: %s, '
       
   208                       'remote revision: %s)\n'
       
   209                       '(M)erge, keep (l)ocal or keep (r)emote?'
       
   210                       '$$ &Merge $$ &Local $$ &Remote')
       
   211                     % (s, l[1][:12], r[1][:12]), 0)
       
   212                 if option == 0:
       
   213                     wctx.sub(s).merge(r)
       
   214                     sm[s] = l
       
   215                     debug(s, "merge with", r)
       
   216                 elif option == 1:
       
   217                     sm[s] = l
       
   218                     debug(s, "keep local subrepo revision", l)
       
   219                 else:
       
   220                     wctx.sub(s).get(r, overwrite)
       
   221                     sm[s] = r
       
   222                     debug(s, "get remote subrepo revision", r)
   208         elif ld == a: # remote removed, local unchanged
   223         elif ld == a: # remote removed, local unchanged
   209             debug(s, "remote removed, remove")
   224             debug(s, "remote removed, remove")
   210             wctx.sub(s).remove()
   225             wctx.sub(s).remove()
   211         elif a == nullstate: # not present in remote or ancestor
   226         elif a == nullstate: # not present in remote or ancestor
   212             debug(s, "local added, keep")
   227             debug(s, "local added, keep")