]> git.ipfire.org Git - thirdparty/git.git/blame - t/t9148-git-svn-propset.sh
Sync with 2.31.4
[thirdparty/git.git] / t / t9148-git-svn-propset.sh
CommitLineData
83c9433e
AP
1#!/bin/sh
2#
3# Copyright (c) 2014 Alfred Perlstein
4#
5
6test_description='git svn propset tests'
7
8. ./lib-git-svn.sh
9
4f4d2017
ÆAB
10test_expect_success 'setup propset via import' '
11 test_when_finished "rm -rf import" &&
12
13 foo_subdir2="subdir/subdir2/foo_subdir2" &&
14 mkdir -p import/subdir/subdir2 &&
15 (
16 cd import &&
17 # for "add props top level"
18 >foo &&
19 # for "add props relative"
20 >subdir/foo_subdir &&
21 # for "add props subdir"
22 >"$foo_subdir2" &&
23 svn_cmd import -m "import for git svn" . "$svnrepo"
24 )
25'
83c9433e
AP
26
27test_expect_success 'initialize git svn' '
28 git svn init "$svnrepo"
29 '
30
31test_expect_success 'fetch revisions from svn' '
32 git svn fetch
33 '
34
35set_props () {
36 subdir="$1"
37 file="$2"
38 shift;shift;
39 (cd "$subdir" &&
40 while [ $# -gt 0 ] ; do
41 git svn propset "$1" "$2" "$file" || exit 1
42 shift;shift;
43 done &&
44 echo hello >> "$file" &&
45 git commit -m "testing propset" "$file")
46}
47
48confirm_props () {
49 subdir="$1"
50 file="$2"
51 shift;shift;
52 (set -e ; cd "svn_project/$subdir" &&
53 while [ $# -gt 0 ] ; do
54 test "$(svn_cmd propget "$1" "$file")" = "$2" || exit 1
55 shift;shift;
56 done)
57}
58
59
60#The current implementation has a restriction:
61#svn propset will be taken as a delta for svn dcommit only
62#if the file content is also modified
63test_expect_success 'add props top level' '
64 set_props "." "foo" "svn:keywords" "FreeBSD=%H" &&
65 git svn dcommit &&
66 svn_cmd co "$svnrepo" svn_project &&
67 confirm_props "." "foo" "svn:keywords" "FreeBSD=%H" &&
68 rm -rf svn_project
69 '
70
71test_expect_success 'add multiple props' '
72 set_props "." "foo" \
73 "svn:keywords" "FreeBSD=%H" fbsd:nokeywords yes &&
74 git svn dcommit &&
75 svn_cmd co "$svnrepo" svn_project &&
76 confirm_props "." "foo" \
77 "svn:keywords" "FreeBSD=%H" fbsd:nokeywords yes &&
78 rm -rf svn_project
79 '
80
81test_expect_success 'add props subdir' '
82 set_props "." "$foo_subdir2" svn:keywords "FreeBSD=%H" &&
83 git svn dcommit &&
84 svn_cmd co "$svnrepo" svn_project &&
85 confirm_props "." "$foo_subdir2" "svn:keywords" "FreeBSD=%H" &&
86 rm -rf svn_project
87 '
88
89test_expect_success 'add props relative' '
90 set_props "subdir/subdir2" "../foo_subdir" \
91 svn:keywords "FreeBSD=%H" &&
92 git svn dcommit &&
93 svn_cmd co "$svnrepo" svn_project &&
94 confirm_props "subdir/subdir2" "../foo_subdir" \
95 svn:keywords "FreeBSD=%H" &&
96 rm -rf svn_project
97 '
98test_done