comparison mercurial/patch.py @ 21553:bee0e1cffdd3

import: add --partial flag to create a changeset despite failed hunks The `hg import` command gains a `--partial` flag. When specified, a commit will always be created from a patch import. Any hunk that fails to apply will create .rej file, same as what `hg qimport` would do. This change is mainly aimed at preserving changeset metadata when applying a patch, something very important for reviewers. In case of failure with `--partial`, `hg import` returns 1 and the following message is displayed: patch applied partially (fix the .rej files and run `hg commit --amend`) When multiple patches are imported, we stop at the first one with failed hunks. In the future, someone may feel brave enough to tackle a --continue flag to import.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Thu, 08 May 2014 17:08:17 -0700
parents 4e2fb0ad00a9
children 2a095d3442e0
comparison
equal deleted inserted replaced
21552:61151f429a5f 21553:bee0e1cffdd3
1519 Returns whether patch was applied with fuzz factor. 1519 Returns whether patch was applied with fuzz factor.
1520 """ 1520 """
1521 patcher = ui.config('ui', 'patch') 1521 patcher = ui.config('ui', 'patch')
1522 if files is None: 1522 if files is None:
1523 files = set() 1523 files = set()
1524 try: 1524 if patcher:
1525 if patcher: 1525 return _externalpatch(ui, repo, patcher, patchname, strip,
1526 return _externalpatch(ui, repo, patcher, patchname, strip, 1526 files, similarity)
1527 files, similarity) 1527 return internalpatch(ui, repo, patchname, strip, files, eolmode,
1528 return internalpatch(ui, repo, patchname, strip, files, eolmode, 1528 similarity)
1529 similarity)
1530 except PatchError, err:
1531 raise util.Abort(str(err))
1532 1529
1533 def changedfiles(ui, repo, patchpath, strip=1): 1530 def changedfiles(ui, repo, patchpath, strip=1):
1534 backend = fsbackend(ui, repo.root) 1531 backend = fsbackend(ui, repo.root)
1535 fp = open(patchpath, 'rb') 1532 fp = open(patchpath, 'rb')
1536 try: 1533 try: