t / t9122-git-svn-author.shon commit t3030-merge-recursive: test known breakage with empty work tree (29d9af5)
   1#!/bin/sh
   2
   3test_description='git svn authorship'
   4. ./lib-git-svn.sh
   5
   6test_expect_success 'setup svn repository' '
   7        svn_cmd checkout "$svnrepo" work.svn &&
   8        (
   9                cd work.svn &&
  10                echo >file
  11                svn_cmd add file
  12                svn_cmd commit -m "first commit" file
  13        )
  14'
  15
  16test_expect_success 'interact with it via git svn' '
  17        mkdir work.git &&
  18        (
  19                cd work.git &&
  20                git svn init "$svnrepo"
  21                git svn fetch &&
  22
  23                echo modification >file &&
  24                test_tick &&
  25                git commit -a -m second &&
  26
  27                test_tick &&
  28                git svn dcommit &&
  29
  30                echo "further modification" >file &&
  31                test_tick &&
  32                git commit -a -m third &&
  33
  34                test_tick &&
  35                git svn --add-author-from dcommit &&
  36
  37                echo "yet further modification" >file &&
  38                test_tick &&
  39                git commit -a -m fourth &&
  40
  41                test_tick &&
  42                git svn --add-author-from --use-log-author dcommit &&
  43
  44                git log &&
  45
  46                git show -s HEAD^^ >../actual.2 &&
  47                git show -s HEAD^  >../actual.3 &&
  48                git show -s HEAD   >../actual.4
  49
  50        ) &&
  51
  52        # Make sure that --add-author-from without --use-log-author
  53        # did not affect the authorship information
  54        myself=$(grep "^Author: " actual.2) &&
  55        unaffected=$(grep "^Author: " actual.3) &&
  56        test "z$myself" = "z$unaffected" &&
  57
  58        # Make sure lack of --add-author-from did not add cruft
  59        ! grep "^    From: A U Thor " actual.2 &&
  60
  61        # Make sure --add-author-from added cruft
  62        grep "^    From: A U Thor " actual.3 &&
  63        grep "^    From: A U Thor " actual.4 &&
  64
  65        # Make sure --add-author-from with --use-log-author affected
  66        # the authorship information
  67        grep "^Author: A U Thor " actual.4 &&
  68
  69        # Make sure there are no commit messages with excess blank lines
  70        test $(grep "^ " actual.2 | wc -l) = 3 &&
  71        test $(grep "^ " actual.3 | wc -l) = 5 &&
  72        test $(grep "^ " actual.4 | wc -l) = 5 &&
  73
  74        # Make sure there are no svn commit messages with excess blank lines
  75        (
  76                cd work.svn &&
  77                svn_cmd up &&
  78                
  79                test $(svn_cmd log -r2:2 | wc -l) = 5 &&
  80                test $(svn_cmd log -r4:4 | wc -l) = 7
  81        )
  82'
  83
  84test_done