- rc differences moved to their own file - main g2migr now helps interpret output of check-g2-compat - Gitolite::Compat gone; no point...
3.8 KiB
#g2migr migrating from g2
This document is a MUST read if you are currently using g2 and want to move to g3.
First things first: g2 will be supported for a good long time. My current expert users do not cause me any load anyway.
Migration should be straightforward, but it is not automatic. You should run the "check-g2-compat" program first, to see any major differences that affect you. The bulk of the changes are in the RC file, which must be manually handled (links below). The conf files have very few changes -- they apply only if you use "NAME/" or delegation.
You must first read about [incompatible][g2incompat] features and [dropped][g2dropped] features. Some features have been replaced with [alternatives][g2alt].
Since the majority of changes are in the rc file, they're all listed [here][g2rcdiff].
The rest of this page describes the completely standalone "check-g2-compat" script that you can find in the repo root (i.e., not in "src/").
the "check-g2-compat" program
This program checks a few things only, not everything. In particular, it looks for settings and status that might:
- make g3 unusable for lots of users
- make g3 give more access than g2 under some conditions.
It does NOT look for or warn about anything else; you're expected to read (and act upon, if needed) the rest of the migration guide links given a few paras above to cover everything else.
Here's an explanation of those messages that the check-g2-compat program may put that contain the words "see docs":
-
GL_ADMINDIR in the wrong place -- aborting
It expects to find
GL_ADMINDIR
andREPO_BASE
pointing to the right places. It aborts if these conditions are not met and does not scan further since that sort of guesswork is not good. If you are in that position, make a symlink from the real location to the expected location, change the RC accordingly, and re-try. -
REPO_BASE in the wrong place -- aborting
same as above
-
fallthru in NAME rules
This is a significant difference and affects access badly (gives access that would otherwise not be given). Please see the [list of non-RC incompatibilities][g2incompat].
-
subconf command in admin repo
This is not so bad security wise but it might reduce access by not processing files you intended to. Again, see the same link as in the previous bullet.
-
found N gl-creater files
These need to be renamed to
gl-creator
(the correct spelling at last, hooray!). Suggested command sequence:cd $HOME/repositories find . -type d -name "*.git" -prune | while read r do mv \$r/gl-creater \$r/gl-creator done 2>/dev/null
Once you do this, the g2 will not work completely unless you change them back.
-
found N gl-perms files with R or RW
Setting perms of R and RW will no longer work; you have to say READERS and WRITERS now. Suggested command:
The following variables need to be [preset][rc-preset] in the rc file
before running gitolite setup
. Otherwise the default actions will
clobber something and require some recovery.
-
GL_NO_SETUP_AUTHKEYS
(default will clobber your authkeys file) -
GL_NO_DAEMON_NO_GITWEB
(default will clobber your projects.list file and git-daemon-export-ok files) -
UPDATE_CHAINS_TO
(default will fail to run this extra check when users push) -
ADMIN_POST_UPDATE_CHAINS_TO
(severity depends on what your code is doing; see [g2rcdiff][] for how to fix this) -
GL_ALL_INCLUDES_SPECIAL
(default will allow gitweb and daemon to be able to read any repos that haveR = @all
) -
GIT_PATH
(presumably your git is in some non-std path so unless you preset$ENV{PATH}
per instructions in the [rc file differences][g2rcdiff] doc, nothing will work).