summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Fleischer <archlinux@cryptocrack.de>2012-06-10 11:35:39 +0200
committerPierre Schmitz <pierre@archlinux.de>2012-06-10 12:47:40 +0200
commitfda394f1a054e58f146e942b5971944e562583a0 (patch)
treeb28175467049c0e52dfd085a1196677f682f31ef
parentaddea828fef4f96d19752ff409445bff03e13610 (diff)
downloaddevtools-fda394f1a054e58f146e942b5971944e562583a0.tar.xz
Gracefully handle files containing an "@"
The "@" sign in file names in SVN marks the beginning of a pegged version number -- from the Subversion book: Peg revisions are specified to the Subversion command-line client using at syntax, so called because the syntax involves appending an “at sign” (@) and the peg revision to the end of the path with which the revision is associated. The trivial workaround is to always append an at sign to the end of the path in the version control checks. Before: $ community-stagingpkg 'Add systemd units.' ==> ERROR: exim-submission@.service is not under version control $ svn status -v | grep 'exim-submission@.service' A - ? ? exim-submission@.service After: $ community-stagingpkg 'Add systemd units.' ==> Committing changes to trunk...done ==> Signing package exim-4.80-2-x86_64.pkg.tar.xz... [...] Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de> Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
-rw-r--r--archrelease.in3
-rw-r--r--commitpkg.in2
2 files changed, 4 insertions, 1 deletions
diff --git a/archrelease.in b/archrelease.in
index 5bc2c90..533a547 100644
--- a/archrelease.in
+++ b/archrelease.in
@@ -54,6 +54,9 @@ for file in "${known_files[@]}"; do
fi
done
+# gracefully handle files containing an "@" character
+known_files=("${known_files[@]/%/@}")
+
for tag in "$@"; do
stat_busy "Copying ${trunk} to ${tag}"
diff --git a/commitpkg.in b/commitpkg.in
index b5cf043..8b87426 100644
--- a/commitpkg.in
+++ b/commitpkg.in
@@ -57,7 +57,7 @@ esac
# check if all local source files are under version control
for s in "${source[@]}"; do
- if [[ $s != *://* ]] && ! svn status -v "$s" | grep -q '^[ AMRX~]'; then
+ if [[ $s != *://* ]] && ! svn status -v "$s@" | grep -q '^[ AMRX~]'; then
die "$s is not under version control"
fi
done