git/t/t9158-git-svn-mergeinfo.sh
Bryan Jacobs 98c4ab32f8 git-svn: Teach dcommit --mergeinfo to handle multiple lines
"svn dcommit --mergeinfo" replaces the svn:mergeinfo property in an
upstream SVN repository with the given text. The svn:mergeinfo
property may contain commits originating on multiple branches,
separated by newlines.

Cause space characters in the mergeinfo to be replaced by newlines,
allowing a user to create history representing multiple branches being
merged into one.

Update the corresponding documentation and add a test for the new
functionality.

Signed-off-by: Bryan Jacobs <bjacobs@woti.com>
Acked-by: Sam Vilain <sam@vilain.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
2011-09-01 19:55:09 +00:00

55 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (c) 2010 Steven Walter
#
test_description='git svn mergeinfo propagation'
. ./lib-git-svn.sh
say 'define NO_SVN_TESTS to skip git svn tests'
test_expect_success 'initialize source svn repo' '
svn_cmd mkdir -m x "$svnrepo"/trunk &&
svn_cmd co "$svnrepo"/trunk "$SVN_TREE" &&
(
cd "$SVN_TREE" &&
touch foo &&
svn_cmd add foo &&
svn_cmd commit -m "initial commit"
) &&
rm -rf "$SVN_TREE"
'
test_expect_success 'clone svn repo' '
git svn init "$svnrepo"/trunk &&
git svn fetch
'
test_expect_success 'change svn:mergeinfo' '
touch bar &&
git add bar &&
git commit -m "bar" &&
git svn dcommit --mergeinfo="/branches/foo:1-10"
'
test_expect_success 'verify svn:mergeinfo' '
mergeinfo=$(svn_cmd propget svn:mergeinfo "$svnrepo"/trunk)
test "$mergeinfo" = "/branches/foo:1-10"
'
test_expect_success 'change svn:mergeinfo multiline' '
touch baz &&
git add baz &&
git commit -m "baz" &&
git svn dcommit --mergeinfo="/branches/bar:1-10 /branches/other:3-5,8,10-11"
'
test_expect_success 'verify svn:mergeinfo multiline' '
mergeinfo=$(svn_cmd propget svn:mergeinfo "$svnrepo"/trunk)
test "$mergeinfo" = "/branches/bar:1-10
/branches/other:3-5,8,10-11"
'
test_done