123 lines
4.9 KiB
Markdown
123 lines
4.9 KiB
Markdown
|
## #g2migr migrating from g2
|
||
|
|
||
|
<font color="red">
|
||
|
|
||
|
**This document is a *MUST* read if you are currently using g2 and want to
|
||
|
move to g3.**
|
||
|
|
||
|
</font>
|
||
|
|
||
|
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`
|