Mercurial > hgsubversion
comparison push_cmd.py @ 206:c2e51d6a2d7b
push: Converted a magic number to an actual constant, and catch another apr_err that appears to also mean base text out of date.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Tue, 03 Mar 2009 10:13:40 -0600 |
parents | 57355b0e7bd1 |
children | 06eb60f9a026 |
comparison
equal
deleted
inserted
replaced
205:30df375590d1 | 206:c2e51d6a2d7b |
---|---|
146 if not e[1] or not e[2]: | 146 if not e[1] or not e[2]: |
147 for d in finddirs(e[0], True): | 147 for d in finddirs(e[0], True): |
148 changeddirs[d] = 1 | 148 changeddirs[d] = 1 |
149 if not changeddirs: | 149 if not changeddirs: |
150 return added, deleted | 150 return added, deleted |
151 olddirs = getctxdirs(parentctx, changeddirs, | 151 olddirs = getctxdirs(parentctx, changeddirs, |
152 [e[0] for e in extchanges if e[1]]) | 152 [e[0] for e in extchanges if e[1]]) |
153 newdirs = getctxdirs(ctx, changeddirs, | 153 newdirs = getctxdirs(ctx, changeddirs, |
154 [e[0] for e in extchanges if e[2]]) | 154 [e[0] for e in extchanges if e[2]]) |
155 | 155 |
156 for d in newdirs: | 156 for d in newdirs: |
179 branch_path = 'trunk' | 179 branch_path = 'trunk' |
180 | 180 |
181 if parent_branch and parent_branch != 'default': | 181 if parent_branch and parent_branch != 'default': |
182 branch_path = 'branches/%s' % parent_branch | 182 branch_path = 'branches/%s' % parent_branch |
183 | 183 |
184 extchanges = list(svnexternals.diff(_externals(parent), | 184 extchanges = list(svnexternals.diff(_externals(parent), |
185 _externals(rev_ctx))) | 185 _externals(rev_ctx))) |
186 addeddirs, deleteddirs = _getdirchanges(svn, branch_path, parent, rev_ctx, | 186 addeddirs, deleteddirs = _getdirchanges(svn, branch_path, parent, rev_ctx, |
187 rev_ctx.files(), extchanges) | 187 rev_ctx.files(), extchanges) |
188 deleteddirs = set(deleteddirs) | 188 deleteddirs = set(deleteddirs) |
189 | 189 |
271 try: | 271 try: |
272 svn.commit(new_target_files, rev_ctx.description(), file_data, | 272 svn.commit(new_target_files, rev_ctx.description(), file_data, |
273 base_revision, set(addeddirs), set(deleteddirs), | 273 base_revision, set(addeddirs), set(deleteddirs), |
274 props, newcopies) | 274 props, newcopies) |
275 except core.SubversionException, e: | 275 except core.SubversionException, e: |
276 if hasattr(e, 'apr_err') and e.apr_err == 160028: | 276 if hasattr(e, 'apr_err') and (e.apr_err == core.SVN_ERR_FS_TXN_OUT_OF_DATE |
277 or e.apr_err == core.SVN_ERR_FS_CONFLICT): | |
277 raise merc_util.Abort('Base text was out of date, maybe rebase?') | 278 raise merc_util.Abort('Base text was out of date, maybe rebase?') |
278 else: | 279 else: |
279 raise | 280 raise |