t / t7001-mv.shon commit Merge branch 'jc/diff-stat' (dd0c367)
   1#!/bin/sh
   2
   3test_description='git-mv in subdirs'
   4. ./test-lib.sh
   5
   6test_expect_success \
   7    'prepare reference tree' \
   8    'mkdir path0 path1 &&
   9     cp ../../COPYING path0/COPYING &&
  10     git-add path0/COPYING &&
  11     git-commit -m add -a'
  12
  13test_expect_success \
  14    'moving the file out of subdirectory' \
  15    'cd path0 && git-mv COPYING ../path1/COPYING'
  16
  17# in path0 currently
  18test_expect_success \
  19    'commiting the change' \
  20    'cd .. && git-commit -m move-out -a'
  21
  22test_expect_success \
  23    'checking the commit' \
  24    'git-diff-tree -r -M --name-status  HEAD^ HEAD | \
  25    grep -E "^R100.+path0/COPYING.+path1/COPYING"'
  26
  27test_expect_success \
  28    'moving the file back into subdirectory' \
  29    'cd path0 && git-mv ../path1/COPYING COPYING'
  30
  31# in path0 currently
  32test_expect_success \
  33    'commiting the change' \
  34    'cd .. && git-commit -m move-in -a'
  35
  36test_expect_success \
  37    'checking the commit' \
  38    'git-diff-tree -r -M --name-status  HEAD^ HEAD | \
  39    grep -E "^R100.+path1/COPYING.+path0/COPYING"'
  40
  41test_expect_success \
  42    'adding another file' \
  43    'cp ../../README path0/README &&
  44     git-add path0/README &&
  45     git-commit -m add2 -a'
  46
  47test_expect_success \
  48    'moving whole subdirectory' \
  49    'git-mv path0 path2'
  50
  51test_expect_success \
  52    'commiting the change' \
  53    'git-commit -m dir-move -a'
  54
  55test_expect_success \
  56    'checking the commit' \
  57    'git-diff-tree -r -M --name-status  HEAD^ HEAD | \
  58     grep -E "^R100.+path0/COPYING.+path2/COPYING" &&
  59     git-diff-tree -r -M --name-status  HEAD^ HEAD | \
  60     grep -E "^R100.+path0/README.+path2/README"'
  61
  62test_expect_success \
  63    'succeed when source is a prefix of destination' \
  64    'git-mv path2/COPYING path2/COPYING-renamed'
  65
  66test_expect_success \
  67    'moving whole subdirectory into subdirectory' \
  68    'git-mv path2 path1'
  69
  70test_expect_success \
  71    'commiting the change' \
  72    'git-commit -m dir-move -a'
  73
  74test_expect_success \
  75    'checking the commit' \
  76    'git-diff-tree -r -M --name-status  HEAD^ HEAD | \
  77     grep -E "^R100.+path2/COPYING.+path1/path2/COPYING" &&
  78     git-diff-tree -r -M --name-status  HEAD^ HEAD | \
  79     grep -E "^R100.+path2/README.+path1/path2/README"'
  80
  81test_expect_failure \
  82    'do not move directory over existing directory' \
  83    'mkdir path0 && mkdir path0/path2 && git-mv path2 path0'
  84
  85test_expect_success \
  86    'move into "."' \
  87    'git-mv path1/path2/ .'
  88
  89test_done