$ 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