summaryrefslogblamecommitdiffstats
path: root/test/symlink.test
blob: 3b05cb4795eb6ab0c907f5bf8bd9fd1e0c28ef41 (plain) (tree)
1
2
3
4
5
6
7
8
9




                                                 
                                           

                       
                                               


                                  
                                       









                                              
                                       





                                    
                                                 
                                                 
                                       




















                                     
 

                                                                         


                         
                                                        






                                                 
                                                
























                                                                         



                                           
                                       












                                                    
                         





                                                 
                                       





















                                     
	$ mkdir patches

# quilt should not remove symlinks to patch files
	$ echo foo > foo
	$ quilt new test.diff
	> Patch %{P}test.diff is now on top

	$ quilt add foo
	> File foo added to patch %{P}test.diff

	$ echo "foo changed" > foo
	$ quilt refresh
	> Refreshed patch %{P}test.diff

# Setup a symlink
	$ mv patches/test.diff .
	$ ln -s ../test.diff patches/test.diff
	$ readlink patches/test.diff
	> ../test.diff

# Test the refresh
	$ echo "foo changed 2" > foo
	$ quilt refresh --no-index -p ab
	> Refreshed patch %{P}test.diff

	$ readlink patches/test.diff
	> ../test.diff

# Test the refresh --backup
	$ echo "foo changed 3" > foo
	$ touch -r patches/test.diff test.timeref
	$ quilt refresh --backup --no-index -p ab
	> Refreshed patch %{P}test.diff

	$ readlink patches/test.diff
	> ../test.diff

	$ cat patches/test.diff
	> --- a/foo
	> +++ b/foo
	> @@ -1 +1 @@
	> -foo
	> +foo changed 3

	$ readlink patches/test.diff~
	$ echo %{?}
	> 1

	$ cat patches/test.diff~
	> --- a/foo
	> +++ b/foo
	> @@ -1 +1 @@
	> -foo
	> +foo changed 2

	$ [ patches/test.diff~ -nt test.timeref ] && echo "mtimes differ"

# Test the header update
	$ quilt header -a
	< A test patch
	> Appended text to header of patch %{P}test.diff

	$ readlink patches/test.diff
	> ../test.diff

# Test the header update with a backup
	$ touch -r patches/test.diff test.timeref
	$ quilt header -r --backup
	> Replaced header of patch %{P}test.diff

	$ readlink patches/test.diff
	> ../test.diff

	$ cat patches/test.diff
	> --- a/foo
	> +++ b/foo
	> @@ -1 +1 @@
	> -foo
	> +foo changed 3

	$ readlink patches/test.diff~
	$ echo %{?}
	> 1

	$ cat patches/test.diff~
	> A test patch
	> --- a/foo
	> +++ b/foo
	> @@ -1 +1 @@
	> -foo
	> +foo changed 3

	$ [ patches/test.diff~ -nt test.timeref ] && echo "mtimes differ"

# Test the refresh when target is read-only
	$ chmod -w test.diff
	$ echo "foo changed 4" > foo
	$ quilt refresh --no-index -p ab
	> Refreshed patch %{P}test.diff

	$ readlink patches/test.diff
	$ echo %{?}
	> 1

	$ cat patches/test.diff
	> --- a/foo
	> +++ b/foo
	> @@ -1 +1 @@
	> -foo
	> +foo changed 4

# Test the refresh --backup when target is read-only
	$ rm -f test.diff
	$ mv patches/test.diff .
	$ ln -s ../test.diff patches/test.diff
	$ chmod -w test.diff

	$ echo "foo changed 5" > foo
	$ quilt refresh --backup --no-index -p ab
	> Refreshed patch %{P}test.diff

	$ readlink patches/test.diff
	$ echo %{?}
	> 1

	$ cat patches/test.diff
	> --- a/foo
	> +++ b/foo
	> @@ -1 +1 @@
	> -foo
	> +foo changed 5

	$ readlink patches/test.diff~
	$ echo %{?}
	> 1

	$ cat patches/test.diff~
	> --- a/foo
	> +++ b/foo
	> @@ -1 +1 @@
	> -foo
	> +foo changed 4