[arch-projects] [devtools] [PATCH v2] Gracefully handle files containing an "@"

Lukas Fleischer archlinux at cryptocrack.de
Sun Jun 10 05:35:39 EDT 2012


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 at .service is not under version control
    $ svn status -v | grep 'exim-submission at .service'
    A                -       ?   ?           exim-submission at .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 at cryptocrack.de>
---
 archrelease.in |    3 +++
 commitpkg.in   |    2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

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 4ce0f7b..b683566 100644
--- a/commitpkg.in
+++ b/commitpkg.in
@@ -67,7 +67,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
-- 
1.7.10.4



More information about the arch-projects mailing list