From: Johannes Thyssen Tishman Subject: New User Questions To: gameoftrees@openbsd.org Date: Fri, 2 Jun 2023 12:17:59 +0200 Hi all, I recently decided to give Game of Trees a try. So far I've enjoyed how easy it is to setup gotd on the server and the per-repo configurations. The man pages have been great to get me started. However coming from using git{daemon} I am still a little confused about a couple of things regarding got and gotd. Regarding gotd: Having all repos stored in /var/git, what are the correct permissions for these if I have multiple developers with read-write permissions working on them? Does gotd handle the permissions of these as specified in the /etc/gotd.conf and can I simply have them be owned by maindev:maindev for example? Or do I have to do 'chown -R :developers repo && chmod g+w repo' for all the repos that need write access by the developers group? Regarding /etc/gotd.conf, is it in the developers plans to allow for per-directory/wildcard configurations. E.g: repository ".*" { path "/var/git/*" permit rw :devs permit ro anonymous } I suppose this could simplify the creation of new repositories without having to edit the /etc/gotd.conf and maybe avoid a restart of the gotd daemon? Lastly, does gotd support hooks? For example to generate static files of the git repo after a push/send (post-receive hook). Is something like this planned or are there any current workarounds? Regarding got: Perhaps this questions arises since I'm used to a (not very experienced) workflow with git. I've noticed that in contrast to git, when I clone/init a repo with got{admin}, I get what would be the equivalent of a git clone/init --bare (as shown in the got(1) EXAMPLES). This is somehow confusing for me in two scenarios: 1. When I create a new repository on my server with 'gotadmin init /path/to/repo', I need to populate it first with 'got import' before I can clone it from my local machine. That means that I need to have the files that I want to import available on the server, correct? In case I don't want to have these files on the server, I suppose I can then delete the directory after importing it and then clone it and checkout the worktree on my local machine. However I wonder if this is the intended workflow. Is there a way to just create a new repo on the server and populate it with files from a local machine? 2. After cloning a repo on my local machine and doing a checkout I'm left with two different directories, one is the "bare" repo and the other one is the worktree. To keep everything in a single directory I found that I can do the following as a workaround: $ mkdir test && cd test $ got clone ssh://user@example.com/test .got $ got checkout -E .got . However since the 'got checkout' already puts some files on the .got directory, I'm not sure this is a good practice. Is there a recommended workflow that clarifies this? Aside from this, I'm liking Game of Trees so far and I hope I'm here to stay and contribute. Thank you very much to the developers for the hard work and apologies for all the questions. Kind regards, -- Johannes Thyssen Tishman https://thyssentishman.com