This is the list of open issues for the migration of pkgsrc to git. There are at least the following topics: Repositories === Either use the existing conversion, or make a new one using `wip/cvs2git`. (DONE in this section means we know how to do it.) - DONE conversion exists, but joerg wants to do a cleaned up version - asked joerg if he's still interested in doing that - no reply, so we'll take it as-is - DONE `doc/CHANGES-*`: add a `.gitattributes` file in `doc` with `CHANGES-* merge=union` - DONE mailmap (mapping CVS Unix users to name and email - see localsrc/cvs_server/migration) - DONE mailmap needs to be applied `git filter-repo --force --mailmap $PATH_TO_MAILMAP` - DONE rename trunk to main: `git branch main trunk` `git switch main` `git branch -d trunk` git server === - software - use git: ssh + git like for wip - new hardware? - no; use cvs and anoncvs machines - new DNS entry - public access: provide read-only access that's not on github git server hooks === - DONE email notifications: use hook script from pkgsrc-wip - DONE linear history: use hook script from pkgsrc-wip - DONE warning about merge conflict in commits - DONE warning about work directories included in commits - DONE emails to GNATS when commits include magic pattern relating to a PR - DONE `pkg_add p5-MIME-Lite` for notifications - DONE branch support Documentation === - pkgsrc-specific documentation for developers and git - pkgsrc guide sections - 23.3. General notes when adding, updating, or removing packages - 23.5. Committing: Adding a package to CVS - 23.8. Moving a package in pkgsrc - update branch-cutting instructions - update releng instructions Updating Repository Contents & Deployment === - Daily/weekly jobs: - daily publishing jobs for tar balls - with .git or without? or both? - updated extracted sources? where? - all the pkgsrc automation (requires an unpacked updated tree of the right branch, doesn't care how it came into being) - backups of the repo(s) - developer activity script for admins/membership-exec needs to be adapted - update bulk build machines to get their sources from git Switching from CVS to git === - make git repository available to all developers - make pkgsrc CVS read-only - github - after final conversion happens, either force-push or make a new repository and deprecate the old one, or remove completely? Post-Conversion === Cleanups after conversions are final (these can only be done once the CVS-to-git step is finalized, because they are manual work and would get lost otherwise) - delete old branches - current conversion has some duplicate branches that only differ by `_` vs. `-` in the names, e.g. origin/pkgsrc-2003Q4 and origin/pkgsrc_2003Q4. Most don't differ at all, in the few cases where they do the `-` version looks better. So clean up the other ones: `git branch -al | grep _ | grep -v pkg_install-renovation | while read a; do echo git branch -d "$a"; done` - `pkgsrc-` is a misbranch of `pkgsrc-2017Q3`, delete it: `git branch -d pkgsrc` - `pkgsrc-pkgsrc-2019Q4` is a misbranch of `pkgsrc-2019Q4`, delete it: `git branch -d pkgsrc-pkgsrc-2019Q4` - some thirdparty software was sometimes imported, but we didn't continue with this process -- except for libarchive. `git branch -d BMAKE BZIP2 MRENDEL ZLIB tnftp` keep `KIENTZLE` (libarchive) or remove it? - early in pkgsrc's development, packages were added from FreeBSD ports and imported to keep them in sync. This practice had stopped by 2005. `git branch -d FREEBSD` - A couple autoconf/automake files in pkgsrc/mk were imported on this in 2006 but later updates didn't use imports. `git branch -d FSF` - This was the branch that was used for all imports (i.e. package additions) until we stopped using `cvs import` for adding packages: `git branch -d TNF` - TODO `buildlink2` - TODO `cube-native-xorg` - TODO `cwrapper` - TODO `jlam-pkgviews` - TODO `pkg_install-renovation` - TODO `pkgviews` - TODO `pkgviews-mk` - TODO `pkgviews` - TODO `tv-derecurse` - TODO `tv-libtool-1-5-18-tmpdirfix` - tag heads so no commits are lost? Other method? - DONE add .gitattributes file for doc/ (prepared) - DONE update developer.mk for git (`make changes-entry`), see [[diff|developer.mk.diff]] - turn off CVS/anoncvs server