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@xxxxxxxxxxx> --- stgit/commands/push.py | 2 +- t/t1205-push-subdir.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/stgit/commands/push.py b/stgit/commands/push.py index b91bc5e..4d5de26 100644 --- a/stgit/commands/push.py +++ b/stgit/commands/push.py @@ -39,7 +39,7 @@ command run. 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'), diff --git a/t/t1205-push-subdir.sh b/t/t1205-push-subdir.sh index 6502c20..f9a84f6 100755 --- a/t/t1205-push-subdir.sh +++ b/t/t1205-push-subdir.sh @@ -27,7 +27,7 @@ test_expect_success 'Fast-forward push from a subdir' ' [ "$(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" ] && @@ -42,7 +42,7 @@ test_expect_failure 'Modifying push from a subdir' ' [ "$(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" ] && - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html