Rootmanual:Importera gamla cvsprojekt till LSVN

Från Lysators datorhandbok, den ultimata referensen.
Hoppa till: navigering, sök

Att importera gamla cvsprojekt till LSVN

Om någon vill börja använda LSVN till ett projekt som redan har använt CVS eller Subversion på något annat ställe tidigare så gör man såhär för att importera den gamla historiken:

  1. Se till att användaren har skapat projektet i administrationsgränssnittet, och att hen har väntat en kvart. Be sedan om en dumpfil från Subversion.

    En dumpfil skapas med svnadmin dump /usr/share/svnroot eller motsvarande. Om projektet tidigare använt CVS kan man använda cvs2svn för att konvertera sitt CVS-repository till Subversion-format. Det här får användaren fixa själv, om du inte känner dig väldigt hjälpsam.

  2. Logga in på plantagenet.lysator.liu.se - OBS: Ej cvs.lysator.liu.se, ssh-demonerna är något olika uppsatta.
  3. Flytta undan det som LSVN skapat, och skapa ett nytt Subversion-repository:
    cd /svnroot
    mv <projektnam> <projektnam>.orig
    svnadmin create --fs-type fsfs /svnroot/<projektnam>
  4. Ladda in dumpfilen:
    svnadmin load -q /svnroot/<projektnamn> < /tmp/<projektnam>.dump

    Det här steget tog ca 45 minuter när LysKOM-servern importerades.

  5. Kopiera in post-commit-hooken:
    cp -a <projektnam>.orig/hooks/post-commit <projektnam>/hooks/
    
  6. Kontrollera att allt ser rätt ut:
    diff -r -u <projektnam> <projektnam>.orig\
    |grep -v '^Only in <projektnam>/db/revprops: '\
    |grep -v '^Only in <projektnam>/db/revs: '

    Det är normalt med skillnader i db/current, db/revprops/0, och db/uuid.

  7. Fixa till rättigheterna. Allt utom hooks/post-commit ska ägas av nobody, och ha grupp _svn_<projektnam>. Dessutom ska gruppen www-user ha läsrättigheter.
    cd /svnroot/<projektnam>
    chown -R nobody:_svn_<projektnamn> .
    chown root hooks/post-commit
    setfacl -b -R .
    chmod 2570 `find . -type d -print`
    chmod 460 db/current 
    chmod 460 db/fs-type 
    chmod 460 db/uuid 
    chmod 460 db/write-lock 
    hooks/post-commit
    ls -ld `find . -type d -print`
    

    Det sista kommandot ska ge utmatning som liknar denna:

    dr-xrws---+ 7 nobody _svn_lyskom-server  4096 2005-12-19 09:09 .
    dr-xrws---+ 2 nobody _svn_lyskom-server  4096 2005-12-19 09:09 ./conf
    dr-xrws---+ 2 nobody _svn_lyskom-server  4096 2005-12-19 09:09 ./dav
    dr-xrws---+ 5 nobody _svn_lyskom-server  4096 2005-12-19 09:59 ./db
    dr-xrws---+ 2 nobody _svn_lyskom-server 69632 2005-12-19 09:59 ./db/revprops
    dr-xrws---+ 2 nobody _svn_lyskom-server 69632 2005-12-19 09:59 ./db/revs
    dr-xrws---+ 2 nobody _svn_lyskom-server  4096 2005-12-19 09:59 ./db/transactions
    dr-xrws---+ 2 nobody _svn_lyskom-server  4096 2005-12-19 10:09 ./hooks
    dr-xrws---+ 2 nobody _svn_lyskom-server  4096 2005-12-19 09:09 ./locks
    
  8. Klart!