gitolite/doc/g2rcdiff.mkd
Sitaram Chamarty fd98b21bf2 (doc updates)
2012-03-27 11:31:43 +05:30

5.3 KiB

#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