aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--git-init-shared.142
2 files changed, 44 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index f515359..6244684 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
PREFIX ?= /usr/local
-install: git-init-shared git-package git-package.1 git-sign-for-cgit git-sign-for-cgit.1
+install: git-init-shared git-init-shared.1 git-package git-package.1 git-sign-for-cgit git-sign-for-cgit.1
install -D -m 755 -t '${DESTDIR}${PREFIX}/bin' git-init-shared git-package git-sign-for-cgit
- install -D -m 644 -t '${DESTDIR}${PREFIX}/share/man/man1' git-package.1 git-sign-for-cgit.1
+ install -D -m 644 -t '${DESTDIR}${PREFIX}/share/man/man1' git-init-shared.1 git-package.1 git-sign-for-cgit.1
.PHONY: install
diff --git a/git-init-shared.1 b/git-init-shared.1
new file mode 100644
index 0000000..dfd9ffa
--- /dev/null
+++ b/git-init-shared.1
@@ -0,0 +1,42 @@
+.Dd July 19, 2021
+.Dt GIT-INIT-SHARED 1
+.Os
+.Sh NAME
+.Nm git-init-shared
+.Nd create and share a git repository amongst multiple users
+.Sh SYNOPSIS
+.Nm git init-shared
+.Ar directory
+.Op Ar user...
+.Sh DESCRIPTION
+.Nm
+creates (or reinitializes) a git repository at
+.Ar directory
+and grants the owner and all other specified users write access to it.
+Access rights are stored in POSIX Access Control Lists as per
+.Xr acl 5 .
+.Pp
+It is safe to run this command on an already existing git repository.
+Previously unauthorized users that are included in the subsequent
+invocation will be granted write access.
+.Pp
+.Nm
+only ever grants access.
+If you need to remove access for a user, use the following
+invocation of
+.Xr setfacl 1
+instead:
+.Bd -literal -offset indent
+setfacl -Rnx 'u:<user>,d:u:<user>' <repository>
+.Ed
+.Sh SEE ALSO
+.Xr getfacl 1 ,
+.Xr git 1 ,
+.Xr git-init 1 ,
+.Xr setfacl 1 ,
+.Xr acl 5
+.Sh AUTHORS
+.An -nosplit
+.Nm
+was written by
+.An Wolfgang Müller Aq Mt wolf@oriole.systems .