## #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. When you first run "gitolite setup [...]", gitolite3 will try to detect at least the big problems. However, converting the RC file and the conf files is (as of now) still a manual exercise, though not very difficult. 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, we list them all here. ### rc file differences **DROPPED** variables (possible high impact): these could be show-stoppers for migration, at least for now. * `BIG_INFO_CAP` -- if you think you must have this, try it without and see if there's a difference. If you *know* you need this, convince me. * `GL_ALL_READ_ALL` -- same * `GL_NO_CREATE_REPOS` -- if you think you need this, email me. I know one group who does need this so I will be putting it in eventually but not right away. * `HTPASSWD_FILE`, `RSYNC_BASE`, `SVNSERVE` -- need work. Email me if you are using any of these. * `GL_GET_MEMBERSHIPS_PGM` -- is on my todo list * `GL_LOGT` -- is now fixed; you can't change it. Email me if this is a problem. **DROPPED** variables (medium impact): these have alternative implementations or mechanisms, but you have to do some setup work. * `GL_ADMINDIR` -- this is now at a fixed location: `~/.gitolite`. If you want it somewhere else go ahead and move it, then place a symlink from the assumed location to the real one. * `REPO_BASE` -- this is now at a fixed location: `~/repositories`. If you want it somewhere else go ahead and move it, then place a symlink from the assumed location to the real one. * `PROJECTS_LIST` -- it's called `GITWEB_PROJECTS_LIST` now, but more importantly, it is only used by update-gitweb-access-list in src/commands/post-compile. This variable now has nothing to do with gitolite core, and the rc is just helping to store settings for external programs like that one. `WEB_INTERFACE` and `GITWEB_URI_ESCAPE` are also gone; patches to the update program to directly do those things are welcome. * `GL_NO_DAEMON_NO_GITWEB` -- uncomment the appropriate lines in the rc file, in both the `POST_COMPILE` and `POST_CREATE` trigger sections. * `NICE_VALUE` -- use the `PRE_GIT` trigger to attach a program that renices the pid given by $GL_TID (that's the pid of the initial gitolite entry point, usually gitolite-shell, and propagates from there once set). You may have to add this list to the rc file; if you don't know perl use one of the others as a model or ask me. * `GIT_PATH` -- gone, not needed. Just add these lines to the end of the rc file: $ENV{PATH}="...whatever you want..."; 1; * `GL_NO_SETUP_AUTHKEYS` -- comment out the lines that call ssh-authkeys, in the rc file. * `GL_WILDREPOS_DEFPERMS` -- if you need this, add a `POST_CREATE` script that does it. Or email me and I will write it for you. * `UPDATE_CHAINS_TO` -- use a [vref][] instead. You can directly use the chained-to script as a VREF; it'll work. * `ADMIN_POST_UPDATE_CHAINS_TO` -- add your script to the `POST_COMPILE` trigger chain. You won't be getting any arguments but for the admin repo the only argument that ever comes in is "refs/heads/master" anyway. * `GL_ADC_PATH` -- obsolete; use [commands][] or add [your own][dev-notes]. * `GL_ALL_INCLUDES_SPECIAL` -- obsolete; @all always includes gitweb and daemon now. Use [deny-rules][] if you want to say `R = @all` but not have it be visible to gitweb or daemon. * `GL_PERFLOGT` -- see the entry for "gl-time" in the [alternative implementations][g2alt] page. **DROPPED** variables (no impact/low impact): these variables should not actually affect anything anyway, so even if you had them set you should not feel their loss. * `GL_CONF`, `GL_KEYDIR`, and `GL_CONF_COMPILED` -- you had no business touching these anyway; if you did, move them into the expected default locations before attempting to run `gitolite setup` * `GL_PACKAGE_HOOKS` -- not needed anymore, but check if you had any custom hooks set there and copy them across. * `GL_WILDREPOS` -- dropped; this feature is default now. * `GL_BIG_CONFIG` -- dropped; this feature is default now. **RENAMED** variables (no impact): these are functionally the same but are renamed. * `REPO_UMASK` is now `UMASK` * `GL_GITCONFIG_KEYS` is now `GITCONFIG_KEYS` * `GL_WILDREPOS_PERM_CATS` is now the ROLES hash in the rc file * `GL_SITE_INFO` is not `SITE_INFO`