(if you never used the "Upstream-ID:" markers in our commit messages and are not morbidly curious, then feel free to stop reading now). I've just switched the git repository that portable OpenSSH uses to cluster OpenBSD CVS commits from one that was converted using "git cvsimport" to one that is maintained using cvs2gitdump[1] I've explained the background in the commit message that marks the point at which the switch happens, so rather than repeat myself, I'll just paste it below ^_^ If you have any questions, please ask me. Here's my attempt at preempting a few: q: Why not use the OpenBSD git conversion[2] directly? a: Mostly because it isn't real-time and I like being able to sync changes from upstream to portable instantly. This is especially important at release time, when lots of changes happen quickly. q: Why not figure out what was going wrong with git cvsimport? a: I started to but it was obviously going to be a long yak-shave involving git-cvsimport (a Perl script), the old version of cvsps that it demands and CVS itself. cvs2gitdump is 1/2 the length of git-cvsimport alone, considerably more readable (and therefore debuggable) and works with the repository RCS files directly. q: Why not do tree surgery to graft the git-cvsimport history to a repository maintained by cvs2gitdump? a: 1) I don't know whether it would work properly, 2) I couldn't be bothered to find out (I'd rather spend my time working on OpenSSH than fighting infrastructure), and 3) unlike git-cvsimport, cvs2gitdump generates histories and commit hashes that are stable between imports, so it provides a more reproducible and canonical base to build on. That would be lost if I tried to graft the two toghether. [1] https://github.com/yasuoka/cvs2gitdump [2] commit eb9c582b710dc48976b48eb2204218f6863bae9a Author: Damien Miller <djm@xxxxxxxxxxx> Date: Tue Oct 31 00:46:29 2017 +1100 Switch upstream git repository. Previously portable OpenSSH has synced against a conversion of OpenBSD's CVS repository made using the git cvsimport tool, but this has become increasingly unreliable. As of this commit, portable OpenSSH now tracks a conversion of the OpenBSD CVS upstream made using the excellent cvs2gitdump tool from YASUOKA Masahiko: https://github.com/yasuoka/cvs2gitdump cvs2gitdump is considerably more reliable than gitcvsimport and the old version of cvsps that it uses under the hood, and is the same tool used to export the entire OpenBSD repository to git (so we know it can cope with future growth). These new conversions are mirrored at github, so interested parties can match portable OpenSSH commits to their upstream counterparts. https://github.com/djmdjm/openbsd-openssh-src https://github.com/djmdjm/openbsd-openssh-regress An unfortunate side effect of switching upstreams is that we must have a flag day, across which the upstream commit IDs will be inconsistent. The old commit IDs are recorded with the tags "Upstream-ID" for main directory commits and "Upstream-Regress-ID" for regress commits. To make it clear that the commit IDs do not refer to the same things, the new repository will instead use "OpenBSD-ID" and "OpenBSD-Regress-ID" tags instead. Apart from being a longwinded explanation of what is going on, this commit message also serves to synchronise our tools with the state of the tree, which happens to be: OpenBSD-ID: 9c43a9968c7929613284ea18e9fb92e4e2a8e4c1 OpenBSD-Regress-ID: b33b385719420bf3bc57d664feda6f699c147fef _______________________________________________ openssh-unix-dev mailing list openssh-unix-dev@xxxxxxxxxxx https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev