From: Jonathan Nieder <jrnieder@gmail.com>
To: Ramkumar Ramachandra <artagnon@gmail.com>
Cc: git@vger.kernel.org, "Shawn O. Pearce" <spearce@spearce.org>,
Sverre Rabbelier <srabbelier@gmail.com>,
David Barr <david.barr@cordelta.com>, Sam Vilain <sam@vilain.net>
Subject: [PATCH 02/24] t9300 (fast-import): avoid hard-coded object names
Date: Fri, 24 Sep 2010 02:05:10 -0500 [thread overview]
Message-ID: <20100924070510.GC4666@burratino> (raw)
In-Reply-To: <20100924065900.GA4666@burratino>
compare_diff_raw already ensures most (though not all) of the tests
do not rely on any particular hash function, but still the attentive
reader might be comforted by some less opaque object descriptions.
Tested with
sed -i s/compare_diff_raw/test_cmp/g t9300-fast-import.sh &&
sh t9300-fast-import.sh -v -i
Cc: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
t/t9300-fast-import.sh | 91 ++++++++++++++++++++++++++++++++---------------
1 files changed, 62 insertions(+), 29 deletions(-)
diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh
index 1eef926..ed37a4e 100755
--- a/t/t9300-fast-import.sh
+++ b/t/t9300-fast-import.sh
@@ -7,6 +7,8 @@ test_description='test git fast-import utility'
. ./test-lib.sh
. "$TEST_DIRECTORY"/diff-lib.sh ;# test-lib chdir's into trash
+zeroes=0000000000000000000000000000000000000000
+
file2_data='file2
second line of EOF'
@@ -31,6 +33,14 @@ verify_packs () {
done
}
+test_expect_success 'setup' '
+ file2_id=$(echo "$file2_data" | git hash-object --stdin) &&
+ file3_id=$(echo "$file3_data" | git hash-object --stdin) &&
+ file4_id=$(printf "%s" "$file4_data" | git hash-object --stdin) &&
+ file5_id=$(echo "$file5_data" | git hash-object --stdin) &&
+ file6_id=$(echo "$file6_data" | git hash-object --stdin)
+'
+
###
### series A
###
@@ -165,7 +175,7 @@ test_expect_success \
'A: verify pack' \
'verify_packs'
cat >expect <<EOF
-:000000 100755 0000000000000000000000000000000000000000 7123f7f44e39be127c5eb701e5968176ee9d78b1 A copy-of-file2
+:000000 100755 $zeroes $file2_id A copy-of-file2
EOF
git diff-tree -M -r master verify--import-marks >actual
test_expect_success \
@@ -345,9 +355,9 @@ test_expect_success \
test_cmp expect actual'
cat >expect <<EOF
-:000000 100755 0000000000000000000000000000000000000000 f1fb5da718392694d0076d677d6d0e364c79b0bc A file2/newf
-:100644 100644 7123f7f44e39be127c5eb701e5968176ee9d78b1 7123f7f44e39be127c5eb701e5968176ee9d78b1 R100 file2 file2/oldf
-:100644 000000 0d92e9f3374ae2947c23aa477cbc68ce598135f1 0000000000000000000000000000000000000000 D file3
+:000000 100755 $zeroes $newf A file2/newf
+:100644 100644 $file2_id $file2_id R100 file2 file2/oldf
+:100644 000000 $file3_id $zeroes D file3
EOF
git diff-tree -M -r master branch >actual
test_expect_success \
@@ -387,8 +397,8 @@ test_expect_success \
'verify_packs'
cat >expect <<EOF
-:000000 100755 0000000000000000000000000000000000000000 35a59026a33beac1569b1c7f66f3090ce9c09afc A newdir/exec.sh
-:000000 100644 0000000000000000000000000000000000000000 046d0371e9220107917db0d0e030628de8a1de9b A newdir/interesting
+:000000 100755 $zeroes $file6_id A newdir/exec.sh
+:000000 100644 $zeroes $file5_id A newdir/interesting
EOF
git diff-tree -M -r branch^ branch >actual
test_expect_success \
@@ -557,11 +567,11 @@ test_expect_success \
'verify_packs'
cat >expect <<EOF
-:100755 000000 f1fb5da718392694d0076d677d6d0e364c79b0bc 0000000000000000000000000000000000000000 D file2/newf
-:100644 000000 7123f7f44e39be127c5eb701e5968176ee9d78b1 0000000000000000000000000000000000000000 D file2/oldf
-:100755 000000 85df50785d62d3b05ab03d9cbf7e4a0b49449730 0000000000000000000000000000000000000000 D file4
-:100644 100644 fcf778cda181eaa1cbc9e9ce3a2e15ee9f9fe791 fcf778cda181eaa1cbc9e9ce3a2e15ee9f9fe791 R100 newdir/interesting h/e/l/lo
-:100755 000000 e74b7d465e52746be2b4bae983670711e6e66657 0000000000000000000000000000000000000000 D newdir/exec.sh
+:100755 000000 $newf $zeroes D file2/newf
+:100644 000000 $oldf $zeroes D file2/oldf
+:100755 000000 $file4_id $zeroes D file4
+:100644 100644 $file5_id $file5_id R100 newdir/interesting h/e/l/lo
+:100755 000000 $file6_id $zeroes D newdir/exec.sh
EOF
git diff-tree -M -r H^ H >actual
test_expect_success \
@@ -698,16 +708,39 @@ M 644 :2 b/other
M 644 :2 ba
INPUT_END
+test_expect_success 'setup: object names for expected diff' '
+ some_data=$(
+ echo some data |
+ git hash-object -w --stdin
+ ) &&
+ other_data=$(
+ echo other data |
+ git hash-object -w --stdin
+ ) &&
+ some_tree=$(
+ rm -f tmp_index &&
+ echo "100644 blob $some_data other" |
+ GIT_INDEX_FILE=tmp_index git update-index --index-info &&
+ GIT_INDEX_FILE=tmp_index git write-tree
+ ) &&
+ other_tree=$(
+ rm -f tmp_index &&
+ echo "100644 blob $other_data other" |
+ GIT_INDEX_FILE=tmp_index git update-index --index-info &&
+ GIT_INDEX_FILE=tmp_index git write-tree
+ )
+'
+
cat >expect <<EXPECT_END
-:100644 100644 4268632... 55d3a52... M b.
-:040000 040000 0ae5cac... 443c768... M b
-:100644 100644 4268632... 55d3a52... M ba
+:100644 100644 $some_data $other_data M b.
+:040000 040000 $some_tree $other_tree M b
+:100644 100644 $some_data $other_data M ba
EXPECT_END
test_expect_success \
'L: verify internal tree sorting' \
'git fast-import <input &&
- git diff-tree --abbrev --raw L^ L >output &&
+ git diff-tree L^ L >output &&
test_cmp expect output'
###
@@ -728,7 +761,7 @@ R file2/newf file2/n.e.w.f
INPUT_END
cat >expect <<EOF
-:100755 100755 f1fb5da718392694d0076d677d6d0e364c79b0bc f1fb5da718392694d0076d677d6d0e364c79b0bc R100 file2/newf file2/n.e.w.f
+:100755 100755 $newf $newf R100 file2/newf file2/n.e.w.f
EOF
test_expect_success \
'M: rename file in same subdirectory' \
@@ -749,7 +782,7 @@ R file2/newf i/am/new/to/you
INPUT_END
cat >expect <<EOF
-:100755 100755 f1fb5da718392694d0076d677d6d0e364c79b0bc f1fb5da718392694d0076d677d6d0e364c79b0bc R100 file2/newf i/am/new/to/you
+:100755 100755 $newf $newf R100 file2/newf i/am/new/to/you
EOF
test_expect_success \
'M: rename file to new subdirectory' \
@@ -770,7 +803,7 @@ R i other/sub
INPUT_END
cat >expect <<EOF
-:100755 100755 f1fb5da718392694d0076d677d6d0e364c79b0bc f1fb5da718392694d0076d677d6d0e364c79b0bc R100 i/am/new/to/you other/sub/am/new/to/you
+:100755 100755 $newf $newf R100 i/am/new/to/you other/sub/am/new/to/you
EOF
test_expect_success \
'M: rename subdirectory to new subdirectory' \
@@ -796,7 +829,7 @@ C file2/newf file2/n.e.w.f
INPUT_END
cat >expect <<EOF
-:100755 100755 f1fb5da718392694d0076d677d6d0e364c79b0bc f1fb5da718392694d0076d677d6d0e364c79b0bc C100 file2/newf file2/n.e.w.f
+:100755 100755 $newf $newf C100 file2/newf file2/n.e.w.f
EOF
test_expect_success \
'N: copy file in same subdirectory' \
@@ -828,9 +861,9 @@ EOF
INPUT_END
cat >expect <<EOF
-:100644 100644 fcf778cda181eaa1cbc9e9ce3a2e15ee9f9fe791 fcf778cda181eaa1cbc9e9ce3a2e15ee9f9fe791 C100 newdir/interesting file3/file5
-:100755 100755 f1fb5da718392694d0076d677d6d0e364c79b0bc f1fb5da718392694d0076d677d6d0e364c79b0bc C100 file2/newf file3/newf
-:100644 100644 7123f7f44e39be127c5eb701e5968176ee9d78b1 7123f7f44e39be127c5eb701e5968176ee9d78b1 C100 file2/oldf file3/oldf
+:100644 100644 $file5_id $file5_id C100 newdir/interesting file3/file5
+:100755 100755 $newf $newf C100 file2/newf file3/newf
+:100644 100644 $oldf $oldf C100 file2/oldf file3/oldf
EOF
test_expect_success \
'N: copy then modify subdirectory' \
@@ -863,9 +896,9 @@ test_expect_success \
test_expect_success \
'N: copy directory by id' \
- 'cat >expect <<-\EOF &&
- :100755 100755 f1fb5da718392694d0076d677d6d0e364c79b0bc f1fb5da718392694d0076d677d6d0e364c79b0bc C100 file2/newf file3/newf
- :100644 100644 7123f7f44e39be127c5eb701e5968176ee9d78b1 7123f7f44e39be127c5eb701e5968176ee9d78b1 C100 file2/oldf file3/oldf
+ 'cat >expect <<-EOF &&
+ :100755 100755 $newf $newf C100 file2/newf file3/newf
+ :100644 100644 $oldf $oldf C100 file2/oldf file3/oldf
EOF
subdir=$(git rev-parse refs/heads/branch^0:file2) &&
cat >input <<-INPUT_END &&
@@ -884,10 +917,10 @@ test_expect_success \
test_expect_success \
'N: modify copied tree' \
- 'cat >expect <<-\EOF &&
- :100644 100644 fcf778cda181eaa1cbc9e9ce3a2e15ee9f9fe791 fcf778cda181eaa1cbc9e9ce3a2e15ee9f9fe791 C100 newdir/interesting file3/file5
- :100755 100755 f1fb5da718392694d0076d677d6d0e364c79b0bc f1fb5da718392694d0076d677d6d0e364c79b0bc C100 file2/newf file3/newf
- :100644 100644 7123f7f44e39be127c5eb701e5968176ee9d78b1 7123f7f44e39be127c5eb701e5968176ee9d78b1 C100 file2/oldf file3/oldf
+ 'cat >expect <<-EOF &&
+ :100644 100644 $file5_id $file5_id C100 newdir/interesting file3/file5
+ :100755 100755 $newf $newf C100 file2/newf file3/newf
+ :100644 100644 $oldf $oldf C100 file2/oldf file3/oldf
EOF
subdir=$(git rev-parse refs/heads/branch^0:file2) &&
cat >input <<-INPUT_END &&
--
1.7.2.3
next prev parent reply other threads:[~2010-09-24 7:08 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-01 3:18 [PATCH/RFC] Teach fast-import to import subtrees named by tree id Jonathan Nieder
2010-07-01 5:48 ` [WIP/PATCH] Teach fast-import to print the id of each imported commit Jonathan Nieder
2010-07-02 3:16 ` Sverre Rabbelier
2010-07-02 3:41 ` Jonathan Nieder
2010-07-02 4:29 ` Sverre Rabbelier
2010-07-02 5:12 ` Jonathan Nieder
2010-07-02 14:55 ` Sverre Rabbelier
2010-07-02 15:40 ` Jonathan Nieder
2010-07-02 15:48 ` Sverre Rabbelier
2010-07-04 0:02 ` Sam Vilain
2010-07-04 0:35 ` Jonathan Nieder
2010-07-04 3:44 ` Sam Vilain
2010-07-04 7:22 ` Jonathan Nieder
2010-08-17 17:02 ` Ramkumar Ramachandra
2010-09-05 3:15 ` [RFC/PATCH 0/3] fast-import: give importers access to the object store Jonathan Nieder
2010-09-05 3:22 ` [PATCH 1/3] t9300 (fast-import): style tweaks Jonathan Nieder
2010-09-24 6:59 ` [PATCH/RFC 00/24] " Jonathan Nieder
2010-09-24 7:04 ` [PATCH 01/24] t9300 (fast-import): avoid exiting early on failure Jonathan Nieder
2010-09-24 7:05 ` Jonathan Nieder [this message]
2010-09-24 7:09 ` [PATCH 03/24] t9300 (fast-import): guard "export large marks" test setup Jonathan Nieder
2010-09-24 9:38 ` Ramkumar Ramachandra
2010-09-24 10:56 ` Raja R Harinath
2010-09-24 10:34 ` Ramkumar Ramachandra
2010-09-24 11:01 ` Raja R Harinath
2010-09-24 7:11 ` [PATCH 04/24] t9300 (fast-import): check exit status from upstream of pipes Jonathan Nieder
2010-09-24 7:11 ` [PATCH 05/24] t9300 (fast-import): check exit status from command substitutions Jonathan Nieder
2010-09-24 7:12 ` [PATCH 06/24] t9300 (fast-import): use test_cmp in place of test $(foo) = $(bar) Jonathan Nieder
2010-09-24 7:13 ` [PATCH 07/24] t9300 (fast-import): use tabs to indent Jonathan Nieder
2010-09-24 8:54 ` Ramkumar Ramachandra
2010-09-24 9:21 ` Jonathan Nieder
2010-09-24 7:16 ` [PATCH 08/24] t9300 (fast-import), series A: re-indent Jonathan Nieder
2010-09-24 7:22 ` Sverre Rabbelier
2010-09-24 7:35 ` Jonathan Nieder
2010-09-24 7:18 ` [PATCH 09/24] t9300 (fast-import), series B: re-indent Jonathan Nieder
2010-09-24 7:19 ` [PATCH 10/24] t9300 (fast-import), series C: re-indent Jonathan Nieder
2010-09-24 7:19 ` [PATCH 11/24] t9300 (fast-import), series D: re-indent Jonathan Nieder
2010-09-24 7:21 ` [PATCH 12/24] t9300 (fast-import), series E: re-indent Jonathan Nieder
2010-09-24 7:22 ` [PATCH 13/24] t9300 (fast-import), series F: re-indent Jonathan Nieder
2010-09-24 7:22 ` [PATCH 14/24] t9300 (fast-import), series H: re-indent Jonathan Nieder
2010-09-24 7:23 ` [PATCH 15/24] t9300 (fast-import), series I: re-indent Jonathan Nieder
2010-09-24 7:24 ` [PATCH 16/24] t9300 (fast-import), series J: re-indent Jonathan Nieder
2010-09-24 7:25 ` [PATCH 17/24] t9300 (fast-import), series K: re-indent Jonathan Nieder
2010-09-24 7:25 ` [PATCH 18/24] t9300 (fast-import), series L: re-indent Jonathan Nieder
2010-09-24 7:26 ` [PATCH 19/24] t9300 (fast-import), series M: re-indent Jonathan Nieder
2010-09-24 7:26 ` [PATCH 20/24] t9300 (fast-import), series N: re-indent Jonathan Nieder
2010-09-24 7:27 ` [PATCH 21/24] t9300 (fast-import), series O: re-indent Jonathan Nieder
2010-09-24 7:27 ` [PATCH 22/24] t9300 (fast-import), series P: re-indent Jonathan Nieder
2010-09-24 7:28 ` [PATCH 23/24] t9300 (fast-import), series Q: re-indent Jonathan Nieder
2010-09-24 7:30 ` [PATCH 24/24] t9300 (fast-import), series R: re-indent Jonathan Nieder
2010-09-25 5:19 ` svn-fe status Jonathan Nieder
2010-09-25 10:25 ` Sverre Rabbelier
2010-09-27 2:54 ` Jonathan Nieder
2010-09-27 9:15 ` Sverre Rabbelier
2010-09-05 3:29 ` [PATCH 2/3] Teach fast-import to print the id of each imported commit Jonathan Nieder
2010-09-05 3:41 ` [PATCH 3/3] fast-import: Let importers retrieve the objects being written Jonathan Nieder
2010-09-05 6:08 ` [RFC/PATCH 0/3] fast-import: give importers access to the object store Ramkumar Ramachandra
2010-09-05 6:28 ` Sverre Rabbelier
2010-09-05 8:47 ` Ramkumar Ramachandra
2010-09-05 16:20 ` Sverre Rabbelier
2010-09-05 17:31 ` Jonathan Nieder
2010-09-08 3:13 ` [PATCH 4/3] fast-import: typofix Jonathan Nieder
2010-09-08 3:17 ` [PATCH 5/3] fast-import: allow cat command with empty path Jonathan Nieder
2010-09-08 3:27 ` [PATCH 6/3] fast-import: Allow cat requests at arbitrary points in stream Jonathan Nieder
2010-09-08 3:38 ` Sverre Rabbelier
2010-09-08 3:57 ` Jonathan Nieder
2010-09-08 10:16 ` Ramkumar Ramachandra
2010-09-16 0:14 ` [RFC/PATCH 0/3] fast-import: give importers access to the object store Sam Vilain
2010-09-17 23:24 ` Sverre Rabbelier
2010-09-24 19:43 ` Jonathan Nieder
2010-09-24 23:44 ` Sverre Rabbelier
2010-09-25 0:01 ` Jonathan Nieder
2010-09-25 0:17 ` Sverre Rabbelier
2010-07-02 3:20 ` [PATCH/RFC] Teach fast-import to import subtrees named by tree id Sverre Rabbelier
2010-07-02 4:42 ` Jonathan Nieder
2010-07-02 12:44 ` Ramkumar Ramachandra
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100924070510.GC4666@burratino \
--to=jrnieder@gmail.com \
--cc=artagnon@gmail.com \
--cc=david.barr@cordelta.com \
--cc=git@vger.kernel.org \
--cc=sam@vilain.net \
--cc=spearce@spearce.org \
--cc=srabbelier@gmail.com \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).