]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/t9350-fast-export.sh
Merge branch 'js/update-index-ignore-removal-for-skip-worktree'
[thirdparty/git.git] / t / t9350-fast-export.sh
index d32ff41859e7e9d31adad144c2b2432c1cb55a33..2e4e21481542779dab3354c0ee9b332f76ad2034 100755 (executable)
@@ -66,6 +66,20 @@ test_expect_success 'fast-export ^muss^{commit} muss' '
        test_cmp expected actual
 '
 
+test_expect_success 'fast-export --mark-tags ^muss^{commit} muss' '
+       git fast-export --mark-tags --tag-of-filtered-object=rewrite ^muss^{commit} muss >actual &&
+       cat >expected <<-EOF &&
+       tag muss
+       mark :1
+       from $(git rev-parse --verify muss^{commit})
+       $(git cat-file tag muss | grep tagger)
+       data 9
+       valentin
+
+       EOF
+       test_cmp expected actual
+'
+
 test_expect_success 'fast-export master~2..master' '
 
        git fast-export master~2..master >actual &&
@@ -526,10 +540,41 @@ test_expect_success 'tree_tag'        '
 '
 
 # NEEDSWORK: not just check return status, but validate the output
+# Note that these tests DO NOTHING other than print a warning that
+# they are ommitting the one tag we asked them to export (because the
+# tags resolve to a tree).  They exist just to make sure we do not
+# abort but instead just warn.
 test_expect_success 'tree_tag-obj'    'git fast-export tree_tag-obj'
 test_expect_success 'tag-obj_tag'     'git fast-export tag-obj_tag'
 test_expect_success 'tag-obj_tag-obj' 'git fast-export tag-obj_tag-obj'
 
+test_expect_success 'handling tags of blobs' '
+       git tag -a -m "Tag of a blob" blobtag $(git rev-parse master:file) &&
+       git fast-export blobtag >actual &&
+       cat >expect <<-EOF &&
+       blob
+       mark :1
+       data 9
+       die Luft
+
+       tag blobtag
+       from :1
+       tagger $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
+       data 14
+       Tag of a blob
+
+       EOF
+       test_cmp expect actual
+'
+
+test_expect_success 'handling nested tags' '
+       git tag -a -m "This is a nested tag" nested muss &&
+       git fast-export --mark-tags nested >output &&
+       grep "^from $ZERO_OID$" output &&
+       grep "^tag nested$" output >tag_lines &&
+       test_line_count = 2 tag_lines
+'
+
 test_expect_success 'directory becomes symlink'        '
        git init dirtosymlink &&
        git init result &&
@@ -580,17 +625,15 @@ test_expect_success 'fast-export quotes pathnames' '
 '
 
 test_expect_success 'test bidirectionality' '
-       >marks-cur &&
-       >marks-new &&
        git init marks-test &&
-       git fast-export --export-marks=marks-cur --import-marks=marks-cur --branches | \
-       git --git-dir=marks-test/.git fast-import --export-marks=marks-new --import-marks=marks-new &&
+       git fast-export --export-marks=marks-cur --import-marks-if-exists=marks-cur --branches | \
+       git --git-dir=marks-test/.git fast-import --export-marks=marks-new --import-marks-if-exists=marks-new &&
        (cd marks-test &&
        git reset --hard &&
        echo Wohlauf > file &&
        git commit -a -m "back in time") &&
-       git --git-dir=marks-test/.git fast-export --export-marks=marks-new --import-marks=marks-new --branches | \
-       git fast-import --export-marks=marks-cur --import-marks=marks-cur
+       git --git-dir=marks-test/.git fast-export --export-marks=marks-new --import-marks-if-exists=marks-new --branches | \
+       git fast-import --export-marks=marks-cur --import-marks-if-exists=marks-cur
 '
 
 cat > expected << EOF