[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: compiling subversion repository
From:       Andreas Hartmann <andihartmann () freenet ! de>
Date:       2005-05-06 12:37:54
Message-ID: 427B6522.5050906 () pD9F86D64 ! dip0 ! t-ipconnect ! de
[Download RAW message or body]

Sorry, there are so many questions concerning the migration from cvs to
svn. I hope, I'll get some help, to migrate successfully to svn.

Michael Pyne schrieb:
> On Friday 06 May 2005 03:43 am, Andreas Hartmann wrote:
>> Hello,
>>
>> I saw subversion the first time and read the few docus and mails from kde
>> to subversion.
>>
>> For trying, I downloaded from http://ktown.kde.org/~coolo/svn/ the arts
>> container and deflated it and couldn't find any real source-files like in
>> cvs. It looks like this:
> 
> The files are in a hidden .svn directory.

and can be created with
ausgang@susi:/temp/arts > svn revert -R .

as you wrote at the end.

> You should use the 'svn info' command in that directory to find out what URL 
> the sources were checked out from.
> 
> After that, use 'svn switch --relocate' (you'll probably want to see the 
> output of svn help switch first) to change the repository URL to whatever 
> repo you're using.

ausgang@susi:/temp/arts > svn switch --relocate
svn+ssh://mueller@svn.kde.org:/home/kde/trunk/KDE/arts
https://anonsvn.kde.org/home/kde/trunk/KDE/arts
svn: PROPFIND request failed on '/home/kde/trunk/KDE/arts'
svn: PROPFIND of '/home/kde/trunk/KDE/arts': could not connect to server
(https://anonsvn.kde.org)

Hmm, why do I have to be online to replace the URL in my repository?

Is it possible to relocate it to a branch, too? How?



I want to migrate a CVS-Branch to svn-branch. I tested refinecvs.pl but I
wasn't able to get it working, because I don't understand all of the
options from refinecvs.pl. I tried it like this:

refinecvs.pl -v -tn /home/kde/trunk/KDE/kdelibs/KDE_3_4_BRANCH -bn
KDE_3_4_BRANCH AHartmann /temp/kdelibs /temp/kdelibs-svn

but refinecvs couldn't detect any file.


This is the help-output from refinecvs.pl:

Error: Need tagauthor parameter
refinecvs.pl version 0.76.783
Copyright (c) 2003 Lev Serebryakov <lev@serebryakov.spb.ru>
Distributed under terms of BSD license. See LICENSE file.

Syntax: refinecvs.pl [-v|-p] [-sd] [-ld] [-m] [-dcm SIZE] [-rcm SIZE]
                     [-t timeout] [-ad PRECENT] [-mp] [-l PATH1,PATH2...]
                     [-tn NAME] [-bn NAME] [-gn NAME] [-vtn NAME] [-vgn NAME]
                     [-sh] [-aw] [-iv] [-is SYM1,SYM2,...]
                     [-sp CHILD1=PARENT1,CHILD2.CHILD3=PARENT2,...]
                     [-e ID1,ID2,...] [-w ID1,ID2,...] [-i ID1,ID2,...]
                     tagauthor CVSROOT svn-dump

     -v           -- Verbose output. Go to stdout (errors to stderr).
                     This option could be repeated to get more verbose
                     output.
                     This option could not be used with `-p'.

     -p           -- Progress output. Go to stdout (errors to stderr).
                     When progress output is turned on, every pass
                     will print progress meter, but will not be print
                     any internal information, as in verbose mode.
                     This option could not be used with `-v'.

     -sd          -- Save dump of internal state after each pass.
                     File will be named after path to repository.
                     Only one dump file will be created, it will be updated
                     after each pass.

     -ld          -- Load dump of internal state before work. Dump must be
                     prepared with `-sd' option. If load was successful,
                     script will start from next pass, not from begin.

     -m           -- Pre-allocate memory for big objects. It slightly slow
                     down first pass but could improve performance for all
                     other passes.

     -dcm SIZE    -- Set size of diffs memory cache. Default is 0, so, cache
                     for diffs is disabled. Cache is working with MRU
strategy.
                     If this value is too small, performance will be lost.
                     This cache used when SVN dump is produced to store diffs
                     from RCS files.
                     Size can be given as number with optional suffix `b',
`k',
                     or `m' (bytes, kilobytes, megabytes). Default is bytes.

     -rcm SIZE    -- Set size of results memory cache. Default is 0, so, cache
                     for results is disabled. Cache is working with MRU
                     strategy. If this value is too small, performance will be
                     lost.
                     This cache used when SVN dump is produced to store
checked
                     out revisions from RCS files.
                     Size can be given as number with optional suffix `b',
`k',
                     or `m' (bytes, kilobytes, megabytes). Default is bytes.

     -t tiemout   -- Time between checkins, when two checkins with same log
                     message will not treated as one "atomic" checkin.
                     Default is 600 seconds (10 minutes). Could be given as
                     number with optional `s' (default), `m' or `h' suffix
                     (seconds, minutes or hours).

     -ad PERCENT  -- Allow deletions when create branches & tags. By default,
                     whole directories are copied in one operation, only if
                     all content of directory should be branched/tagged. This
                     option allows to use copy-and-delete algorithm for
                     branching/tagging. If percent of files, which disallow
                     to copy directory as whole, less, than given percent,
then
                     directory will be copied and these files will be deleted
                     from target path.
                     Default value is 0, so no deletions will be performed.

     -mp          -- Multi-project source (CVS) repository. By default.
                     cvs2svn thinks, that you give one project for conversion,
                     named as last part of path to CVS repository.
                     If you want to convert repository with multiple projects,
                     you should give this option. CVSROOT "project" will be
                     ignored in any case.

     -l PATH1,PATH2,...
                  -- When SVN dump is generating, given paths will not be
                     created, but used as they presents in repository
                     already.
                     This option allows you to create dumps, which will
                     contains files in already live directories.
                     For example, if you use `trunk/projX' repository
                     layout, this option allows you to add projects
                     to live repository.

     -tn NAME     -- Name for `trunk' directory in SVN repository.
                     This is template. `%p' will be replaced with
                     project's name (see `-mp' option).
                     Default is `%p/trunk'.

     -bn NAME     -- Name for `branches' directory in SVN repository.
                     This is template. `%p' will be replaced with
                     project's name (see `-mp' option), and `%n' will
                     be replaced with branche's name.
                     Default is `%p/branches/%n'.

     -gn NAME     -- Name for `tags' directory in SVN repository.
                     This is template. `%p' will be replaced with
                     project's name (see `-mp' option), and `%n' will
                     be replaced with tag's name.
                     Default is `%p/tags/%n'.

     -vtn NAME    -- Name for `vendor trunk' directory in SVN repository,
                     whcih will hold latest vendor's sources.
                     This is template. `%p' will be replaced with
                     project's name (see `-mp' option), and `%v' will
                     be replaced with vendor's name.
                     Default is `%p/vendor/%n/trunk'.

     -vgn NAME    -- Name for `vendor tags' directory in SVN repository,
                     which will hold tagged vendor's imports.
                     This is template. `%p' will be replaced with
                     project's name (see `-mp' option), `%v' will
                     be replaced with vendor's name and `%n' will be
                     replaced with tag's (release's) name.
                     Default is `%p/vendor/%n/tags'.

     -sh          -- Use special heuristic to resolve situation when symbol
                     (branch or tag) have many parents. If this heuristic is
                     turned on, no DiffSymParent event (see below) raised,
                     but used parent, which is longest prefix of this symbol
                     name. So, if RELEASE_4_0_0 have parents RELEASE_4,
                     RELEASE_4_0 and HEAD, RELEASE_4_0 will be selected
                     without any error or warning. But if here is no parent,
                     which is prefix (so, maximum prefix length is 0),
                     DiffSymParent event will be raised in any case.

     -aw          -- Allow weak symbols normalizing. If this key is passed,
                     more attempts to resolve symbols tree will be performed,
                     after strict passes weak one will be performed.

     -iv          -- Ignore all vendors machinery: vendor branches, imports,
                     etc.

     -is SYM1,... -- Ignore these symbols. If symbol is branch name,
                     whole branch will be ignored. If symbol is tag name,
                     tag will not be created. For example, you could want
                     to ignore vendor branch in most simple cases.
                     You could specify '*' as symbol name, and all symbols
                     (and all branches, etc) will be ignored.

     -sp CHILD1=PARENT1,CHILD2.CHILD3=PARENT2,...
                  -- Set parents for some symbols by hands. If given parent
                     is not full-covering parent, error is generated. Such
                     error could not be ignored.
                     You could set one parent for multiple children in once.
                     Name of trunk is HEAD.

     -e, -w, -i   -- Make some events to be errors (default), warnings
                     or nothing (ignore them). Every event could be used
                     only one time. After any of this options you should
                     list events, separated by commas. Here is list of
                     events with meanings:

                     DoubleFile -- Event occurs when one file is present in
                        directory and its `Attic'. It is very strange
                        situation, which CVS could not process well by itself.
                        If you ignore (or warning) this event, file from
                        `Attic' will be ignored.

                     FileError -- Composite event. If parsing or processing
                         of file failed in some way (some of file's events
                         rise error), whole process could be stopped (error),
                         or file could be skipped with message (warning) or
                         without one (ignore).

                     InvalidSymRev -- One of the symbols in file have invalid
                         (unparsable) revision. When it is not error, symbol
                         will be ignored for this file.

                     InvalidSymName -- One of the symbols in file have invalid
                         name. When this error is ignored, all invalid
                         characters will be replaced with %XX as it is done in
                         URLs.

                     DoubleRev -- One of the symbols in file reference two or
                         more different revisions. When it is not error,
symbol
                         will be ignored for this file.

                     UnnamedBranch -- When trees of branches is builded for
                         each file, program checks, that each branch have
                         symbol (name). It is strange to have branches
                         without symbols. But if you want to simple ignore
                         such revisions, use this event name.

                     LostBranch -- Each branch in file should have branch
                         point, and this revision should exists in file.
                         It seems, that file have serious damage, if here
                         is branch, which branch point could not be found.
                         You should think twice before make this event to be
                         warning or ignore it.

                     LostSymbol -- Each symbol (tag or branch tag) inside
                         file should reference existing revision. Normally,
                         symbol with invalid revision is error.

                     DoubleSymbol -- Normally, each branch in file have one
                         and only one name (symbol). If here are two
                         or more symbols for one branch, it is strange.
                         But in most cases you could ignore this error
                         without any problems.

                     LostRevision -- All revisions in file are linked into
                         tree. If some revision doesn't have place in such
                         tree, it seems, that file is damaged.

                     DiffSymType -- When all symbols are collected from
                         files to global table, one symbol should have
                         one meaning (tag or branch) in each file. If
                         one symbol has different meanings in different
                         files, it is error. Such error could be ignored
                         with or without message.
                         If this error is ignored, script will create
                         fictive symbols (with type added to name),
                         and strip type when create directories in
                         SVN repository.

                     DiffSymParent -- Each symbol must have a parent.
                         If parents are different in different files,
                         this error is raised. If you ignore this warning,
                         first parent will be selected.

                     NoSymParent -- Each symbol must have a parent.
                         If parents are different in different files,
                         and script could not build set of parents,
                         which will cover all files, this error is raised.
                         If you ignore this error, symbol will be ignored.

     tagauthor    -- Author of all tags and branches, which consists of
                     revisions from different authors.

     CVSROOT      -- Path to CVS repository to convert. It could be path
                     to whole CVS repository (CVSROOT "project" will be
                     skipped automatically) or one directory (project) in
                     CVS repository.

     svn-dump     -- Name of output file, for "svnadmin load" command.





Besides that, the daemon seems to be down, or is the protocol https for
anonymous user wrong?



Kind regards,
Andreas Hartmann
 
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic