diff --git a/usd/importer.py b/usd/importer.py index 12a825b..8bd1c88 100755 --- a/usd/importer.py +++ b/usd/importer.py @@ -813,33 +813,42 @@ class USDImport: unapplied_parent_commit = str(self.local_repo.get_import_tag(spi.version).peel().id) # Assume no patches to apply applied_import_tree_hash = unapplied_import_tree_hash - for (applied_import_tree_hash, patch_name, patch_desc) in self.import_patches_applied_tree(spi): - # special case for .pc removal - if patch_name is None: - msg = b'%b.' % (patch_desc.encode()) - else: - if patch_desc is None: - patch_desc = '%s\n\nNo DEP3 Subject or Description header found' % patch_name - msg = b'%b\n\nGbp-Pq: %b.' % (patch_desc.encode(), patch_name.encode()) - commit_tree = ['git', 'commit-tree', applied_import_tree_hash, - '-p', unapplied_parent_commit - ] - - commit_env = copy.copy(self.local_repo.env) - commit_env.update( - self.local_repo.get_commit_environment(applied_import_tree_hash, spi) + try: + for (applied_import_tree_hash, patch_name, patch_desc) in self.import_patches_applied_tree(spi): + # special case for .pc removal + if patch_name is None: + msg = b'%b.' % (patch_desc.encode()) + else: + if patch_desc is None: + patch_desc = '%s\n\nNo DEP3 Subject or Description header found' % patch_name + msg = b'%b\n\nGbp-Pq: %b.' % (patch_desc.encode(), patch_name.encode()) + commit_tree = ['git', 'commit-tree', applied_import_tree_hash, + '-p', unapplied_parent_commit + ] + + commit_env = copy.copy(self.local_repo.env) + commit_env.update( + self.local_repo.get_commit_environment(applied_import_tree_hash, spi) + ) + with tempfile.NamedTemporaryFile() as fp: + fp.write(msg) + fp.flush() + commit_tree += ['-F', fp.name] + cp = run(commit_tree, env=commit_env) + + unapplied_parent_commit = decode_binary(cp.stdout).strip() + + logging.info('Committed patch-application of %s as %s', + patch_name, unapplied_parent_commit + ) + except: + logging.exception('Unable to import patches-applied %s' % + spi.version ) - with tempfile.NamedTemporaryFile() as fp: - fp.write(msg) - fp.flush() - commit_tree += ['-F', fp.name] - cp = run(commit_tree, env=commit_env) - - unapplied_parent_commit = decode_binary(cp.stdout).strip() - - logging.info('Committed patch-application of %s as %s', - patch_name, unapplied_parent_commit - ) + # orphan if we can't get to patches-applied state + applied_publish_parent_commit = None + applied_changelog_parent_commit = None + unapplied_parent_commit = None self.commit_applied_patches_import( spi,