diff options
author | Andreas Gruenbacher <agruen@suse.de> | 2005-06-09 12:48:10 +0000 |
---|---|---|
committer | Andreas Gruenbacher <agruen@suse.de> | 2005-06-09 12:48:10 +0000 |
commit | e3da94890892555f248e85776e513bbb8c98169c (patch) | |
tree | 9e9b693dd41e4514f2207ae68ec548f6eb043802 | |
parent | cea07eed0d536c242fc59dc9da1dd3036299b710 (diff) | |
download | quilt-e3da94890892555f248e85776e513bbb8c98169c.tar.gz |
- Additional fixes to the rename command.
-rw-r--r-- | quilt.changes | 5 | ||||
-rw-r--r-- | quilt/rename.in | 18 | ||||
-rw-r--r-- | test/rename.test | 30 |
3 files changed, 31 insertions, 22 deletions
diff --git a/quilt.changes b/quilt.changes index 7bf7641..0a3a1f2 100644 --- a/quilt.changes +++ b/quilt.changes @@ -1,4 +1,9 @@ ------------------------------------------------------------------- +Thu Jun 9 14:47:13 CEST 2005 - agruen@suse.de + +- Additional fixes to the rename command. + +------------------------------------------------------------------- Wed Jun 8 22:28:12 CEST 2005 - agruen@suse.de - Add rename command from Jean Delvare <khali@linux-fr.org>. diff --git a/quilt/rename.in b/quilt/rename.in index 4c5a4aa..4153eef 100644 --- a/quilt/rename.in +++ b/quilt/rename.in @@ -34,6 +34,17 @@ Rename the topmost or named patch. fi } +move_file() +{ + local old=$1 new=$2 newdir=$(dirname "$2") + + [ -d "$newdir" ] || mkdir -p "$newdir" || return 1 + mv "$old" "$new" || return 1 + rmdir -p "$(dirname "$old")" 2> /dev/null + + return 0 +} + options=`getopt -o p:h -- "$@"` if [ $? -ne 0 ] @@ -89,11 +100,12 @@ fi if ( is_applied $patch && \ ( ! rename_in_db "$patch" "$new_patch" || \ - ! mv "$QUILT_PC/$patch" "$QUILT_PC/$new_patch" ) ) || \ + ! move_file "$QUILT_PC/$patch" \ + "$QUILT_PC/$new_patch" ) ) || \ ! rename_in_series "$patch" "$new_patch" || \ ( [ -e "$(patch_file_name $patch)" ] && \ - ! mv "$(patch_file_name $patch)" \ - "$(patch_file_name $new_patch)" ) + ! move_file "$(patch_file_name $patch)" \ + "$(patch_file_name $new_patch)" ) then printf $"Renaming of patch %s to %s failed\n" \ "$(print_patch $patch)" \ diff --git a/test/rename.test b/test/rename.test index c8cf146..9ed794b 100644 --- a/test/rename.test +++ b/test/rename.test @@ -19,26 +19,12 @@ $ quilt series -v > = %{P}original-name.diff - $ ls -1 .pc - > applied-patches - > original-name.diff - - $ cat .pc/applied-patches - > original-name.diff - $ quilt rename _tmp_name.diff > Patch %{P}original-name.diff renamed to %{P}_tmp_name.diff $ quilt series -v > = %{P}_tmp_name.diff - $ ls -1 .pc - > _tmp_name.diff - > applied-patches - - $ cat .pc/applied-patches - > _tmp_name.diff - $ quilt pop > Removing patch %{P}_tmp_name.diff > Restoring announce.txt @@ -48,8 +34,6 @@ $ quilt series -v > %{P}_tmp_name.diff - $ ls -1 .pc - $ quilt rename -p random_name.diff final.name.diff > Patch random_name.diff is not in series @@ -59,11 +43,19 @@ $ quilt rename -p _tmp_name.diff _tmp_name.diff > Patch %{P}_tmp_name.diff exists already, please choose a different name - $ quilt rename -p _tmp_name.diff final.name.diff - > Patch %{P}_tmp_name.diff renamed to %{P}final.name.diff + $ quilt rename -p _tmp_name.diff newsubdir/final.name.diff + > Patch %{P}_tmp_name.diff renamed to %{P}newsubdir/final.name.diff $ quilt series -v - > %{P}final.name.diff + > %{P}newsubdir/final.name.diff + + $ quilt push -q + > Applying patch %{P}newsubdir/final.name.diff + > Now at patch %{P}newsubdir/final.name.diff + + $ quilt pop -q + > Removing patch %{P}newsubdir/final.name.diff + > No patches applied $ cd .. $ rm -rf d |