Mercurial > hg
view tests/test-resolve.t @ 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 | 6062593d8b06 |
children | 6539c4e9c874 |
line wrap: on
line source
test that a commit clears the merge state. $ hg init repo $ cd repo $ echo foo > file $ hg commit -Am 'add file' adding file $ echo bar >> file $ hg commit -Am 'append bar' create a second head $ hg up -C 0 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ echo baz >> file $ hg commit -Am 'append baz' created new head failing merge $ hg merge --tool=internal:fail 0 files updated, 0 files merged, 0 files removed, 1 files unresolved use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon [1] resolve -l should contain an unresolved entry $ hg resolve -l U file resolving an unknown path emits a warning $ hg resolve -m does-not-exist arguments do not match paths that need resolved resolve the failure $ echo resolved > file $ hg resolve -m file no more unresolved files $ hg commit -m 'resolved' resolve -l should be empty $ hg resolve -l resolve -m should abort since no merge in progress $ hg resolve -m abort: resolve command not applicable when not merging [255] test crashed merge with empty mergestate $ mkdir .hg/merge $ touch .hg/merge/state resolve -l, should be empty $ hg resolve -l $ cd ..