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