summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2021-06-21 02:12:58 +0000
committerOri Bernstein <ori@eigenstate.org>2021-06-21 02:12:58 +0000
commit21075859e4f3ed93ef2a8ae072cc23d575b4549c (patch)
tree842835dfcc5ac1f466653a154842edcfe50e7f12
parent0339e9ac44b4aed285391727ce3d6e3e1afd173e (diff)
downloadplan9front-21075859e4f3ed93ef2a8ae072cc23d575b4549c.tar.xz
git/revert: handle absolute paths gracefully (thanks deuteron)
when reverting files, absolute paths would get concatenated with $gitrel; use `cleanname -d` to fix this.
-rw-r--r--sys/src/cmd/git/revert5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/src/cmd/git/revert b/sys/src/cmd/git/revert
index a96fcac1d..a516e3a9d 100644
--- a/sys/src/cmd/git/revert
+++ b/sys/src/cmd/git/revert
@@ -11,9 +11,10 @@ commit=$gitfs/HEAD
if(~ $#query 1)
commit=`{git/query -p $query}
-for(f in `$nl{cd $commit/tree/ && walk -f ./$gitrel/$*}){
+files=`$nl{cleanname -d $gitrel $*}
+for(f in `$nl{cd $commit/tree/ && walk -f $files}){
mkdir -p `{basename -d $f}
- cp -- $commit/tree/$f $f
+ cp -x -- $commit/tree/$f $f
git/add $f
}
exit ''