Renaming a project

This manipulation isn't supported by Savane, and isn't simple to implement safely.

We here provide a Savannah-specific solution as a work-around. The idea is to run ~/maintenance/rename_project.sh. However, since it's a kludgy script, you're supposed to understand how Savannah works before using it, just in case. If you don't, ask someone who does. Hopefully someone does.

The last line of output from the script shows a curl invocation. You should run that by hand, with the appropriate "gnu" or "non-gnu" argument, as shown.

Also, some parts can't be managed by Savane directly, namely the web pages and the mailing lists. Hence the script doesn't do anything for those. Some details:

Web pages

You must explicitly ask sysadmin to rename www.nongnu.org/projname or www.gnu.org/software/projname. Nothing automatically removes the old web pages otherwise, so the result is accumulating cruft.

Mailing lists

http://list.org/faq.html ("Q. How do I rename a list?") - apparently it's pretty messy to cleanly rename a list. Beware that by renaming a list, you change the archives URLs, and hence break lots of links. Stable archive links is something people often care about.

Commands:

if [ -e /var/mailman/lists/$new ]; then exit 1; fi
# list@lists.gnu.org
mv /var/mailman/lists/$old /var/mailman/lists/$new
mv /var/mailman/archives/private/$old /var/mailman/archives/private/$new
mv /var/mailman/archives/private/$old.mbox /var/mailman/archives/private/$new.mbox
if [ -h /var/mailman/archives/public/$old ]; then
  rm -f /var/mailman/archives/public/$old
  ln -sf /var/mailman/archives/private/$new /var/mailman/archives/public/$new
fi
for i in /var/mailman/data/heldmsg-$old-*; do
  if echo $i | grep 'heldmsg-'$old'-\([0-9]\+\).pck$' > /dev/null; then
    mv $i `echo $i | sed 's,heldmsg-'$old'-\([0-9]\+\).pck$,heldmsg-'$new'-\1.pck,'`
  fi
done

# mharc@lists.gnu.org
mv mbox/$old mbox/$new
mv html/$old html/$new
  • rename in Savannah database if attached to a Savannah project (using internal.in.sv.gnu.org for this is preferred):

UPDATE savane.mail_group_list SET list_name='NEW' WHERE list_name='OLD';

Scripted

For the sake of example, this is some (not all) of what the script does.

Rename the group in the database:

Change the system group name, so that Savane doesn't create a new group:

  • Change /vservers/accounts/etc/group

Rename project folders, namely cvs/svn/arch/git/hg/bzr/download.

Etc... good luck ...