summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2021-06-05 13:40:28 +0000
committerOri Bernstein <ori@eigenstate.org>2021-06-05 13:40:28 +0000
commitfd9679d97b0bb7b8849f84f50c708d5f733708e1 (patch)
tree6507c7a5dc2dc99edb8807d66a521b8ba6f74752
parent4f3437a3ccde4fadf84f6de254a141cece9ca0af (diff)
downloadplan9front-fd9679d97b0bb7b8849f84f50c708d5f733708e1.tar.xz
git: handle absolute paths better
we were catting $gitrel onto absolute paths. stop it.
-rwxr-xr-xsys/src/cmd/git/add11
-rwxr-xr-xsys/src/cmd/git/commit2
-rwxr-xr-xsys/src/cmd/git/diff2
3 files changed, 8 insertions, 7 deletions
diff --git a/sys/src/cmd/git/add b/sys/src/cmd/git/add
index 9b79d766b..a51e154ee 100755
--- a/sys/src/cmd/git/add
+++ b/sys/src/cmd/git/add
@@ -16,17 +16,18 @@ if(~ $remove 1){
if(~ $#* 0)
exec aux/usage
+paths=`$nl{cleanname -d $gitrel $*}
if(~ $add tracked)
- files=`$nl{walk -f $gitrel/$*}
+ files=`$nl{walk -f $paths}
if not
- files=`$nl{cd .git/index9/tracked/ && walk -f $gitrel/$*}
+ files=`$nl{cd .git/index9/tracked/ && walk -f $paths}
for(f in $files){
- if(! ~ `{cleanname $f} .git/*){
+ if(! ~ `$nl{cleanname $f} .git/*){
addpath=.git/index9/$add/$f
delpath=.git/index9/$del/$f
- mkdir -p `{basename -d $addpath}
- mkdir -p `{basename -d $delpath}
+ mkdir -p `$nl{basename -d $addpath}
+ mkdir -p `$nl{basename -d $delpath}
# We don't want a matching qid, so that
# git/walk doesn't think this came from
# a checkout.
diff --git a/sys/src/cmd/git/commit b/sys/src/cmd/git/commit
index bcbe3b1c4..5b23f7706 100755
--- a/sys/src/cmd/git/commit
+++ b/sys/src/cmd/git/commit
@@ -135,7 +135,7 @@ if not if(~ $#revise 1){
files=()
if(! ~ $#* 0)
- files=`$nl{git/walk -c `$nl{cleanname $gitrel/$*}}
+ files=`$nl{git/walk -c `$nl{cleanname -d $gitrel $*}}
if(~ $status '' || ~ $#files 0 && ! test -f .git/index9/merge-parents && ~ $#revise 0)
die 'nothing to commit' $status
@{
diff --git a/sys/src/cmd/git/diff b/sys/src/cmd/git/diff
index be74676d9..075ea3ee9 100755
--- a/sys/src/cmd/git/diff
+++ b/sys/src/cmd/git/diff
@@ -12,7 +12,7 @@ if(~ $#commit 0)
files=()
if(! ~ $#* 0)
- files=`{cleanname $gitrel/$*}
+ files=`{cleanname -d $gitrel $*}
branch=`{git/query -p $commit}
if(~ $summarize 1){