83 node, movemark = bookmarks.calculateupdate(repo.ui, repo, None) |
83 node, movemark = bookmarks.calculateupdate(repo.ui, repo, None) |
84 if node is not None: |
84 if node is not None: |
85 activemark = node |
85 activemark = node |
86 return node, movemark, activemark |
86 return node, movemark, activemark |
87 |
87 |
|
88 def _destupdatebranch(repo, clean, check): |
|
89 """decide on an update destination from current branch""" |
|
90 wc = repo[None] |
|
91 movemark = node = None |
|
92 try: |
|
93 node = repo.branchtip(wc.branch()) |
|
94 if bookmarks.isactivewdirparent(repo): |
|
95 movemark = repo['.'].node() |
|
96 except error.RepoLookupError: |
|
97 if wc.branch() == 'default': # no default branch! |
|
98 node = repo.lookup('tip') # update to tip |
|
99 else: |
|
100 raise error.Abort(_("branch %s not found") % wc.branch()) |
|
101 return node, movemark, None |
|
102 |
88 def destupdate(repo, clean=False, check=False): |
103 def destupdate(repo, clean=False, check=False): |
89 """destination for bare update operation |
104 """destination for bare update operation |
90 |
105 |
91 return (rev, movemark, activemark) |
106 return (rev, movemark, activemark) |
92 |
107 |
94 - movemark: node to move the active bookmark from |
109 - movemark: node to move the active bookmark from |
95 (cf bookmark.calculate update), |
110 (cf bookmark.calculate update), |
96 - activemark: a bookmark to activate at the end of the update. |
111 - activemark: a bookmark to activate at the end of the update. |
97 """ |
112 """ |
98 node = None |
113 node = None |
99 wc = repo[None] |
|
100 movemark = activemark = None |
114 movemark = activemark = None |
101 |
115 |
102 node, movemark, activemark = _destupdateobs(repo, clean, check) |
116 node, movemark, activemark = _destupdateobs(repo, clean, check) |
103 if node is None: |
117 if node is None: |
104 node, movemark, activemark = _destupdatebook(repo, clean, check) |
118 node, movemark, activemark = _destupdatebook(repo, clean, check) |
105 |
|
106 if node is None: |
119 if node is None: |
107 if node is None: |
120 node, movemark, activemark = _destupdatebranch(repo, clean, check) |
108 try: |
|
109 node = repo.branchtip(wc.branch()) |
|
110 except error.RepoLookupError: |
|
111 if wc.branch() == 'default': # no default branch! |
|
112 node = repo.lookup('tip') # update to tip |
|
113 else: |
|
114 raise error.Abort(_("branch %s not found") % wc.branch()) |
|
115 rev = repo[node].rev() |
121 rev = repo[node].rev() |
116 |
122 |
117 _destupdatevalidate(repo, rev, clean, check) |
123 _destupdatevalidate(repo, rev, clean, check) |
118 |
124 |
119 return rev, movemark, activemark |
125 return rev, movemark, activemark |