1#!/bin/sh
   2#
   3# Copyright (c) 2006, Junio C Hamano
   4#
   5test_description='fmt-merge-msg test'
   7. ./test-lib.sh
   9datestamp=1151939923
  11setdate () {
  12        GIT_COMMITTER_DATE="$datestamp +0200"
  13        GIT_AUTHOR_DATE="$datestamp +0200"
  14        datestamp=`expr "$datestamp" + 1`
  15        export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
  16}
  17test_expect_success setup '
  19        echo one >one &&
  20        git add one &&
  21        setdate &&
  22        git commit -m "Initial" &&
  23        echo uno >one &&
  25        echo dos >two &&
  26        git add two &&
  27        setdate &&
  28        git commit -a -m "Second" &&
  29        git checkout -b left &&
  31        echo $datestamp >one &&
  33        setdate &&
  34        git commit -a -m "Common #1" &&
  35        echo $datestamp >one &&
  37        setdate &&
  38        git commit -a -m "Common #2" &&
  39        git branch right &&
  41        echo $datestamp >two &&
  43        setdate &&
  44        git commit -a -m "Left #3" &&
  45        echo $datestamp >two &&
  47        setdate &&
  48        git commit -a -m "Left #4" &&
  49        echo $datestamp >two &&
  51        setdate &&
  52        git commit -a -m "Left #5" &&
  53        git checkout right &&
  55        echo $datestamp >three &&
  57        git add three &&
  58        setdate &&
  59        git commit -a -m "Right #3" &&
  60        echo $datestamp >three &&
  62        setdate &&
  63        git commit -a -m "Right #4" &&
  64        echo $datestamp >three &&
  66        setdate &&
  67        git commit -a -m "Right #5" &&
  68        git show-branch
  70'
  71cat >expected <<\EOF
  73Merge branch 'left'
  74EOF
  75test_expect_success 'merge-msg test #1' '
  77        git checkout master &&
  79        git fetch . left &&
  80        git fmt-merge-msg <.git/FETCH_HEAD >actual &&
  82        test_cmp expected actual
  83'
  84cat >expected <<EOF
  86Merge branch 'left' of $TEST_DIRECTORY/$test
  87EOF
  88test_expect_success 'merge-msg test #2' '
  90        git checkout master &&
  92        git fetch "$TEST_DIRECTORY/$test" left &&
  93        git fmt-merge-msg <.git/FETCH_HEAD >actual &&
  95        test_cmp expected actual
  96'
  97cat >expected <<\EOF
  99Merge branch 'left'
 100* left:
 102  Left #5
 103  Left #4
 104  Left #3
 105  Common #2
 106  Common #1
 107EOF
 108test_expect_success 'merge-msg test #3-1' '
 110        git config --unset-all merge.log
 112        git config --unset-all merge.summary
 113        git config merge.log true &&
 114        git checkout master &&
 116        setdate &&
 117        git fetch . left &&
 118        git fmt-merge-msg <.git/FETCH_HEAD >actual &&
 120        test_cmp expected actual
 121'
 122test_expect_success 'merge-msg test #3-2' '
 124        git config --unset-all merge.log
 126        git config --unset-all merge.summary
 127        git config merge.summary true &&
 128        git checkout master &&
 130        setdate &&
 131        git fetch . left &&
 132        git fmt-merge-msg <.git/FETCH_HEAD >actual &&
 134        test_cmp expected actual
 135'
 136cat >expected <<\EOF
 138Merge branches 'left' and 'right'
 139* left:
 141  Left #5
 142  Left #4
 143  Left #3
 144  Common #2
 145  Common #1
 146* right:
 148  Right #5
 149  Right #4
 150  Right #3
 151  Common #2
 152  Common #1
 153EOF
 154test_expect_success 'merge-msg test #4-1' '
 156        git config --unset-all merge.log
 158        git config --unset-all merge.summary
 159        git config merge.log true &&
 160        git checkout master &&
 162        setdate &&
 163        git fetch . left right &&
 164        git fmt-merge-msg <.git/FETCH_HEAD >actual &&
 166        test_cmp expected actual
 167'
 168test_expect_success 'merge-msg test #4-2' '
 170        git config --unset-all merge.log
 172        git config --unset-all merge.summary
 173        git config merge.summary true &&
 174        git checkout master &&
 176        setdate &&
 177        git fetch . left right &&
 178        git fmt-merge-msg <.git/FETCH_HEAD >actual &&
 180        test_cmp expected actual
 181'
 182test_expect_success 'merge-msg test #5-1' '
 184        git config --unset-all merge.log
 186        git config --unset-all merge.summary
 187        git config merge.log yes &&
 188        git checkout master &&
 190        setdate &&
 191        git fetch . left right &&
 192        git fmt-merge-msg <.git/FETCH_HEAD >actual &&
 194        test_cmp expected actual
 195'
 196test_expect_success 'merge-msg test #5-2' '
 198        git config --unset-all merge.log
 200        git config --unset-all merge.summary
 201        git config merge.summary yes &&
 202        git checkout master &&
 204        setdate &&
 205        git fetch . left right &&
 206        git fmt-merge-msg <.git/FETCH_HEAD >actual &&
 208        test_cmp expected actual
 209'
 210test_done