t / t9133-git-svn-nested-git-repo.shon commit Sync with maint (65da088)
   1#!/bin/sh
   2#
   3# Copyright (c) 2009 Eric Wong
   4#
   5
   6test_description='git svn property tests'
   7. ./lib-git-svn.sh
   8
   9test_expect_success 'setup repo with a git repo inside it' '
  10        svn_cmd co "$svnrepo" s &&
  11        (
  12                cd s &&
  13                git init &&
  14                test -f .git/HEAD &&
  15                > .git/a &&
  16                echo a > a &&
  17                svn_cmd add .git a &&
  18                svn_cmd commit -m "create a nested git repo" &&
  19                svn_cmd up &&
  20                echo hi >> .git/a &&
  21                svn_cmd commit -m "modify .git/a" &&
  22                svn_cmd up
  23        )
  24'
  25
  26test_expect_success 'clone an SVN repo containing a git repo' '
  27        git svn clone "$svnrepo" g &&
  28        echo a > expect &&
  29        test_cmp expect g/a
  30'
  31
  32test_expect_success 'SVN-side change outside of .git' '
  33        (
  34                cd s &&
  35                echo b >> a &&
  36                svn_cmd commit -m "SVN-side change outside of .git" &&
  37                svn_cmd up &&
  38                svn_cmd log -v | fgrep "SVN-side change outside of .git"
  39        )
  40'
  41
  42test_expect_success 'update git svn-cloned repo' '
  43        (
  44                cd g &&
  45                git svn rebase &&
  46                echo a > expect &&
  47                echo b >> expect &&
  48                test_cmp a expect &&
  49                rm expect
  50        )
  51'
  52
  53test_expect_success 'SVN-side change inside of .git' '
  54        (
  55                cd s &&
  56                git add a &&
  57                git commit -m "add a inside an SVN repo" &&
  58                git log &&
  59                svn_cmd add --force .git &&
  60                svn_cmd commit -m "SVN-side change inside of .git" &&
  61                svn_cmd up &&
  62                svn_cmd log -v | fgrep "SVN-side change inside of .git"
  63        )
  64'
  65
  66test_expect_success 'update git svn-cloned repo' '
  67        (
  68                cd g &&
  69                git svn rebase &&
  70                echo a > expect &&
  71                echo b >> expect &&
  72                test_cmp a expect &&
  73                rm expect
  74        )
  75'
  76
  77test_expect_success 'SVN-side change in and out of .git' '
  78        (
  79                cd s &&
  80                echo c >> a &&
  81                git add a &&
  82                git commit -m "add a inside an SVN repo" &&
  83                svn_cmd commit -m "SVN-side change in and out of .git" &&
  84                svn_cmd up &&
  85                svn_cmd log -v | fgrep "SVN-side change in and out of .git"
  86        )
  87'
  88
  89test_expect_success 'update git svn-cloned repo again' '
  90        (
  91                cd g &&
  92                git svn rebase &&
  93                echo a > expect &&
  94                echo b >> expect &&
  95                echo c >> expect &&
  96                test_cmp a expect &&
  97                rm expect
  98        )
  99'
 100
 101test_done