[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