t / t9166-git-svn-fetch-merge-branch-of-branch2.shon commit ref_transaction_commit(): fix atomicity and avoid fd exhaustion (cf018ee)
   1#!/bin/sh
   2#
   3# Copyright (c) 2012 Steven Walter
   4#
   5
   6test_description='git svn merge detection'
   7. ./lib-git-svn.sh
   8
   9svn_ver="$(svn --version --quiet)"
  10case $svn_ver in
  110.* | 1.[0-4].*)
  12        skip_all="skipping git-svn test - SVN too old ($svn_ver)"
  13        test_done
  14        ;;
  15esac
  16
  17test_expect_success 'initialize source svn repo' '
  18        svn_cmd mkdir -m x "$svnrepo"/trunk &&
  19        svn_cmd mkdir -m x "$svnrepo"/branches &&
  20        svn_cmd co "$svnrepo"/trunk "$SVN_TREE" &&
  21        (
  22                cd "$SVN_TREE" &&
  23                touch foo &&
  24                svn_cmd add foo &&
  25                svn_cmd commit -m "initial commit" &&
  26                svn_cmd cp -m branch "$svnrepo"/trunk "$svnrepo"/branches/branch1 &&
  27                svn_cmd switch "$svnrepo"/branches/branch1 &&
  28                touch bar &&
  29                svn_cmd add bar &&
  30                svn_cmd commit -m branch1 &&
  31                svn_cmd cp -m branch "$svnrepo"/branches/branch1 "$svnrepo"/branches/branch2 &&
  32                svn_cmd switch "$svnrepo"/branches/branch2 &&
  33                touch baz &&
  34                svn_cmd add baz &&
  35                svn_cmd commit -m branch2 &&
  36                svn_cmd switch "$svnrepo"/trunk &&
  37                svn_cmd merge --reintegrate "$svnrepo"/branches/branch2 &&
  38                svn_cmd commit -m "merge branch2"
  39        ) &&
  40        rm -rf "$SVN_TREE"
  41'
  42
  43test_expect_success 'clone svn repo' '
  44        git svn init -s "$svnrepo" &&
  45        git svn fetch
  46'
  47
  48test_expect_success 'verify merge commit' 'x=$(git rev-parse HEAD^2) &&
  49        y=$(git rev-parse origin/branch2) &&
  50        test "x$x" = "x$y"
  51'
  52
  53test_done