]> git.lizzy.rs Git - plan9front.git/commitdiff
git: add missing file
authorOri Bernstein <ori@eigenstate.org>
Mon, 17 May 2021 20:46:44 +0000 (13:46 -0700)
committerOri Bernstein <ori@eigenstate.org>
Mon, 17 May 2021 20:46:44 +0000 (13:46 -0700)
Forgot to add common.rc in the initial commit.

sys/lib/git/common.rc [new file with mode: 0644]

diff --git a/sys/lib/git/common.rc b/sys/lib/git/common.rc
new file mode 100644 (file)
index 0000000..5736127
--- /dev/null
@@ -0,0 +1,91 @@
+nl='
+'
+
+fn die{
+       >[1=2] echo $0: $*
+       exit $"*
+}
+
+fn usage{
+       >[1=2] echo -n 'usage:' $usage
+       exit 'usage'
+}
+
+# subst [-g] this [that]
+fn subst{
+       awk 'BEGIN{
+               global = 0
+               for(i = 1; ARGV[i] ~ /^-/; i++){
+                       if(ARGV[i] == "-g")
+                               global = 1
+                       ARGC--
+               }
+               this = ARGV[i++]; ARGC--
+               that = ARGV[i++]; ARGC--
+       }
+       {
+               if(global) gsub(this, that)
+               else sub(this, that)
+               print
+       }' $*
+}
+
+fn present {
+       if(~ $1 /dev/null && cmp $2 $3>/dev/null)
+               status=gone
+       if not if (~ $3 /dev/null && cmp $1 $2>/dev/null)
+               status=gone
+       if not
+               status=()
+}
+
+# merge1 out theirs base ours
+fn merge1 {
+       n=$pid
+       out=$1
+       theirs=$2
+       base=$3
+       ours=$4
+       tmp=$out.tmp
+       while(test -f $tmp){
+               tmp=$tmp.$n
+               n=`{echo $n + 1 | hoc}
+       }
+
+       if(! test -f $ours)
+               ours=/dev/null
+       if(! test -f $base)
+               base=/dev/null
+       if(! test -f $theirs)
+               theirs=/dev/null
+       if(! ape/diff3 -3 -m $ours $base $theirs > $tmp)
+               echo merge needed: $out
+
+       if(present $ours $base $theirs){
+               mv $tmp $out
+               git/add $out
+       }
+       if not {
+               rm -f $tmp $out
+               git/rm $out
+       }
+}
+
+fn gitup{
+       gitroot=`{git/conf -r >[2]/dev/null}
+       if(~ $#gitroot 0)
+               die 'not a git repository'
+       gitrel=`{pwd | subst '^'$"gitroot'/?'}
+       if(~ $#gitrel 0)
+               gitrel='.'
+       cd $gitroot
+       startfs=()
+       if(! test -e /mnt/git/ctl)
+               startfs=true
+       if(! grep -s '^repo '$gitroot'$' /mnt/git/ctl >[2]/dev/null)
+               startfs=true
+       if(~ $#startfs 1)
+               git/fs
+       if not
+               status=''
+}