Re: [PATCH v4 1/1] contrib/subtree: Add a test for subtree rebase that loses commits
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Jan 18, 2016, 18:10 UTC
- Message-ID
- <CAPig+cS6ouc+kdJaz10M2AApPoDODDcgDX9Azz8ih=4zxxD2zg@mail.gmail.com>
- In-Reply-To
- <047e625a28954b8fd79225b55cab7620cb5f3b1f.1453074191.git.greened@obbligato.org>
On Sun, Jan 17, 2016 at 6:43 PM, David Greene <greened@obbligato.org> wrote:
Show 17 quoted lines
> This test merges an external tree in as a subtree, makes some commits > on top of it and splits it back out. In the process the added commits > are lost or the rebase aborts with an internal error. The tests are > marked to expect failure so that we don't forget to fix it. > > Signed-off-by: David A. Greene <greened@obbligato.org> > --- > diff --git a/t/t3427-rebase-subtree.sh b/t/t3427-rebase-subtree.sh > @@ -0,0 +1,70 @@ > +# FAILURE: Does not preserve master4 and master5. > +test_expect_failure 'Rebase -Xsubtree --preserve-merges --onto' ' > + reset_rebase && > + git checkout -b rebase-preserve-merges master && > + git filter-branch --prune-empty -f --subdirectory-filter files_subtree && > + git commit -m "Empty commit" --allow-empty && > + git rebase -Xsubtree=files_subtree --preserve-merges --onto files-master master && > + verbose "$(last_commit_message)" "files_subtree/master5"
Hmm, does this test succeed? If it does, it's only by accident. verbose() is just a helper for printing the the expression being tested upon failure, but you still need to supply a proper expression for testing. It is intended to be used like this:
verbose test "$(last_commit_message)" = files_subtree/master5
Same comment applies to the remaining tests.
Show 25 quoted lines
> +' > + > +# FAILURE: Does not preserve master4, master5 and empty. > +test_expect_failure 'Rebase -Xsubtree --keep-empty --preserve-merges --onto' ' > + reset_rebase && > + git checkout -b rebase-keep-empty master && > + git filter-branch --prune-empty -f --subdirectory-filter files_subtree && > + git commit -m "Empty commit" --allow-empty && > + git rebase -Xsubtree=files_subtree --keep-empty --preserve-merges --onto files-master master && > + verbose "$(last_commit_message)" "Empty commit" > +' > + > +# FAILURE: fatal: Could not parse object > +test_expect_failure 'Rebase -Xsubtree --onto' ' > + reset_rebase && > + git checkout -b rebase-onto master && > + git filter-branch --prune-empty -f --subdirectory-filter files_subtree && > + git commit -m "Empty commit" --allow-empty && > + git rebase -Xsubtree=files_subtree --onto files-master master && > + verbose "$(last_commit_message)" "Empty commit" > +' > + > +test_done > -- > 2.6.1