Make "stg push" subdirectory safe by letting it internally cd up to
the top of the worktree. This is possibly not the best long-term fix;
one could argue that the push subroutine should instead be safe to run
from a subdirectory. However, pushing from a subdirectory currently
erases the parts of a patch that doesn't touch that subdirectory, and
that has to be fixed.
Signed-off-by: Karl Hasselström <kha@treskal.com>
The command also notifies when the patch becomes empty (fully merged
upstream) or is modified (three-way merged) by the 'push' operation."""
-directory = DirectoryHasRepository()
+directory = DirectoryGotoToplevel()
options = [make_option('-a', '--all',
help = 'push all the unapplied patches',
action = 'store_true'),
[ "$(echo $(cat foo/y.txt))" = "y0 y1 y2" ]
'
-test_expect_failure 'Modifying push from a subdir' '
+test_expect_success 'Modifying push from a subdir' '
stg pop &&
[ "$(echo $(cat x.txt))" = "x0 x1" ] &&
[ "$(echo $(cat foo/y.txt))" = "y0 y1" ] &&
[ "$(echo $(cat foo/y.txt))" = "y0 y1 y2" ]
'
-test_expect_failure 'Conflicting push from subdir' '
+test_expect_success 'Conflicting push from subdir' '
stg pop p1 p2 &&
[ "$(echo $(cat x.txt))" = "x0" ] &&
[ "$(echo $(cat foo/y.txt))" = "y0" ] &&