chiark / gitweb /
dgit: Regularise patch filenames, and defend against funny commit subjects
[dgit.git] / tests / tests / quilt
index 37cb8d188e10556d173e818a1bd96bfe15e823a2..f26f74458a27dc9ce5c592b9aac94897df6d4284 100755 (executable)
@@ -40,9 +40,9 @@ git merge branch
 iteration
 
 diff <<END - debian/patches/series
-change-something-in-the-upstream-yml
-spongiform-upstream-new-file-incl-change
-zorkmid-options-=-42
+ups-topic/ups-yml
+spongiform-upstream-new-file-incl-change.patch
+zorkmid-options-=-42.patch
 END
 
 for f in `cat debian/patches/series`; do
@@ -52,4 +52,45 @@ done
 t-822-field ../${p}_${v}_*.changes Changes |
  grep -Fx 'ruby-rails-3.2 (3.2.6-2~dummy1) unstable; urgency=low'
 
-echo ok.
+t-git-next-date
+
+# Now we are going to check that our dgit-generated patches round
+# trip to similar git commits when imported by gbp pq:
+
+git clean -xdf
+
+# We need to make a patches-unapplied version
+unpa=$(git log --pretty=format:'%H' --grep '^\[dgit import unpatched')
+git checkout -b for-gbp
+git reset "$unpa" .
+git reset HEAD debian
+git commit -m UNAPPY
+git reset --hard
+git clean -xdf
+
+export GIT_AUTHOR_NAME='Someone Else'
+export GIT_AUTHOR_EMAIL='else@example.com'
+export GIT_COMMITTER_NAME='Someone Else'
+export GIT_COMMITTER_EMAIL='else@example.com'
+
+gbp pq import
+
+for compare in $(git log --pretty='format:%H' \
+       --grep 'Change something in the upstream yml')
+do
+       git cat-file commit $compare >../this.cmp
+       # normalise
+       perl -i~$compare~ -0777 -pe '
+               s/\n+$//; $_ .= "\n";
+               s/^(?:committer|parent|tree) .*\n//gm;
+               s/\n+(\(cherry picked from .*\)\n)\n*/\n\n/m
+                       and s/$/$1/;
+               s/\n+$//; $_ .= "\n";
+       ' ../this.cmp
+       if test -f ../last.cmp; then
+               diff -u ../last.cmp ../this.cmp
+       fi
+       mv ../this.cmp ../last.cmp
+done
+
+t-ok