t / t2023-checkout-m.shon commit i18n: Do not force USE_GETTEXT_SCHEME=fallthrough on NO_GETTEXT (60f4079)
   1#!/bin/sh
   2
   3test_description='checkout -m -- <conflicted path>
   4
   5Ensures that checkout -m on a resolved file restores the conflicted file'
   6
   7. ./test-lib.sh
   8
   9test_expect_success setup '
  10        test_tick &&
  11        test_commit both.txt both.txt initial &&
  12        git branch topic &&
  13        test_commit modified_in_master both.txt in_master &&
  14        test_commit added_in_master each.txt in_master &&
  15        git checkout topic &&
  16        test_commit modified_in_topic both.txt in_topic &&
  17        test_commit added_in_topic each.txt in_topic
  18'
  19
  20test_must_fail git merge master
  21
  22clean_branchnames () {
  23        # Remove branch names after conflict lines
  24        sed 's/^\([<>]\{5,\}\) .*$/\1/'
  25}
  26
  27test_expect_success '-m restores 2-way conflicted+resolved file' '
  28        cp each.txt each.txt.conflicted &&
  29        echo resolved >each.txt &&
  30        git add each.txt &&
  31        git checkout -m -- each.txt &&
  32        clean_branchnames <each.txt >each.txt.cleaned &&
  33        clean_branchnames <each.txt.conflicted >each.txt.conflicted.cleaned &&
  34        test_cmp each.txt.conflicted.cleaned each.txt.cleaned
  35'
  36
  37test_expect_success '-m restores 3-way conflicted+resolved file' '
  38        cp both.txt both.txt.conflicted &&
  39        echo resolved >both.txt &&
  40        git add both.txt &&
  41        git checkout -m -- both.txt &&
  42        clean_branchnames <both.txt >both.txt.cleaned &&
  43        clean_branchnames <both.txt.conflicted >both.txt.conflicted.cleaned &&
  44        test_cmp both.txt.conflicted.cleaned both.txt.cleaned
  45'
  46
  47test_done