Ignore:
Timestamp:
Jun 23, 2014, 9:45:51 PM (11 years ago)
Author:
dmik
Message:

git: Merge version 2.0.0 from vendor to dmik branch.

Location:
git/branches/dmik
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • git/branches/dmik

  • TabularUnified git/branches/dmik/t/t4041-diff-submodule-option.sh

    r347 r782  
    22#
    33# Copyright (c) 2009 Jens Lehmann, based on t7401 by Ping Yin
     4# Copyright (c) 2011 Alexey Shumkin (+ non-UTF-8 commit encoding tests)
    45#
    56
     
    1112. ./test-lib.sh
    1213
     14# String "added" in German (translated with Google Translate), encoded in UTF-8,
     15# used in sample commit log messages in add_file() function below.
     16added=$(printf "hinzugef\303\274gt")
    1317add_file () {
    14         sm=$1
    15         shift
    16         owd=$(pwd)
    17         cd "$sm"
    18         for name; do
    19                 echo "$name" > "$name" &&
    20                 git add "$name" &&
    21                 test_tick &&
    22                 git commit -m "Add $name"
    23         done >/dev/null
    24         git rev-parse --verify HEAD | cut -c1-7
    25         cd "$owd"
     18        (
     19                cd "$1" &&
     20                shift &&
     21                for name
     22                do
     23                        echo "$name" >"$name" &&
     24                        git add "$name" &&
     25                        test_tick &&
     26                        msg_added_iso88591=$(echo "Add $name ($added $name)" | iconv -f utf-8 -t iso8859-1) &&
     27                        git -c 'i18n.commitEncoding=iso8859-1' commit -m "$msg_added_iso88591"
     28                done >/dev/null &&
     29                git rev-parse --short --verify HEAD
     30        )
    2631}
    2732commit_file () {
     
    3439
    3540head1=$(add_file sm1 foo1 foo2)
    36 
    37 test_expect_success 'added submodule' "
     41fullhead1=$(cd sm1; git rev-parse --verify HEAD)
     42
     43test_expect_success 'added submodule' '
    3844        git add sm1 &&
    3945        git diff-index -p --submodule=log HEAD >actual &&
    4046        cat >expected <<-EOF &&
    41 Submodule sm1 0000000...$head1 (new submodule)
    42 EOF
    43         test_cmp expected actual
    44 "
     47        Submodule sm1 0000000...$head1 (new submodule)
     48        EOF
     49        test_cmp expected actual
     50'
     51
     52test_expect_success 'added submodule, set diff.submodule' '
     53        git config diff.submodule log &&
     54        git add sm1 &&
     55        git diff --cached >actual &&
     56        cat >expected <<-EOF &&
     57        Submodule sm1 0000000...$head1 (new submodule)
     58        EOF
     59        git config --unset diff.submodule &&
     60        test_cmp expected actual
     61'
     62
     63test_expect_success '--submodule=short overrides diff.submodule' '
     64        test_config diff.submodule log &&
     65        git add sm1 &&
     66        git diff --submodule=short --cached >actual &&
     67        cat >expected <<-EOF &&
     68        diff --git a/sm1 b/sm1
     69        new file mode 160000
     70        index 0000000..$head1
     71        --- /dev/null
     72        +++ b/sm1
     73        @@ -0,0 +1 @@
     74        +Subproject commit $fullhead1
     75        EOF
     76        test_cmp expected actual
     77'
     78
     79test_expect_success 'diff.submodule does not affect plumbing' '
     80        test_config diff.submodule log &&
     81        git diff-index -p HEAD >actual &&
     82        cat >expected <<-EOF &&
     83        diff --git a/sm1 b/sm1
     84        new file mode 160000
     85        index 0000000..$head1
     86        --- /dev/null
     87        +++ b/sm1
     88        @@ -0,0 +1 @@
     89        +Subproject commit $fullhead1
     90        EOF
     91        test_cmp expected actual
     92'
    4593
    4694commit_file sm1 &&
    4795head2=$(add_file sm1 foo3)
    4896
    49 test_expect_success 'modified submodule(forward)' "
    50         git diff-index -p --submodule=log HEAD >actual &&
    51         cat >expected <<-EOF &&
    52 Submodule sm1 $head1..$head2:
    53   > Add foo3
    54 EOF
    55         test_cmp expected actual
    56 "
    57 
    58 test_expect_success 'modified submodule(forward)' "
     97test_expect_success 'modified submodule(forward)' '
     98        git diff-index -p --submodule=log HEAD >actual &&
     99        cat >expected <<-EOF &&
     100        Submodule sm1 $head1..$head2:
     101          > Add foo3 ($added foo3)
     102        EOF
     103        test_cmp expected actual
     104'
     105
     106test_expect_success 'modified submodule(forward)' '
    59107        git diff --submodule=log >actual &&
    60108        cat >expected <<-EOF &&
    61 Submodule sm1 $head1..$head2:
    62   > Add foo3
    63 EOF
    64         test_cmp expected actual
    65 "
    66 
    67 test_expect_success 'modified submodule(forward) --submodule' "
     109        Submodule sm1 $head1..$head2:
     110          > Add foo3 ($added foo3)
     111        EOF
     112        test_cmp expected actual
     113'
     114
     115test_expect_success 'modified submodule(forward) --submodule' '
    68116        git diff --submodule >actual &&
    69117        cat >expected <<-EOF &&
    70 Submodule sm1 $head1..$head2:
    71   > Add foo3
    72 EOF
    73         test_cmp expected actual
    74 "
    75 
    76 fullhead1=$(cd sm1; git rev-list --max-count=1 $head1)
    77 fullhead2=$(cd sm1; git rev-list --max-count=1 $head2)
    78 test_expect_success 'modified submodule(forward) --submodule=short' "
     118        Submodule sm1 $head1..$head2:
     119          > Add foo3 ($added foo3)
     120        EOF
     121        test_cmp expected actual
     122'
     123
     124fullhead2=$(cd sm1; git rev-parse --verify HEAD)
     125test_expect_success 'modified submodule(forward) --submodule=short' '
    79126        git diff --submodule=short >actual &&
    80127        cat >expected <<-EOF &&
    81 diff --git a/sm1 b/sm1
    82 index $head1..$head2 160000
    83 --- a/sm1
    84 +++ b/sm1
    85 @@ -1 +1 @@
    86 -Subproject commit $fullhead1
    87 +Subproject commit $fullhead2
    88 EOF
    89         test_cmp expected actual
    90 "
     128        diff --git a/sm1 b/sm1
     129        index $head1..$head2 160000
     130        --- a/sm1
     131        +++ b/sm1
     132        @@ -1 +1 @@
     133        -Subproject commit $fullhead1
     134        +Subproject commit $fullhead2
     135        EOF
     136        test_cmp expected actual
     137'
    91138
    92139commit_file sm1 &&
     
    94141        cd sm1 &&
    95142        git reset --hard HEAD~2 >/dev/null &&
    96         git rev-parse --verify HEAD | cut -c1-7
     143        git rev-parse --short --verify HEAD
    97144)
    98145
    99 test_expect_success 'modified submodule(backward)' "
    100         git diff-index -p --submodule=log HEAD >actual &&
    101         cat >expected <<-EOF &&
    102 Submodule sm1 $head2..$head3 (rewind):
    103   < Add foo3
    104   < Add foo2
    105 EOF
    106         test_cmp expected actual
    107 "
    108 
    109 head4=$(add_file sm1 foo4 foo5) &&
    110 head4_full=$(GIT_DIR=sm1/.git git rev-parse --verify HEAD)
    111 test_expect_success 'modified submodule(backward and forward)' "
    112         git diff-index -p --submodule=log HEAD >actual &&
    113         cat >expected <<-EOF &&
    114 Submodule sm1 $head2...$head4:
    115   > Add foo5
    116   > Add foo4
    117   < Add foo3
    118   < Add foo2
    119 EOF
    120         test_cmp expected actual
    121 "
     146test_expect_success 'modified submodule(backward)' '
     147        git diff-index -p --submodule=log HEAD >actual &&
     148        cat >expected <<-EOF &&
     149        Submodule sm1 $head2..$head3 (rewind):
     150          < Add foo3 ($added foo3)
     151          < Add foo2 ($added foo2)
     152        EOF
     153        test_cmp expected actual
     154'
     155
     156head4=$(add_file sm1 foo4 foo5)
     157test_expect_success 'modified submodule(backward and forward)' '
     158        git diff-index -p --submodule=log HEAD >actual &&
     159        cat >expected <<-EOF &&
     160        Submodule sm1 $head2...$head4:
     161          > Add foo5 ($added foo5)
     162          > Add foo4 ($added foo4)
     163          < Add foo3 ($added foo3)
     164          < Add foo2 ($added foo2)
     165        EOF
     166        test_cmp expected actual
     167'
    122168
    123169commit_file sm1 &&
     
    129175mv sm1-bak sm1
    130176
    131 test_expect_success 'typechanged submodule(submodule->blob), --cached' "
     177test_expect_success 'typechanged submodule(submodule->blob), --cached' '
    132178        git diff --submodule=log --cached >actual &&
    133179        cat >expected <<-EOF &&
    134 Submodule sm1 41fbea9...0000000 (submodule deleted)
    135 diff --git a/sm1 b/sm1
    136 new file mode 100644
    137 index 0000000..9da5fb8
    138 --- /dev/null
    139 +++ b/sm1
    140 @@ -0,0 +1 @@
    141 +sm1
    142 EOF
    143         test_cmp expected actual
    144 "
    145 
    146 test_expect_success 'typechanged submodule(submodule->blob)' "
     180        Submodule sm1 $head4...0000000 (submodule deleted)
     181        diff --git a/sm1 b/sm1
     182        new file mode 100644
     183        index 0000000..$head5
     184        --- /dev/null
     185        +++ b/sm1
     186        @@ -0,0 +1 @@
     187        +sm1
     188        EOF
     189        test_cmp expected actual
     190'
     191
     192test_expect_success 'typechanged submodule(submodule->blob)' '
    147193        git diff --submodule=log >actual &&
    148194        cat >expected <<-EOF &&
    149 diff --git a/sm1 b/sm1
    150 deleted file mode 100644
    151 index 9da5fb8..0000000
    152 --- a/sm1
    153 +++ /dev/null
    154 @@ -1 +0,0 @@
    155 -sm1
    156 Submodule sm1 0000000...$head4 (new submodule)
    157 EOF
    158         test_cmp expected actual
    159 "
     195        diff --git a/sm1 b/sm1
     196        deleted file mode 100644
     197        index $head5..0000000
     198        --- a/sm1
     199        +++ /dev/null
     200        @@ -1 +0,0 @@
     201        -sm1
     202        Submodule sm1 0000000...$head4 (new submodule)
     203        EOF
     204        test_cmp expected actual
     205'
    160206
    161207rm -rf sm1 &&
    162208git checkout-index sm1
    163 test_expect_success 'typechanged submodule(submodule->blob)' "
    164         git diff-index -p --submodule=log HEAD >actual &&
    165         cat >expected <<-EOF &&
    166 Submodule sm1 $head4...0000000 (submodule deleted)
    167 diff --git a/sm1 b/sm1
    168 new file mode 100644
    169 index 0000000..$head5
    170 --- /dev/null
    171 +++ b/sm1
    172 @@ -0,0 +1 @@
    173 +sm1
    174 EOF
    175         test_cmp expected actual
    176 "
     209test_expect_success 'typechanged submodule(submodule->blob)' '
     210        git diff-index -p --submodule=log HEAD >actual &&
     211        cat >expected <<-EOF &&
     212        Submodule sm1 $head4...0000000 (submodule deleted)
     213        diff --git a/sm1 b/sm1
     214        new file mode 100644
     215        index 0000000..$head5
     216        --- /dev/null
     217        +++ b/sm1
     218        @@ -0,0 +1 @@
     219        +sm1
     220        EOF
     221        test_cmp expected actual
     222'
    177223
    178224rm -f sm1 &&
    179225test_create_repo sm1 &&
    180226head6=$(add_file sm1 foo6 foo7)
    181 fullhead6=$(cd sm1; git rev-list --max-count=1 $head6)
    182 test_expect_success 'nonexistent commit' "
    183         git diff-index -p --submodule=log HEAD >actual &&
    184         cat >expected <<-EOF &&
    185 Submodule sm1 $head4...$head6 (commits not present)
    186 EOF
    187         test_cmp expected actual
    188 "
     227fullhead6=$(cd sm1; git rev-parse --verify HEAD)
     228test_expect_success 'nonexistent commit' '
     229        git diff-index -p --submodule=log HEAD >actual &&
     230        cat >expected <<-EOF &&
     231        Submodule sm1 $head4...$head6 (commits not present)
     232        EOF
     233        test_cmp expected actual
     234'
    189235
    190236commit_file
    191 test_expect_success 'typechanged submodule(blob->submodule)' "
    192         git diff-index -p --submodule=log HEAD >actual &&
    193         cat >expected <<-EOF &&
    194 diff --git a/sm1 b/sm1
    195 deleted file mode 100644
    196 index $head5..0000000
    197 --- a/sm1
    198 +++ /dev/null
    199 @@ -1 +0,0 @@
    200 -sm1
    201 Submodule sm1 0000000...$head6 (new submodule)
    202 EOF
    203         test_cmp expected actual
    204 "
     237test_expect_success 'typechanged submodule(blob->submodule)' '
     238        git diff-index -p --submodule=log HEAD >actual &&
     239        cat >expected <<-EOF &&
     240        diff --git a/sm1 b/sm1
     241        deleted file mode 100644
     242        index $head5..0000000
     243        --- a/sm1
     244        +++ /dev/null
     245        @@ -1 +0,0 @@
     246        -sm1
     247        Submodule sm1 0000000...$head6 (new submodule)
     248        EOF
     249        test_cmp expected actual
     250'
    205251
    206252commit_file sm1 &&
    207 test_expect_success 'submodule is up to date' "
    208         git diff-index -p --submodule=log HEAD >actual &&
    209         cat >expected <<-EOF &&
    210 EOF
    211         test_cmp expected actual
    212 "
    213 
    214 test_expect_success 'submodule contains untracked content' "
     253test_expect_success 'submodule is up to date' '
     254        git diff-index -p --submodule=log HEAD >actual &&
     255        cat >expected <<-EOF &&
     256        EOF
     257        test_cmp expected actual
     258'
     259
     260test_expect_success 'submodule contains untracked content' '
    215261        echo new > sm1/new-file &&
    216262        git diff-index -p --submodule=log HEAD >actual &&
    217263        cat >expected <<-EOF &&
    218 Submodule sm1 contains untracked content
    219 EOF
    220         test_cmp expected actual
    221 "
    222 
    223 test_expect_success 'submodule contains untracked content (untracked ignored)' "
     264        Submodule sm1 contains untracked content
     265        EOF
     266        test_cmp expected actual
     267'
     268
     269test_expect_success 'submodule contains untracked content (untracked ignored)' '
    224270        git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
    225271        ! test -s actual
    226 "
    227 
    228 test_expect_success 'submodule contains untracked content (dirty ignored)' "
     272'
     273
     274test_expect_success 'submodule contains untracked content (dirty ignored)' '
    229275        git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
    230276        ! test -s actual
    231 "
    232 
    233 test_expect_success 'submodule contains untracked content (all ignored)' "
     277'
     278
     279test_expect_success 'submodule contains untracked content (all ignored)' '
    234280        git diff-index -p --ignore-submodules=all --submodule=log HEAD >actual &&
    235281        ! test -s actual
    236 "
    237 
    238 test_expect_success 'submodule contains untracked and modifed content' "
     282'
     283
     284test_expect_success 'submodule contains untracked and modifed content' '
    239285        echo new > sm1/foo6 &&
    240286        git diff-index -p --submodule=log HEAD >actual &&
    241287        cat >expected <<-EOF &&
    242 Submodule sm1 contains untracked content
    243 Submodule sm1 contains modified content
    244 EOF
    245         test_cmp expected actual
    246 "
    247 
    248 test_expect_success 'submodule contains untracked and modifed content (untracked ignored)' "
     288        Submodule sm1 contains untracked content
     289        Submodule sm1 contains modified content
     290        EOF
     291        test_cmp expected actual
     292'
     293
     294test_expect_success 'submodule contains untracked and modifed content (untracked ignored)' '
    249295        echo new > sm1/foo6 &&
    250296        git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
    251297        cat >expected <<-EOF &&
    252 Submodule sm1 contains modified content
    253 EOF
    254         test_cmp expected actual
    255 "
    256 
    257 test_expect_success 'submodule contains untracked and modifed content (dirty ignored)' "
     298        Submodule sm1 contains modified content
     299        EOF
     300        test_cmp expected actual
     301'
     302
     303test_expect_success 'submodule contains untracked and modifed content (dirty ignored)' '
    258304        echo new > sm1/foo6 &&
    259305        git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
    260306        ! test -s actual
    261 "
    262 
    263 test_expect_success 'submodule contains untracked and modifed content (all ignored)' "
     307'
     308
     309test_expect_success 'submodule contains untracked and modifed content (all ignored)' '
    264310        echo new > sm1/foo6 &&
    265311        git diff-index -p --ignore-submodules --submodule=log HEAD >actual &&
    266312        ! test -s actual
    267 "
    268 
    269 test_expect_success 'submodule contains modifed content' "
     313'
     314
     315test_expect_success 'submodule contains modifed content' '
    270316        rm -f sm1/new-file &&
    271317        git diff-index -p --submodule=log HEAD >actual &&
    272318        cat >expected <<-EOF &&
    273 Submodule sm1 contains modified content
    274 EOF
    275         test_cmp expected actual
    276 "
     319        Submodule sm1 contains modified content
     320        EOF
     321        test_cmp expected actual
     322'
    277323
    278324(cd sm1; git commit -mchange foo6 >/dev/null) &&
    279 head8=$(cd sm1; git rev-parse --verify HEAD | cut -c1-7) &&
    280 test_expect_success 'submodule is modified' "
    281         git diff-index -p --submodule=log HEAD >actual &&
    282         cat >expected <<-EOF &&
    283 Submodule sm1 $head6..$head8:
    284   > change
    285 EOF
    286         test_cmp expected actual
    287 "
    288 
    289 test_expect_success 'modified submodule contains untracked content' "
     325head8=$(cd sm1; git rev-parse --short --verify HEAD) &&
     326test_expect_success 'submodule is modified' '
     327        git diff-index -p --submodule=log HEAD >actual &&
     328        cat >expected <<-EOF &&
     329        Submodule sm1 $head6..$head8:
     330          > change
     331        EOF
     332        test_cmp expected actual
     333'
     334
     335test_expect_success 'modified submodule contains untracked content' '
    290336        echo new > sm1/new-file &&
    291337        git diff-index -p --submodule=log HEAD >actual &&
    292338        cat >expected <<-EOF &&
    293 Submodule sm1 contains untracked content
    294 Submodule sm1 $head6..$head8:
    295   > change
    296 EOF
    297         test_cmp expected actual
    298 "
    299 
    300 test_expect_success 'modified submodule contains untracked content (untracked ignored)' "
     339        Submodule sm1 contains untracked content
     340        Submodule sm1 $head6..$head8:
     341          > change
     342        EOF
     343        test_cmp expected actual
     344'
     345
     346test_expect_success 'modified submodule contains untracked content (untracked ignored)' '
    301347        git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
    302348        cat >expected <<-EOF &&
    303 Submodule sm1 $head6..$head8:
    304   > change
    305 EOF
    306         test_cmp expected actual
    307 "
    308 
    309 test_expect_success 'modified submodule contains untracked content (dirty ignored)' "
     349        Submodule sm1 $head6..$head8:
     350          > change
     351        EOF
     352        test_cmp expected actual
     353'
     354
     355test_expect_success 'modified submodule contains untracked content (dirty ignored)' '
    310356        git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
    311357        cat >expected <<-EOF &&
    312 Submodule sm1 $head6..$head8:
    313   > change
    314 EOF
    315         test_cmp expected actual
    316 "
    317 
    318 test_expect_success 'modified submodule contains untracked content (all ignored)' "
     358        Submodule sm1 $head6..$head8:
     359          > change
     360        EOF
     361        test_cmp expected actual
     362'
     363
     364test_expect_success 'modified submodule contains untracked content (all ignored)' '
    319365        git diff-index -p --ignore-submodules=all --submodule=log HEAD >actual &&
    320366        ! test -s actual
    321 "
    322 
    323 test_expect_success 'modified submodule contains untracked and modifed content' "
     367'
     368
     369test_expect_success 'modified submodule contains untracked and modifed content' '
    324370        echo modification >> sm1/foo6 &&
    325371        git diff-index -p --submodule=log HEAD >actual &&
    326372        cat >expected <<-EOF &&
    327 Submodule sm1 contains untracked content
    328 Submodule sm1 contains modified content
    329 Submodule sm1 $head6..$head8:
    330   > change
    331 EOF
    332         test_cmp expected actual
    333 "
    334 
    335 test_expect_success 'modified submodule contains untracked and modifed content (untracked ignored)' "
     373        Submodule sm1 contains untracked content
     374        Submodule sm1 contains modified content
     375        Submodule sm1 $head6..$head8:
     376          > change
     377        EOF
     378        test_cmp expected actual
     379'
     380
     381test_expect_success 'modified submodule contains untracked and modifed content (untracked ignored)' '
    336382        echo modification >> sm1/foo6 &&
    337383        git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
    338384        cat >expected <<-EOF &&
    339 Submodule sm1 contains modified content
    340 Submodule sm1 $head6..$head8:
    341   > change
    342 EOF
    343         test_cmp expected actual
    344 "
    345 
    346 test_expect_success 'modified submodule contains untracked and modifed content (dirty ignored)' "
     385        Submodule sm1 contains modified content
     386        Submodule sm1 $head6..$head8:
     387          > change
     388        EOF
     389        test_cmp expected actual
     390'
     391
     392test_expect_success 'modified submodule contains untracked and modifed content (dirty ignored)' '
    347393        echo modification >> sm1/foo6 &&
    348394        git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
    349395        cat >expected <<-EOF &&
    350 Submodule sm1 $head6..$head8:
    351   > change
    352 EOF
    353         test_cmp expected actual
    354 "
    355 
    356 test_expect_success 'modified submodule contains untracked and modifed content (all ignored)' "
     396        Submodule sm1 $head6..$head8:
     397          > change
     398        EOF
     399        test_cmp expected actual
     400'
     401
     402test_expect_success 'modified submodule contains untracked and modifed content (all ignored)' '
    357403        echo modification >> sm1/foo6 &&
    358404        git diff-index -p --ignore-submodules --submodule=log HEAD >actual &&
    359405        ! test -s actual
    360 "
    361 
    362 test_expect_success 'modified submodule contains modifed content' "
     406'
     407
     408test_expect_success 'modified submodule contains modifed content' '
    363409        rm -f sm1/new-file &&
    364410        git diff-index -p --submodule=log HEAD >actual &&
    365411        cat >expected <<-EOF &&
    366 Submodule sm1 contains modified content
    367 Submodule sm1 $head6..$head8:
    368   > change
    369 EOF
    370         test_cmp expected actual
    371 "
     412        Submodule sm1 contains modified content
     413        Submodule sm1 $head6..$head8:
     414          > change
     415        EOF
     416        test_cmp expected actual
     417'
    372418
    373419rm -rf sm1
    374 test_expect_success 'deleted submodule' "
    375         git diff-index -p --submodule=log HEAD >actual &&
    376         cat >expected <<-EOF &&
    377 Submodule sm1 $head6...0000000 (submodule deleted)
    378 EOF
    379         test_cmp expected actual
    380 "
     420test_expect_success 'deleted submodule' '
     421        git diff-index -p --submodule=log HEAD >actual &&
     422        cat >expected <<-EOF &&
     423        Submodule sm1 $head6...0000000 (submodule deleted)
     424        EOF
     425        test_cmp expected actual
     426'
    381427
    382428test_create_repo sm2 &&
     
    384430git add sm2
    385431
    386 test_expect_success 'multiple submodules' "
    387         git diff-index -p --submodule=log HEAD >actual &&
    388         cat >expected <<-EOF &&
    389 Submodule sm1 $head6...0000000 (submodule deleted)
    390 Submodule sm2 0000000...$head7 (new submodule)
    391 EOF
    392         test_cmp expected actual
    393 "
    394 
    395 test_expect_success 'path filter' "
     432test_expect_success 'multiple submodules' '
     433        git diff-index -p --submodule=log HEAD >actual &&
     434        cat >expected <<-EOF &&
     435        Submodule sm1 $head6...0000000 (submodule deleted)
     436        Submodule sm2 0000000...$head7 (new submodule)
     437        EOF
     438        test_cmp expected actual
     439'
     440
     441test_expect_success 'path filter' '
    396442        git diff-index -p --submodule=log HEAD sm2 >actual &&
    397443        cat >expected <<-EOF &&
    398 Submodule sm2 0000000...$head7 (new submodule)
    399 EOF
    400         test_cmp expected actual
    401 "
     444        Submodule sm2 0000000...$head7 (new submodule)
     445        EOF
     446        test_cmp expected actual
     447'
    402448
    403449commit_file sm2
    404 test_expect_success 'given commit' "
     450test_expect_success 'given commit' '
    405451        git diff-index -p --submodule=log HEAD^ >actual &&
    406452        cat >expected <<-EOF &&
    407 Submodule sm1 $head6...0000000 (submodule deleted)
    408 Submodule sm2 0000000...$head7 (new submodule)
    409 EOF
    410         test_cmp expected actual
    411 "
    412 
    413 test_expect_success 'given commit --submodule' "
     453        Submodule sm1 $head6...0000000 (submodule deleted)
     454        Submodule sm2 0000000...$head7 (new submodule)
     455        EOF
     456        test_cmp expected actual
     457'
     458
     459test_expect_success 'given commit --submodule' '
    414460        git diff-index -p --submodule HEAD^ >actual &&
    415461        cat >expected <<-EOF &&
    416 Submodule sm1 $head6...0000000 (submodule deleted)
    417 Submodule sm2 0000000...$head7 (new submodule)
    418 EOF
    419         test_cmp expected actual
    420 "
    421 
    422 fullhead7=$(cd sm2; git rev-list --max-count=1 $head7)
    423 
    424 test_expect_success 'given commit --submodule=short' "
     462        Submodule sm1 $head6...0000000 (submodule deleted)
     463        Submodule sm2 0000000...$head7 (new submodule)
     464        EOF
     465        test_cmp expected actual
     466'
     467
     468fullhead7=$(cd sm2; git rev-parse --verify HEAD)
     469
     470test_expect_success 'given commit --submodule=short' '
    425471        git diff-index -p --submodule=short HEAD^ >actual &&
    426472        cat >expected <<-EOF &&
    427 diff --git a/sm1 b/sm1
    428 deleted file mode 160000
    429 index $head6..0000000
    430 --- a/sm1
    431 +++ /dev/null
    432 @@ -1 +0,0 @@
    433 -Subproject commit $fullhead6
    434 diff --git a/sm2 b/sm2
    435 new file mode 160000
    436 index 0000000..$head7
    437 --- /dev/null
    438 +++ b/sm2
    439 @@ -0,0 +1 @@
    440 +Subproject commit $fullhead7
    441 EOF
    442         test_cmp expected actual
    443 "
     473        diff --git a/sm1 b/sm1
     474        deleted file mode 160000
     475        index $head6..0000000
     476        --- a/sm1
     477        +++ /dev/null
     478        @@ -1 +0,0 @@
     479        -Subproject commit $fullhead6
     480        diff --git a/sm2 b/sm2
     481        new file mode 160000
     482        index 0000000..$head7
     483        --- /dev/null
     484        +++ b/sm2
     485        @@ -0,0 +1 @@
     486        +Subproject commit $fullhead7
     487        EOF
     488        test_cmp expected actual
     489'
    444490
    445491test_expect_success 'setup .git file for sm2' '
     
    453499        git diff --submodule HEAD^ >actual &&
    454500        cat >expected <<-EOF &&
    455 Submodule sm1 $head6...0000000 (submodule deleted)
    456 Submodule sm2 0000000...$head7 (new submodule)
    457 EOF
     501        Submodule sm1 $head6...0000000 (submodule deleted)
     502        Submodule sm2 0000000...$head7 (new submodule)
     503        EOF
     504        test_cmp expected actual
     505'
     506
     507test_expect_success 'diff --submodule with objects referenced by alternates' '
     508        mkdir sub_alt &&
     509        (cd sub_alt &&
     510                git init &&
     511                echo a >a &&
     512                git add a &&
     513                git commit -m a
     514        ) &&
     515        mkdir super &&
     516        (cd super &&
     517                git clone -s ../sub_alt sub &&
     518                git init &&
     519                git add sub &&
     520                git commit -m "sub a"
     521        ) &&
     522        (cd sub_alt &&
     523                sha1_before=$(git rev-parse --short HEAD)
     524                echo b >b &&
     525                git add b &&
     526                git commit -m b
     527                sha1_after=$(git rev-parse --short HEAD)
     528                echo "Submodule sub $sha1_before..$sha1_after:
     529  > b" >../expected
     530        ) &&
     531        (cd super &&
     532                (cd sub &&
     533                        git fetch &&
     534                        git checkout origin/master
     535                ) &&
     536                git diff --submodule > ../actual
     537        )
    458538        test_cmp expected actual
    459539'
Note: See TracChangeset for help on using the changeset viewer.