931 |
931 |
932 @eh.wrapfunction(mercurial.cmdutil, 'tryimportone') |
932 @eh.wrapfunction(mercurial.cmdutil, 'tryimportone') |
933 def tryimportone(orig, ui, repo, hunk, parents, opts, *args, **kwargs): |
933 def tryimportone(orig, ui, repo, hunk, parents, opts, *args, **kwargs): |
934 extracted = patch.extract(ui, hunk) |
934 extracted = patch.extract(ui, hunk) |
935 expected = extracted[5] |
935 expected = extracted[5] |
|
936 expected = node.bin(expected) |
936 oldextract = patch.extract |
937 oldextract = patch.extract |
937 try: |
938 try: |
938 patch.extract = lambda ui, hunk: extracted |
939 patch.extract = lambda ui, hunk: extracted |
939 ret = orig(ui, repo, hunk, parents, opts, *args, **kwargs) |
940 ret = orig(ui, repo, hunk, parents, opts, *args, **kwargs) |
940 finally: |
941 finally: |
942 created = ret[1] |
943 created = ret[1] |
943 if opts['obsolete'] and created is not None and created != expected: |
944 if opts['obsolete'] and created is not None and created != expected: |
944 tr = repo.transaction('import-obs') |
945 tr = repo.transaction('import-obs') |
945 try: |
946 try: |
946 metadata = {'user': ui.username()} |
947 metadata = {'user': ui.username()} |
947 repo.obsstore.create(tr, node.bin(expected), (created,), |
948 repo.obsstore.create(tr, expected, (created,), |
948 metadata=metadata) |
949 metadata=metadata) |
949 tr.close() |
950 tr.close() |
950 finally: |
951 finally: |
951 tr.release() |
952 tr.release() |
952 return ret |
953 return ret |