If "stg push" fails, the subsequent "stg clean" will remove the patch
that could not be applied. I think it's wrong. Especially when doing
"stg pull", it can happen that I want to run "stg clean" to get rid of
the patches applied upstream so I can concentrate on the conflict.
Instead, the conflicting patch is removed too.
The test added by this patch should pass once the bug is fixed.
Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: Karl Hasselström <kha@treskal.com>
[ "$(echo $(stg unapplied))" = "" ]
'
+test_expect_success 'Create a conflict' '
+ stg new p1 -m p1 &&
+ echo bar > foo.txt &&
+ stg refresh &&
+ stg pop &&
+ stg new p2 -m p2
+ echo quux > foo.txt &&
+ stg refresh &&
+ ! stg push
+'
+
+test_expect_failure 'Make sure conflicting patches are preserved' '
+ stg clean &&
+ [ "$(echo $(stg applied))" = "p0 p2 p1" ] &&
+ [ "$(echo $(stg unapplied))" = "" ]
+'
+
test_done