From: Christian Weisgerber Subject: Re: Some random whining To: gameoftrees@openbsd.org Date: Thu, 2 Sep 2021 18:54:55 +0200 Stefan Sperling: > > * "got cherrypick" is slow in a large tree like OpenBSD ports. > > This is mostly because of pre-condition checks that run before the actual > cherrypick operation. It is the cost of running 'got log' on the branch. Oh, now I get it. cherrypick and backout compare the commit against the whole history of the branch; cherrypick to check that it is not part of our ancestry, backout to confirm that it is. In my test case, and I guess in practice, backout is a lot faster because it stops when it finds a matching commit and that is probably a recent one. By contrast, cherrypick goes over all the 214,000+ commits of the master branch in OpenBSD src. > I'm aware of this and already tried to find another way to do this but > could not find any way. The downside of removing the checks would be > that cherrypick could be used in non-sensical ways between branches > that aren't related (or against a branch itself). What's the worst that could happen? cherrypick just patches the work tree. That could be nonsensical or it could conflict, but that can also happen in the "valid" case. > > * "got commit" recurses into directories listed in .gitignore. Why? > > The intended purpose of ignores is to prevent ignored files from being > picked up implicitly by 'got add -R' and hidden by 'got status'. > > I think an already versioned and modified file should be committed > regardless of whether it matches the list. That makes sense. IIRC, what happened in my case is that I committed something in /usr/ports and received an error message that a file in /usr/ports/distfiles had disappeared. -- Christian "naddy" Weisgerber naddy@mips.inka.de