Mercurial > hg
changeset 42917:e26c2440a030 stable
phabricator: don't abort if property writing fails during amending
Currently if one of the writediffproperty calls fails due to network issues
during the amending of commit messages to include the Diff. Rev. line, the
transaction is aborted and rolled back. This means that the associations
between the commits and the DREVs are lost for any already amended commits
because the removal of the local tags isn't covered by the rollback.
Differential Revision: https://phab.mercurial-scm.org/D6835
author | Ian Moody <moz-ian@perix.co.uk> |
---|---|
date | Sat, 07 Sep 2019 14:35:21 +0100 |
parents | a4ca0610c754 |
children | f059d6ffcdf0 085295f82845 |
files | hgext/phabricator.py |
diffstat | 1 files changed, 6 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/phabricator.py Mon Sep 09 17:32:21 2019 +0200 +++ b/hgext/phabricator.py Sat Sep 07 14:35:21 2019 +0100 @@ -659,7 +659,12 @@ mapping[old.node()] = [newnode] # Update diff property - writediffproperties(unfi[newnode], diffmap[old.node()]) + # If it fails just warn and keep going, otherwise the DREV + # associations will be lost + try: + writediffproperties(unfi[newnode], diffmap[old.node()]) + except util.urlerr.urlerror: + ui.warn(b'Failed to update metadata for D%s\n' % drevid) # Remove local tags since it's no longer necessary tagname = b'D%d' % drevid if tagname in repo.tags():