Annotation of wikisrc/gitsofar.mdwn, revision 1.4
1.2 mspo 1: ## NetBSD with git so far
1.1 mspo 2:
1.2 mspo 3: [core statement on vcs](http://mail-index.netbsd.org/tech-repository/2015/01/04/msg000497.html)
1.1 mspo 4:
1.2 mspo 5: ### Low memory hosts:
6:
7: * [tuning for git on low memory](http://mail-index.netbsd.org/tech-repository/2015/01/08/msg000520.html)
1.1 mspo 8:
9: git appears to have slightly different memory characteristics depending on the
10: protocol used. Over http I am able to get a full clone with all history on a
11: 256 + 256 raspberri pi. If you bump up the memory to 512 + 256 it makes ssh
12: possible, which means writes are possible.
13:
14: The link above has some tuning I used to get memory requirements way down.
15:
16: It should be noted that git support a "shallow" clone (--depth 1) which ignores
17: most history but allows commits and full development.
18: A shallow clone works on very small systems; I would guess 128MB + a little swap
19: is enough.
20:
21: git is slow during 'status' by default since it searches the entire tree for a
22: change. It will produce a warning with tunable options if the command runs
23: slowly.
24:
1.4 ! mspo 25: ** Update
! 26: After some complaining on the git@ mailing list a patch has been produced which
! 27: drops the memory requirements down quite a bit. I can now, without much tuning,
! 28: work on my 512 system. I'm pretty sure a 256 + swap without any special tuning
! 29: would also work.
! 30:
1.2 mspo 31: ### CVS in parallel
32:
1.1 mspo 33: I do not think this is a good idea and do not plan to advocate for it.
34: Git does have a cvs server built-in but I have not taken the time to set it up
35: for testing because it is slightly involved and I don't see the purpose.
36:
1.2 mspo 37: ### Conversion
38:
1.1 mspo 39: One-shot to create the new True Source. I don't think there will be many cvs
40: hold-outs.
41:
42: See above for CVS server provided if ongoing conversion is really desired.
43:
1.2 mspo 44: ### existing cvs dependencies
45:
1.1 mspo 46: TBD
47:
1.2 mspo 48: ### How should NetBSD be setup
49:
1.1 mspo 50: High level- private box for write master using ssh, any number of additional
51: systems with read-only mirrors over http:// and git://
52:
1.3 mspo 53: Also see a great description of how DragonflyBSD is setup:<br>
54: [dfbsd server setup](http://lists.dragonflybsd.org/pipermail/users/2015-January/207421.html)<br>
55: [dfbsd workflows](http://lists.dragonflybsd.org/pipermail/users/2015-January/207422.html)<br>
56: [dfbsd config](http://lists.dragonflybsd.org/pipermail/users/2015-January/207424.html)<br>
1.2 mspo 57:
58: ### how to install
1.1 mspo 59:
60: git should fit into NetBSD src/tools easily. I have not personally tested
61: cross compilation.
62:
1.2 mspo 63: ### workflows
64:
1.1 mspo 65: See DragonflyBSD examples given above
66:
67: There are many many workflows supported in git. For the most part I think
68: NetBSD developers would follow the "feature branch" workflow from the main repo
69: (or private/semi-private clones before merge).
70:
71: Public collaboration is a big feature of git since it can format patches into
72: at least two different email formats and they can be submitted to a bug report
73: or to a mailing list, which should allow clean apply.
74:
75: A non-developer could also post a pull request to github or host his git repo
76: for a friendly developer to add as an origin and pull his branch.
77:
78: (git origin add future-developer http://example.com/~greatguy/src.git)
79:
80:
1.2 mspo 81: ### log message formats
82:
1.4 ! mspo 83: Try to references named branches/tags instead of sha-1's
1.1 mspo 84: Also using the dates for commits instead of commit id's
85:
1.2 mspo 86: ### how to convert
87:
1.1 mspo 88: ESR?
89:
1.2 mspo 90: ### No lock-in
91:
1.1 mspo 92: I am unable to anticipate the next generation of SCM.
93: Don't do anything weird like change history and we should be fine.
94:
95: Maybe when we have 30 years of project history it will be time to consider
96: restructuring the project. :)
97:
1.4 ! mspo 98: ---
! 99:
! 100: I think this is less a function of the tool and more a function of the project not
! 101: allowing non-"standard" actions.
! 102:
1.2 mspo 103: ### Who, When, and How Long?
104:
1.1 mspo 105: * ESR/Joerg - convert
106: * sometime, eventually, maybe
1.4 ! mspo 107: * assumptions/proposal:
! 108:
! 109: Assuming conversion starting from date(x) to freeze(y) is relatively easy, the
! 110: refinements of Joerg/ESR conversion can continue to run in read-only mode as they
! 111: do today. This means the "switch" is a few hours only for:
! 112:
! 113: ** cvs goes read only
! 114: ** history from last git conversion pull until now is appended
! 115: ** cvs is turned off
! 116: ** git is made available over ssh
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb