From 89d889f42f6b0081c5e9e80b8b470d6770ff1e82 Mon Sep 17 00:00:00 2001 Message-Id: <89d889f42f6b0081c5e9e80b8b470d6770ff1e82.1715154117.git.mdw@distorted.org.uk> From: Mark Wooding Date: Sun, 7 Oct 2007 20:56:05 +0200 Subject: [PATCH] Make "stg push" subdirectory safe MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Organization: Straylight/Edgeware From: Karl Hasselström 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 --- 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" ] && -- [mdw]