Move identification of parent branch's remote def up into stack class.
[stgit] / t / t0001-subdir-branches.sh
1 #!/bin/sh
2 #
3 # Copyright (c) 2006 Karl Hasselström
4 #
5
6 test_description='Branch names containing slashes
7
8 Test a number of operations on a repository that has branch names
9 containing slashes (that is, branches living in a subdirectory of
10 .git/refs/heads).'
11
12 . ./test-lib.sh
13
14 test_expect_success 'Create a patch' \
15 'stg init &&
16 echo "foo" > foo.txt &&
17 git add foo.txt &&
18 stg new foo -m "Add foo.txt" &&
19 stg refresh'
20
21 test_expect_success 'Old and new id with non-slashy branch' \
22 'stg id foo &&
23 stg id foo// &&
24 stg id foo/ &&
25 stg id foo//top &&
26 stg id foo/top &&
27 stg id foo@master &&
28 stg id foo@master//top &&
29 stg id foo@master/top'
30
31 test_expect_success 'Clone branch to slashier name' \
32 'stg branch --clone x/y/z'
33
34 test_expect_success 'Try new form of id with slashy branch' \
35 'stg id foo &&
36 stg id foo// &&
37 stg id foo//top &&
38 stg id foo@x/y/z &&
39 stg id foo@x/y/z//top'
40
41 test_expect_failure 'Try old id with slashy branch' \
42 'stg id foo/ ||
43 stg id foo/top ||
44 stg id foo@x/y/z/top'
45
46 test_expect_success 'Create patch in slashy branch' \
47 'echo "bar" >> foo.txt &&
48 stg new bar -m "Add another line" &&
49 stg refresh'
50
51 test_expect_success 'Rename branches' \
52 'stg branch --rename master goo/gaa &&
53 test ! -e .git/refs/heads/master &&
54 stg branch --rename goo/gaa x1/x2/x3/x4 &&
55 test ! -e .git/refs/heads/goo &&
56 stg branch --rename x1/x2/x3/x4 servant &&
57 test ! -e .git/refs/heads/x1'
58
59 test_done