forked from pool/quilt
Takashi Iwai
a5de1023e1
- Fix the series file consistency checker - Many fixes and improvements to the setup command - New option --fast for quilt setup (hackweek project) OBS-URL: https://build.opensuse.org/request/show/264454 OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/quilt?expand=0&rev=92
89 lines
2.6 KiB
Diff
89 lines
2.6 KiB
Diff
From: Jean Delvare <jdelvare@suse.de>
|
|
Subject: pop: Rearm consistency check if needed
|
|
Upstream: Committed (b42985c9b2a5f8329ad393842487c4142951818e)
|
|
|
|
If the series file is inconsistent, "quilt pop" will disable the
|
|
consistency check as it updates the timestamp of the database file.
|
|
It's OK if all patches are popped. If not then the series file may
|
|
still be inconsistent. In that case, we want to update the timestamp
|
|
of the series file, to rearm the consistency check.
|
|
---
|
|
quilt/pop.in | 9 +++++++++
|
|
test/altered-series.test | 23 +++++++++++++++++------
|
|
2 files changed, 26 insertions(+), 6 deletions(-)
|
|
|
|
--- a/quilt/pop.in
|
|
+++ b/quilt/pop.in
|
|
@@ -243,6 +243,13 @@ then
|
|
exit 2
|
|
fi
|
|
|
|
+# We will update the list of applied patches, which in turn will disable the
|
|
+# consistency check. Enable it again if needed.
|
|
+if [ -z "$opt_all" -a ! "$DB" -nt "$SERIES" ] && ! consistency_check
|
|
+then
|
|
+ rearm_check=1
|
|
+fi
|
|
+
|
|
for patch in $patches
|
|
do
|
|
[ -z "$opt_refresh" ] || quilt_command refresh $QUILT_REFRESH_ARGS
|
|
@@ -264,6 +271,8 @@ else
|
|
# corner cases such as files added to a patch but not modified.
|
|
$QUILT_DIR/scripts/backup-files -L -s -B "$QUILT_PC/$patch/" -
|
|
printf $"Now at patch %s\n" "$(print_patch "$patch")"
|
|
+
|
|
+ [ -z "$rearm_check" ] || touch "$SERIES"
|
|
fi
|
|
### Local Variables:
|
|
### mode: shell-script
|
|
--- a/test/altered-series.test
|
|
+++ b/test/altered-series.test
|
|
@@ -6,22 +6,24 @@ $ cat > patches/series
|
|
< 02.patch
|
|
< 03.patch
|
|
|
|
-$ quilt push -q
|
|
+$ quilt push -q 2
|
|
> Applying patch patches/01.patch
|
|
> Patch patches/01.patch does not exist; applied empty patch
|
|
-> Now at patch patches/01.patch
|
|
+> Applying patch patches/02.patch
|
|
+> Patch patches/02.patch does not exist; applied empty patch
|
|
+> Now at patch patches/02.patch
|
|
|
|
$ quilt series -v
|
|
-> = patches/01.patch
|
|
-> patches/02.patch
|
|
+> + patches/01.patch
|
|
+> = patches/02.patch
|
|
> patches/03.patch
|
|
|
|
# Touch the series file but preserve the order -> OK
|
|
$ touch patches/series
|
|
|
|
$ quilt series -v
|
|
-> = patches/01.patch
|
|
-> patches/02.patch
|
|
+> + patches/01.patch
|
|
+> = patches/02.patch
|
|
> patches/03.patch
|
|
|
|
# Change the order of the patch series -> complain
|
|
@@ -33,6 +35,15 @@ $ cat > patches/series
|
|
$ quilt series -v
|
|
> The series file no longer matches the applied patches. Please run 'quilt pop -a'.
|
|
|
|
+$ quilt pop
|
|
+> Patch patches/02.patch appears to be empty, removing
|
|
+>
|
|
+> Now at patch patches/01.patch
|
|
+
|
|
+# That wasn't enough, keep complaining
|
|
+$ quilt series -v
|
|
+> The series file no longer matches the applied patches. Please run 'quilt pop -a'.
|
|
+
|
|
$ quilt pop -a
|
|
> Patch patches/01.patch appears to be empty, removing
|
|
>
|