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
 
 
 - asked joerg if he's still interested in doing that
 DONE
doc/CHANGES-*: add a.gitattributesfile indocwithCHANGES-* merge=unionDONE 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_MAILMAPDONE rename trunk to main:
git branch main trunkgit switch maingit 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-Litefor 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
 
 
 - pkgsrc guide sections
 - 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)
 
 - daily publishing jobs for tar balls
 - 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"; donepkgsrc-is a misbranch ofpkgsrc-2017Q3, delete it:git branch -d pkgsrcpkgsrc-pkgsrc-2019Q4is a misbranch ofpkgsrc-2019Q4, delete it:git branch -d pkgsrc-pkgsrc-2019Q4some thirdparty software was sometimes imported, but we didn't continue with this process -- except for libarchive.
git branch -d BMAKE BZIP2 MRENDEL ZLIB tnftpkeep
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 FREEBSDA couple autoconf/automake files in pkgsrc/mk were imported on this in 2006 but later updates didn't use imports.
git branch -d FSFThis was the branch that was used for all imports (i.e. package additions) until we stopped using
cvs importfor adding packages:git branch -d TNFTODO
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 - turn off CVS/anoncvs server
 
