Annotation of wikisrc/users/dholland/hgpath.mdwn, revision 1.1

1.1     ! dholland    1: ## NetBSD migration path to Mercurial
        !             2: 
        !             3: This page describes what's involved in migrating NetBSD from CVS to
        !             4: Mercurial.
        !             5: 
        !             6: ### What Mercurial is
        !             7: 
        !             8: [[Mercurial|http://mercurial.selenic.com]] is an open-source version
        !             9: control system.
        !            10: It is a distributed version control system based on the commit
        !            11: hashcode model shared with git and other DVCSes.
        !            12: It is fast and powerful and has long emphasized a certain polish of
        !            13: production.
        !            14: 
        !            15: ### Why Mercurial
        !            16: 
        !            17: Mercurial is a modern VCS; it is maintained; it is capable of
        !            18: handling the NetBSD repositories; and it is cleanly designed, simple,
        !            19: and easy to use.
        !            20: The first three of these properties are necessary requirements for
        !            21: NetBSD to migrate (I don't think any of them are particularly
        !            22: controversial); the last sets it apart from git, which is the other
        !            23: immediately available alternative.
        !            24: (The third option, writing our own, is not currently realistic.)
        !            25: 
        !            26: One could write a lot of gung-ho IT IS REALLY GR8!!!11!! boosterism
        !            27: here too, of course, but I'll leave that for someone else.
        !            28: 
        !            29: ### Migration
        !            30: 
        !            31: There are two categories of issues related to migrating a project the
        !            32: size of NetBSD: first, what the project and the world around the
        !            33: project will look like after the migration is done, and second, what
        !            34: things need to be done to get there.
        !            35: The purpose of this page is to tackle the first: what things in the
        !            36: project will be different and what they'll be like.
        !            37: This includes not just user-facing things like commit procedures but
        !            38: also backend considerations and administration.
        !            39: 
        !            40: There's a [[second page|hgtodo.mdwn]] with a list of work that needs
        !            41: to be done.
        !            42: 
        !            43: ### Issues
        !            44: 
        !            45: Technical concerns (demands on the system's operational model)
        !            46: * atomic commits / changesets
        !            47: * rename support
        !            48: * authenticating commits
        !            49: * numbered versions
        !            50: * branch handling
        !            51: * tag handling
        !            52: * partial checkouts
        !            53: **   partial trees
        !            54: **   partial history
        !            55: * blacklist extension (which is a legal requirement)
        !            56: * being able to migrate away in the future
        !            57: * ...
        !            58: 
        !            59: Conversion of CVS repository phenomena
        !            60: * vendor branches
        !            61: * conversion of repo-copies and similar CVS horrors
        !            62: * adding rename metadata to already-done moves
        !            63: * pkgsrc not-really-vendor imports
        !            64: * developer usernames vs. email addresses in log messages and commit metadata
        !            65: * non-ascii text in log messages
        !            66: * version references in log messages
        !            67: * retaining CVS file version numbers as metadata
        !            68: * restoring the pre-settlement history and/or including the CSRG history
        !            69: 
        !            70: Implementation concerns (demands on the system as it exists)
        !            71: * general performance
        !            72: * importing into base, or not
        !            73: * storage requirements vs. small systems
        !            74: * memory requirements vs. small systems
        !            75: * possible workarounds for small systems
        !            76: * ...
        !            77: 
        !            78: Community deployment issues
        !            79: * what becomes of anoncvs
        !            80: * making use of version numbers in mailing lists / security advisories
        !            81: * patches/contributions/commits from non-developers
        !            82: * collaborating with non-developers
        !            83:   
        !            84: Developer deployment issues
        !            85: * commit procedures
        !            86: * development branch procedures
        !            87: * vendor branch procedures
        !            88: * private branch procedures
        !            89: * collaboration without pushing to the master repositories
        !            90: * rebasing vs. merging
        !            91: * how to refer to other commits in log messages
        !            92: 
        !            93: Many of these issues are already documented in [[the existing
        !            94: workflows writeup|hgnb.mdwn]].
        !            95: 
        !            96: Releng deployment issues
        !            97: * changes to the way pullups are filed
        !            98: * release commit procedures
        !            99: * release branch procedures
        !           100: * dealing with accidental commits to release branches
        !           101: * preventing accidental merges into release branches
        !           102: * extracting formal release tarballs
        !           103: * shipping source tarballs
        !           104: * ...
        !           105: 
        !           106: Backend/admins deployment issues
        !           107: * log_accum / source-changes mails
        !           108: * access control for whole trees
        !           109: * access control for subsections of trees
        !           110: * backups
        !           111: * pushing to anoncvs
        !           112: * ...
        !           113: 
        !           114: cvs assumptions / scripted usage in the tree
        !           115: * pkgsrc: changes-entry and commit-changes-entry
        !           116: * pkgsrc: guide regen
        !           117: * ...
        !           118: 
        !           119: Other questions
        !           120: * running live in parallel with CVS during a transition period
        !           121: * gatewaying to other VCS frontends
        !           122: 
        !           123: 
        !           124: 
        !           125: 

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb