t / t6033-merge-crlf.shon commit Merge git://git.kernel.org/pub/scm/gitk/gitk (47344ee)
   1#!/bin/sh
   2
   3append_cr () {
   4        sed -e 's/$/Q/' | tr Q '\015'
   5}
   6
   7remove_cr () {
   8        tr '\015' Q | sed -e 's/Q$//'
   9}
  10
  11test_description='merge conflict in crlf repo
  12
  13                b---M
  14               /   /
  15        initial---a
  16
  17'
  18
  19. ./test-lib.sh
  20
  21test_expect_success setup '
  22        git config core.autocrlf true &&
  23        echo foo | append_cr >file &&
  24        git add file &&
  25        git commit -m "Initial" &&
  26        git tag initial &&
  27        git branch side &&
  28        echo line from a | append_cr >file &&
  29        git commit -m "add line from a" file &&
  30        git tag a &&
  31        git checkout side &&
  32        echo line from b | append_cr >file &&
  33        git commit -m "add line from b" file &&
  34        git tag b &&
  35        git checkout master
  36'
  37
  38test_expect_success 'Check "ours" is CRLF' '
  39        git reset --hard initial &&
  40        git merge side -s ours &&
  41        cat file | remove_cr | append_cr >file.temp &&
  42        test_cmp file file.temp
  43'
  44
  45test_expect_success 'Check that conflict file is CRLF' '
  46        git reset --hard a &&
  47        test_must_fail git merge side &&
  48        cat file | remove_cr | append_cr >file.temp &&
  49        test_cmp file file.temp
  50'
  51
  52test_done