## #g2rcdiff rc file differences between g2 and g3 The new rc file has far fewer variables; many have been dropped. You should not see much ill effect though, but please read below. ### #rc-preset pre-setting the rc file Some of these settings are such that you cannot directly run `gitolite setup` when you're ready to migrate. Instead, you need to run # (assuming you saved your g2 rc file somewhere) gitolite print-default-rc > $HOME/.gitolite.rc $EDITOR $HOME/.gitolite.rc # make appropriate changes (see below), save gitolite setup The most serious example of this is `GL_NO_SETUP_AUTHKEYS`. If you don't preset the rc (in this case, by commenting out the 'ssh-authkeys' line) **before** running `gitolite setup`, your `~/.ssh/authorized_keys` file will get clobbered. There are several other settings that you may want to look at, with varying degrees of severity; **please go through the list below before blindly running `gitolite setup`**. (For example, if you had `GL_NO_DAEMON_NO_GITWEB` in g2 but forgot to comment out all the gitweb and daemon update lines in the rc file, your projects.list and git-daemon-export-ok files might get clobbered. Of course this is less severe than ssh authkeys but still...). ### 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 high 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. Personally, I think people who use spaces and other funky characters in dir/file names should be shot but luckily no one listens to me :-) * `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` -- uncomment the 'renice 10' line in the rc file. You can also change the 10 to something else if you wish. * `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 now `SITE_INFO`