mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
record: abort on malformed patches instead of crashing
This commit is contained in:
parent
ca3aae955c
commit
dbfffc0abf
@ -531,7 +531,11 @@ def dorecord(ui, repo, commitfunc, cmdsuggest, backupall, *pats, **opts):
|
||||
fp.seek(0)
|
||||
|
||||
# 1. filter patch, so we have intending-to apply subset of it
|
||||
chunks = filterpatch(ui, parsepatch(fp))
|
||||
try:
|
||||
chunks = filterpatch(ui, parsepatch(fp))
|
||||
except patch.PatchError, err:
|
||||
raise util.Abort(_('error parsing patch: %s') % err)
|
||||
|
||||
del fp
|
||||
|
||||
contenders = set()
|
||||
|
@ -1176,6 +1176,53 @@ Invalid patch
|
||||
+That change will not be committed
|
||||
+That is the second line
|
||||
+That line has been added
|
||||
|
||||
Malformed patch - error handling
|
||||
|
||||
$ cat > editor.sh << '__EOF__'
|
||||
> sed -e '/^@/p' "$1" > tmp
|
||||
> mv tmp "$1"
|
||||
> __EOF__
|
||||
$ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg record <<EOF
|
||||
> y
|
||||
> e
|
||||
> EOF
|
||||
diff --git a/editedfile b/editedfile
|
||||
1 hunks, 3 lines changed
|
||||
examine changes to 'editedfile'? [Ynesfdaq?]
|
||||
@@ -1,3 +1,3 @@
|
||||
-This is the first line
|
||||
-This change will be committed
|
||||
-This is the third line
|
||||
+This change will not be committed
|
||||
+This is the second line
|
||||
+This line has been added
|
||||
record this change to 'editedfile'? [Ynesfdaq?]
|
||||
abort: error parsing patch: unhandled transition: range -> range
|
||||
[255]
|
||||
|
||||
$ cat > editor.sh << '__EOF__'
|
||||
> sed -e '/^@/iother' "$1" > tmp
|
||||
> mv tmp "$1"
|
||||
> __EOF__
|
||||
$ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg record <<EOF
|
||||
> y
|
||||
> e
|
||||
> EOF
|
||||
diff --git a/editedfile b/editedfile
|
||||
1 hunks, 3 lines changed
|
||||
examine changes to 'editedfile'? [Ynesfdaq?]
|
||||
@@ -1,3 +1,3 @@
|
||||
-This is the first line
|
||||
-This change will be committed
|
||||
-This is the third line
|
||||
+This change will not be committed
|
||||
+This is the second line
|
||||
+This line has been added
|
||||
record this change to 'editedfile'? [Ynesfdaq?]
|
||||
abort: error parsing patch: unknown patch content: 'other\n'
|
||||
[255]
|
||||
|
||||
$ hg up -C
|
||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user