From: Michal Sojka <sojkam1@fel.cvut.cz>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>, git@vger.kernel.org
Subject: Re: [PATCH] filter-branch fix and tests
Date: Wed, 27 Jan 2010 16:49:18 +0100 [thread overview]
Message-ID: <201001271649.19287.sojkam1@fel.cvut.cz> (raw)
In-Reply-To: <alpine.DEB.1.00.1001261939420.4641@intel-tinevez-2-302>
Hi Johannes,
On Tuesday 26 of January 2010 19:40:47 Johannes Schindelin wrote:
> On Mon, 25 Jan 2010, Michal Sojka wrote:
> > this is resend of the patch I sent two weeks ago. I've extended the
> > commit message to address Johannes' question and in the second patch
> > I've added tests for the fix.
>
> From a quick look, it does not seem that I will be happy with your "fix";
> you changed the commit message, but did not address the issue.
>
> Unfortunately, I do not have time to review anything that takes longer
> than 30 minutes in total, and today not even that, so that will have to
> wait.
Thanks for your reply. I do not want to steal your time, but I may not
understand what is the issue. I extended my previous patch with tests
(see bellow) so that all the use cases which might be IMHO affected by
my "fix" are covered. If you can think of another use case let me
know.
The fastest way to test this patch is:
GIT_SKIP_TESTS='t7003.[12]? t7003.[2-9]' ./t7003-filter-branch.sh -d
>From 849b105541ba4b5e3592de6769922b1264be0c77 Mon Sep 17 00:00:00 2001
From: Michal Sojka <sojkam1@fel.cvut.cz>
Date: Wed, 27 Jan 2010 15:57:17 +0100
Subject: [PATCH] filter-branch: Add tests for submodules
There are three important tests:
1) 'rewrite submodule with another content' passes only with the
previous patch applied.
2) 'checkout submodule during rewrite' demonstrates that it is not
possible to replace a submodule revision in tree-filter by checking
the submodule out and reseting the submodule's HEAD. Fails both
with and without the previous patch. This is because filter-branch
sets GIT_WORKING_TREE to "." which causes clone (called from
git-submodule) to fail.
3) 'replace submodule revision' shows that replacing submodule
revision is possible by direct index manipulation. Succeeds both
with and without the previous patch.
Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
---
t/t7003-filter-branch.sh | 48 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 48 insertions(+), 0 deletions(-)
diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh
index 9503875..a218d7a 100755
--- a/t/t7003-filter-branch.sh
+++ b/t/t7003-filter-branch.sh
@@ -306,4 +306,52 @@ test_expect_success '--remap-to-ancestor with filename filters' '
test $orig_invariant = $(git rev-parse invariant)
'
+test_expect_success 'setup submodule' '
+ rm -rf * .*
+ git init &&
+ test_commit file &&
+ mkdir submod &&
+ submodurl="$PWD/submod"
+ ( cd submod &&
+ git init &&
+ test_commit file-in-submod ) &&
+ git submodule add "$submodurl"
+ git commit -m "added submodule" &&
+ test_commit add-file &&
+ ( cd submod && test_commit add-in-submodule ) &&
+ git add submod &&
+ git commit -m "changed submodule"
+ git branch original HEAD
+'
+
+orig_head=`git show-ref --hash HEAD`
+export orig_head
+
+test_expect_success 'rewrite submodule with another content' '
+ git filter-branch --tree-filter "test -d submod && {
+ rm -rf submod &&
+ git rm -rf --quiet submod &&
+ mkdir submod &&
+ : > submod/file
+ } || : &&
+ test $orig_head != `git show-ref --hash HEAD`"
+'
+
+test_expect_failure 'checkout submodule during rewrite' '
+ git reset --hard original &&
+ git filter-branch -f --tree-filter \
+ "git submodule update --init &&
+ cd submod &&
+ git reset --hard origin/master" HEAD
+'
+
+test_expect_success 'replace submodule revision' '
+ git reset --hard original &&
+ git filter-branch -f --tree-filter \
+ "git ls-files --error-unmatch -- submod > /dev/null 2>&1 &&
+ git update-index --cacheinfo 160000 0123456789012345678901234567890123456789 submod ||
+ : &&
+ test $orig_head != `git show-ref --hash HEAD`"
+'
+
test_done
--
1.6.6
next prev parent reply other threads:[~2010-01-27 15:49 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-25 13:06 filter-branch fix and tests Michal Sojka
2010-01-25 13:06 ` [PATCH 1/2] filter-branch: Fix to allow replacing submodules with another content Michal Sojka
2010-01-25 13:06 ` [PATCH 2/2] filter-branch: Add tests for submodules Michal Sojka
[not found] ` <alpine.DEB.1.00.1001261939420.4641@intel-tinevez-2-302>
2010-01-27 15:49 ` Michal Sojka [this message]
2010-01-27 16:18 ` [PATCH] filter-branch fix and tests Johannes Sixt
2010-01-27 23:41 ` Michal Sojka
2010-01-27 23:55 ` [PATCHv3] filter-branch: Add tests for submodules Michal Sojka
2010-01-28 0:14 ` Junio C Hamano
2010-01-28 9:02 ` Michal Sojka
2010-01-28 9:08 ` [PATCHv4 1/2] filter-branch: Fix to allow replacing submodules with another content Michal Sojka
2010-01-28 9:08 ` [PATCHv4 2/2] filter-branch: Add tests for submodules in tree-filter Michal Sojka
2010-01-28 21:57 ` Junio C Hamano
2010-01-29 15:20 ` Michal Sojka
2010-01-29 15:27 ` [PATCHv5 1/2] filter-branch: Fix to allow replacing submodules with another content Michal Sojka
2010-01-29 15:27 ` [PATCHv5 2/2] filter-branch: Add tests for submodules in tree-filter Michal Sojka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201001271649.19287.sojkam1@fel.cvut.cz \
--to=sojkam1@fel.cvut.cz \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).