summaryrefslogtreecommitdiffstats
path: root/test/edit.test
blob: 98fd3931f15452d8ca3d95b7372607f475f0a5ff (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
$ mkdir patches subdir

# Test the behavior if the editor modifies existing files
$ cat > editor
< #! /bin/sh
< echo Editing $1
< sed -e 's:foo:bar:' $1 > $1.new
< mv $1.new $1
$ chmod +x editor
$ export EDITOR=%{PWD}/editor

$ quilt new patch
> Patch %{P}patch is now on top

$ echo foobar > foobar
$ quilt edit foobar
> File foobar added to patch %{P}patch
> Editing foobar

$ cat foobar
> barbar

$ cd subdir
$ echo foo > foo
$ quilt edit foo
> File subdir/foo added to patch %{_P}patch
> Editing subdir/foo
$ cd ..

$ cat subdir/foo
> bar

$ quilt files
> foobar
> subdir/foo

$ quilt refresh
> Refreshed patch %{P}patch

# Test the behavior if the editor deletes a file completely
$ echo foobaz > foobaz
$ cat > editor
< #! /bin/sh
< echo Deleting $1
< rm -f $1

$ quilt edit foobaz
> File foobaz added to patch %{P}patch
> Deleting foobaz

$ [ ! -e foobaz ] || echo "File foobaz shouldn't exist"

# Test the behavior if the editor is called on a new file but
# does not actually create it
$ cat > editor
< #! /bin/sh
< echo Doing nothing to $1

$ quilt edit nofoo
> File nofoo added to patch %{P}patch
> Doing nothing to nofoo
> File nofoo removed from patch %{P}patch

# Test the behavior if the patch is deleting a file and the
# user calls "quilt edit" on that file but makes no change to it
$ rm -f foobar
$ quilt refresh
> Refreshed patch %{P}patch
$ quilt diff -p ab --no-index foobar
> --- a/foobar
> +++ /dev/null
> @@ -1 +0,0 @@
> -foobar

$ quilt edit foobar
> File foobar is already in patch %{P}patch
> Doing nothing to foobar

$ [ ! -e foobar ] || echo "File foobar shouldn't exist"

# Test the behavior if the editor creates a brand new file
$ cat > editor
< #! /bin/sh
< echo Creating $1
< echo "new line" > $1

$ quilt edit foo2
> File foo2 added to patch %{P}patch
> Creating foo2
$ cat foo2
> new line

$ quilt files -v
> + foo2
> - foobar
> - foobaz
>   subdir/foo