Annotation of wikisrc/projects/project/cvs-migration.mdwn, revision 1.16
1.1 mspo 1: [[!template id=project
3: title="CVS Migration for NetBSD repos"
1.16 ! maya 11: done_by="Joerg Sonnenberger"
1.1 mspo 12:
1.8 wiki 14:
1.15 schmonz 15: ### Background and description
1.8 wiki 17: NetBSD is one of the first projects to use internet-available source control.
18: It has been using CVS since the very beginning of the project (over 21 years)
19: and the repository is vast.
21: NetBSD also hosts the pkgsrc repository which has many small files, many
22: "imports" and other technical challenges associated with VCS.
24: NetBSD also has various small internal repositories (like this wiki).
1.9 wiki 26: During the last twenty years tooling has improved and popular developer culture
1.8 wiki 27: has shifted to new workflows.
29: The purpose of this project is to identify:
31: * existing 'workflows' in common use among developers
32: * (example): [[dholland/hgnb]]
33: * existing 'tooling' within NetBSD the organization
34: * how much memory/disk is required to host NetBSD?
35: * how are backups performed?
36: * can the tools be cross-build?
37: * security requirements like
38: * how do we validate commits?
39: * how do we ensure commits originated from developers?
40: * release engineering requirements such as
41: * how does a pullup request work?
42: * how do we ensure the correct files are included in the correct release branches?
43: * how do we checkout a release branch
44: * how do we look at the history of a release branch
45: * how do we get different revisions of a file on a branch
47: major parts of the technical work like "how to convert FROM CVS to git/hg/fossil"
48: has already been done, which is why we are able to now ask "how would the project
49: continue to function?"
51: ### Our decision matters
1.7 schmonz 52:
53: You're reading this because you care about the future of NetBSD and
54: you understand that good tools act as a force multiplier.
1.8 wiki 56: ### Our decision is not obvious
1.7 schmonz 57:
58: If it were, we'd have made it already (and wouldn't be disagreeing
59: so persistently about which one it needs to be ;-).
1.8 wiki 61: ### Our decision needs to be about the whole elephant
1.7 schmonz 62:
63: We all understand the basics of using source control. This level
64: of understanding is necessary but not sufficient to make an informed
65: decision about whether to migrate any or all of NetBSD's repositories
66: to another VCS, and if so which, or how.
68: Our choice of VCS carries implications not only about how developers
69: hack on NetBSD, but also about how non-developers contribute and
70: become developers, and how Project sysadmins keep our valuable code
71: secure. Therefore, any choice of VCS other than the default (sticking
72: with CVS for a while longer) necessarily implies that as a group,
73: we all need to learn how we're going to do what we expect to need
74: to do. Not all of this learning needs to happen before we can make
75: a reasonably confident decision for our Project. But if we want to
76: arrive at consensus, much of it does.
78: There is no available choice of VCS that entirely avoids tradeoffs
79: for us. Therefore, to choose intelligently, we must first consider
80: all the tradeoffs we can think of, then decide which ones we can
1.10 jnemeth 81: live with and which we can not.
1.7 schmonz 82:
1.8 wiki 83: ### Our decision needs to be made together
1.7 schmonz 84:
85: We're a community. The only way a complicated, interconnected set
86: of changes like this can be implemented is for us to arrive at rough
87: consensus that some particular VCS:
89: - is sufficiently well suited to our project's needs in theory,
90: - is sufficiently easily adapted to our needs in practice,
91: - has a sufficiently fail-safe migration plan,
92: - is worth the effort to switch, and
93: - has volunteers to do the work.
1.8 wiki 95: ### How you can help, right now
1.7 schmonz 96:
97: What are some considerations you think are important? Are they
98: listed here? If not, edit this page and add them.
1.15 schmonz 100: ### Some previously collected considerations
102: * [[mailing-lists/tech-repository]]
1.8 wiki 104: ### Considerations
1.7 schmonz 105:
1.8 wiki 106: Humans
1.7 schmonz 107:
1.8 wiki 108: * People who administer Project resources
1.10 jnemeth 109: * People who administer release branches
1.11 schmonz 110: * People who administer security updates
1.8 wiki 111: * People who can commit directly to NetBSD
112: * People who can't commit directly to NetBSD
1.7 schmonz 113:
1.12 wiki 114: Machines
116: * Some ports/machines are memory constraint or rather slow (by todays standards), a VCS different than CVS should be able to used on these machines as well.
117: (e.g. git has parameters to tune memory usage, and there exists git-cvsserver which allows a git repository to be accessed using a CVS client)
1.1 mspo 118:
1.13 wiki 119: Workflow / Commonly used actions
121: * Checkout the whole tree
122: * Checkout a partial tree (or subdirectory)
123: * Create a branch
124: * Merge a branch with the head/main branch
125: * Create a tag
126: * Commit local changes to a branch
127: * Commit local changes to the main branch
128: * Revert a commit
129: * Fix a commit message
130: * Create a diff between two versions of a file
1.1 mspo 131:
1.14 wiki 132: Tools
134: * Command line tool
135: * Web based source code browsing and maybe riffing (in the style of e.g. trac)
136: * Availability on different platforms (pkgsrc is not NetBSD only)
1.1 mspo 138: """
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb