diff options
author | Jean Delvare <jdelvare@suse.de> | 2012-02-01 18:08:49 +0100 |
---|---|---|
committer | Jean Delvare <jdelvare@suse.de> | 2012-02-01 18:08:49 +0100 |
commit | 396929e419877f84c5049228f907ce7945bcad7e (patch) | |
tree | d252fe0cb15a5384d60512bc925bbbcde2a357d1 | |
parent | eee1eb7d4d968f949943a63dd675e16c20731db5 (diff) | |
download | quilt-396929e419877f84c5049228f907ce7945bcad7e.tar.gz |
backup-files: Speed up ensure_nolinks
Calling dirname and basename is costly, and here we really don't have
to. We can simply use a different temporary file name.
Additionally, if stat succeeds, it will always return a valid number,
so we can relax the tests.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Reviewed-by: Raphael Hertzog <hertzog@debian.org>
-rw-r--r-- | quilt/scripts/backup-files.in | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/quilt/scripts/backup-files.in b/quilt/scripts/backup-files.in index 03a41f4..70e6476 100644 --- a/quilt/scripts/backup-files.in +++ b/quilt/scripts/backup-files.in @@ -47,14 +47,11 @@ usage () { ensure_nolinks() { local filename="$1" - local link_count dirname basename tmpname + local link_count tmpname link_count=$(stat @STAT_HARDLINK@ "$filename") - if [ -z "$link_count" ] || [ "$link_count" -gt 1 ]; then - dirname=$(dirname "$filename") - basename=$(basename "$filename") - # Temp file name is "path/to/.file.XXXXXX" - tmpname=$(mktemp "${dirname}/.${basename}.XXXXXX") + if [ $link_count -gt 1 ]; then + tmpname=$(mktemp "$filename.XXXXXX") cp -p "$filename" "$tmpname" mv "$tmpname" "$filename" fi |