CC to SVN import, Exception:Unknown branch

Moderators: chyliko, engeleb, NickEntin, ldornbusch

CC to SVN import, Exception:Unknown branch

Postby rusharma » Fri May 28, 2010 8:43 am

Hi,

I'm trying to import a vob from CC into subversion using the svnimporter tool (version:1.1-M8). The config.properties settings are such that the tool only creates the dump file, but doesn't import it. Here is the config.properties file:

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# The source repository provider,
# either cvs,cvsrcs,pvcs,mks,cc,vss or st
srcprovider=cc


###########################################################################
# Import dump settings
#
# import_dump_into_svn - If enabled then after dump creation,
# it will be imported into svn repository via svnadmin
# (you must write proper svn autoimport options)
# If svn repository is not exist it will be created.
#
# existing-svnrepos - if enables and if import enabled by previous
# option then dump will be imported into svn repository ONLY IF REPOSITORY EXISTS
#
# clear_svn_parent_dir - if enabled and import enabled then application will delete all
# existing records in svn's parent directory before import dump to it.
# (affect for full dump only)
#

import_dump_into_svn=no

#existing_svnrepos=yes

clear_svn_parent_dir=yes

# Option enables that feature:
# "Now the importer always import whole history(with possibilities like trunk-only etc.).
# It should be possible to import only current state as one revision. It is useful for
# the incremental import. In current situation we will never be able to import whole because
# of the size of the dump file."
# But see the new parameter "dump.file.sizelimit.mb" below.
#
# AFFECT FOR FULL DUMP CREATION ONLY!
use_only_last_revision_content=yes

# VM systems often allow to set a description on a versioned file (one for all revisions).
# svnimporter is able to migrate it to a svn property. Since there is no predefined
# property key for this purpose in subversion, you can configure it here. If you do
# not give a property key name, the file description will not be migrated.
# NOTE: migration of properties is presently implemented only for PVCS
#
file_description_property_key=description

# If use_file_copy is set to yes, svnimporter uses SVN file copy operations for tags and
# branches. This raises the quality of the import dramatically. On the other hand,
# it works reliably for one-shot imports only. DO NOT SET THIS TO YES if you
# want to make incremental imports to synchronize repositories; otherwise the resulting
# dump files may not be importable to SVN.
#
# If set to no, every branch and tag operation is implemented as a simple file add operation.
# The origin of the tag or branch from the trunk is not recorded.
#
# Presently, this flag is evaluated only by the import from PVCS, CVS, MKS, ClearCase.
#
use_file_copy=yes

#####################################################################################
# FILE SETTINGS
#
# full.dump.file - file name pattern for saving full dump
# incr.dump.file - file name pattern for saving incremental dump
# incr.history.file - file for saving history for incremental dump
# list.files.to - destination file for saving scm's files list
# dump.file.sizelimit.mb - rough maximum dump file size in MegaBytes. See below.

#####################################################################################
full.dump.file=full_dump_%date%.txt
incr.dump.file=incr_dump_%date%.txt
incr.history.file=incr_history.txt
list.files.to=files_%date%.txt

# svnimporter checks the size of the current dump file before dump of each revision. If
# the size (in Megabytes) exceeds this limit, a new dump file is created. For large
# source repositories and/or small size limits, a run of svnimporter will generate a
# sequence of dump files. Their actual sizes will be slightly larger than the limit
# specified here.
#
# Take care not to set the limit too small. The dump file names are distinguished
# by their date part only which has a resolution of one second. Producing one dump file
# should therefore take longer than one second.
#
# Set the value to 0 to switch off this feature.

dump.file.sizelimit.mb=400

#######################################################################################
# SVN DUMP OPTIONS
#
# trunk_path - location of "trunk" folder. Can be "." if "only_trunk" option is enabled
# branches_path - location of "branches" folder
# tags_path - location of "tags" path
# svnimporter_user_name - name of service user, which create first revision etc.
# only_trunk - if enabled then convert only trunk of repository (skip tags and branches)
#######################################################################################
trunk_path=trunk
branches_path=branches
tags_path=tags
svnimporter_user_name=SvnImporter
only_trunk=no


#######################################################################################
# SVN AUTOIMPORT OPTIONS
#
# svnadmin.executable - path to svnadmin executable
# svnadmin.repository_path - path to svn repository
# svnadmin.parent_dir - parent dir in svn repository for importing dump (must be created manually)
# svnadmin.tempdir - temp directory for svnadmin
# svnclient.executable - path to svn executable
# svnadmin.import_timeout - The value is length of time to wait in milliseconds,
# if this parameter is set and "svnadmin load" did not finished after specified length of time
# then it's process will be killed and svnimporter execution will be aborted.
# svnadmin.path_not_exist_signature - when importer checks repository path for existing
# it compares output of "svn ls" command with given string. If given string not found
# in command output and command return code is not null then importer cannot determine
# path exist or not, then exception will be thrown.
# If you runs importer not in English locale and log file contains similar as following error:
# EXCEPTION CAUGHT: org.polarion.svnimporter.svnprovider.SvnAdminException:
error during execution 'svn ls' command: svn: URL 'file:///c:/tmp/ImportFromCvs/zzzzz' existiert nicht in dieser Revision
# then you should change signature to "existiert nicht in dieser Revision"
#######################################################################################
svnadmin.executable=svnadmin.exe
svnadmin.repository_path=c:/SVN
svnadmin.parent_dir=.
svnadmin.tempdir=c:/temp/local
svnclient.executable=svn.exe
svnadmin.verbose_exec=yes
#svnadmin.import_timeout=1800000

svnadmin.path_not_exist_signature=non-existent in that revision
#svnadmin.path_not_exist_signature=existiert nicht in dieser Revision

#################################################################################
########################## CVS PROVIDER CONFIGURATION ###########################
#################################################################################

cvs.class=org.polarion.svnimporter.cvsprovider.CvsProvider
cvs.username=anonymous
cvs.password=
cvs.hostname=cvshost
cvs.repository=/var/cvs

# 1) Module name can contains filename in tail (ex.: 'test4/dir/file')
# then dump will be built for single file
# 2) If modulename=* (or .) then all modules from the repository will be converted
cvs.modulename=cvsmodule

cvs.tempdir=c:/temp/local


# some repositories uses not standart date format for
# 'log' command. (standart is yyyy/MM/dd HH:mm:ss),
# in that case you must adjust this option to actual value
# For example if you receive error
# 'java.lang.Exception: Couldn't parse date 2003/07/21 13:19:09'
# you must change this option to
#cvs.logdateformat=yyyy-MM-dd HH:mm:ss

#################################################################################
########################## CVSRCS PROVIDER CONFIGURATION ########################
#################################################################################
# This provider works with local CVS repository using RCS tools "rlog" and "co".
# Requirements:
# * You must have CVS repository on your local file system
# * You must have RCS installed
#
# Configuration:
# cvsrcs.repository_path - path to CVS repository
# cvsrcs.rlog_command - path to RCS "rlog" command (can be full path to executable,
# or name of command if it accessible via PATH)
# cvsrcs.co_command - path to RCS "co" command
# cvsrcs.logdateformat - see cvs.logdateformat
# cvsrcs.tempdir - path to temp directory

cvsrcs.class=org.polarion.svnimporter.cvsprovider.CvsRcsProvider
cvsrcs.repository_path=/var/cvs/test-file-copy
cvsrcs.rlog_command=rlog
cvsrcs.co_command=co
cvsrcs.tempdir=/tmp
#cvsrcs.logdateformat=yyyy-MM-dd HH:mm:ss

#################################################################################
########################## PVCS PROVIDER CONFIGURATION ##########################
#################################################################################

pvcs.class=org.polarion.svnimporter.pvcsprovider.PvcsProvider
pvcs.executable=pcli.exe
pvcs.projectpath=p:\\newproject
pvcs.subproject=
pvcs.tempdir=c:/temp/local
pvcs.log.dateformat=MMM dd yyyy HH:mm:ss
pvcs.log.datelocale=en
pvcs.log.encoding=Cp1251
#pvcs.log.datetimezone=Europe/Berlin
pvcs.verbose_exec=yes
#pvcs.username=
#pvcs.password=

# If you set keep_vlogfile to "yes", and there already exist vlog.tmp and files.tmp
# files in the tempdir from a previous run of svnimporter, these files will not
# be regenerated. This is useful in some special situations, for example when you
# want to make sure you import the same state of the PVCS archive as before.
#
# pvcs.keep_vlogfile=yes

# If import_attributes=yes, svnimporter will try to map the PVCS archive attributes
# to SVN properties. However, it is usually better to use the auto-props feature of Subversion
# to set properties during the import.
#
# pvcs.import_attributes=yes

# The bug was occasionally observed during import of big projects
# (many files/revisions) and heavy PVCS load (probably).
# This bug is actually caused by invalid behaviour of pcli.exe get command,
# which sometimes returns invalid file content (wich less than 0.1% probability)
# if pvcs.validate_checkouts set to "yes" then importer will detect this bug
# and try to fix it.
# It may slow down import process because each checkout will be performed twice (at least)

pvcs.validate_checkouts=yes

#################################################################################
########################## VSS PROVIDER CONFIGURATION ###########################
#################################################################################
vss.class=org.polarion.svnimporter.vssprovider.VssProvider
vss.executable=C:\\Program Files\\Microsoft Visual Studio\\VSS\\win32\\ss.exe
vss.path=\\\\gigaltsov\\vss
vss.project=$/test2
vss.username=test
vss.password=test
vss.tempdir=c:/temp/local
vss.log.dateformat=dd.MM.yy HH:mm
vss.log.datelocale=en
vss.log.encoding=Cp1251
# if enabled - dump output of vss.executable command to stdout
vss.verbose_exec=yes


#################################################################################
########################## CLEAR CASE PROVIDER CONFIGURATION ####################
#################################################################################
cc.class=org.polarion.svnimporter.ccprovider.CCProvider
cc.executable=cleartool.exe
cc.projectpath=L:/rusharma_view/cm
cc.log.dateformat=yyyyMMdd.HHmmss
#cc.log.encoding=Cp1251
cc.log.encoding=UTF-8
cc.tempdir=c:/temp/local
cc.verbose_exec=yes

#################################################################################
########################## MKS PROVIDER CONFIGURATION ###########################
#################################################################################
mks.class=org.polarion.svnimporter.mksprovider.MksProvider
mks.executable=C:/Program Files/MKS/IntegrityClient/bin/si.exe
mks.project=c:/temp/mks_project/project.pj
mks.log.dateformat=MMM dd, yyyy - hh:mm aa
mks.log.datelocale=ru
mks.log.encoding=ibm866
mks.tempdir=c:/temp/local
mks.verbose_exec=yes

#################################################################################
########################## STAR TEAM PROVIDER CONFIGURATION #####################
#################################################################################
st.class=org.polarion.svnimporter.stprovider.STProvider
### NOTE: The Star Team provider requires the external jar file to access the
### repository. The file has name starteam80.jar and can be found in the Star
### Team installation folder. Copy this jar into the importer lib folder, before
### using the Star Team provider.

#st.url=username:password@server:port/Project/View/Folder
#st.url=username:password@server:port/Project/View
#st.url=username:password@server:port/Project
st.tempdir=D:/temp/starteam/temp

# you can specify an include and/or exclude regular expression that will be
# matched against the view relative path of an item
# (hint: the path is relative and uses "/" as the path separator)
#st.includes.regex=
#st.excludes.regex

# a property file for translating user names (format: logonname=StarTeam Full Name)
# Note: this us useful to translate verbose StarTeam names to Subversion logon names (without spaces)
# if you set a file here each unhandled user name will be replaced with svnimporter_user_name)
# default value: not set (which means no conversion)
#st.usermappings=usermappings.properties

# can be set to completely skip lables
#st.ignorelables=yes

# should we try separating commits using linked change requests?
# Note: Not all StarTeam projects are suitable for this option.
# this option is likly to create overlapping commits; an exception
# is thrown in the case that this overlapping will break the subversion
# dump. You are requested to deactivate this option in that case.
# default value: no
#st.separatecommitsusingcrs=yes

# a properties file to translate cr numbers (eg. 242=JIRA-142)
# default value: not set (which means no conversion)
#st.crmappings=crmappings.properties

# can be set to automatically attach a list of linked crs to a commit message
# Note: whether or not this is enabled, the list of linked CRs is always set ad
# a svn property; this property just attaches it to the commit message
# default value: no
#st.attachlinkedcrs=yes

# the time span in seconds that should be considered as one single commit
# Note: must be from the same author
# Note2: It might happen that the author changed the same file multiple
# times within the specified timespan. In this case, all changes will appear
# as only ONE single commit and only ONE single change. If you don't want
# this behavior you should not set checkintimespan or set it to 0.
# A message is logged with severity INFO in such cases. Thus, you can check your
# log files afterwards.
# Note3: This can also create overlapping commits. Example:
# st.checkintimespan=300
# 15:01 userA starts committing
# 15:02 userB starts committing
# 15:04 userA finishes committing
# (time when userB finishes committing doesn't matter)
# This maybe because StarTeam was slow ;). Anyway, the importer checks this case
# and issues a WARNING message. It then further checks that the following
# (overlapping) commit does not conflict with the commit. If a conflict
# is detected the conversion process is aborted and you are requested to
# take further actions (eg. reduce checkintimespan).

#st.checkintimespan=300



#################################################################################
########################## LOG4J CONFIGURATION ##################################
#################################################################################
log4j.rootLogger=DEBUG, file

#log4j.logger.cz=DEBUG, file
#log4j.logger.cz=DEBUG, stdout

log4j.logger.historyLogger=DEBUG, historyFile

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=svnimporter.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%t] %5p %c{1}:%L - %m%n

log4j.appender.historyFile=org.apache.log4j.FileAppender
log4j.appender.historyFile.File=history.log
log4j.appender.historyFile.layout=org.apache.log4j.PatternLayout
log4j.appender.historyFile.layout.ConversionPattern=%m%n

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%c{1}:%L %5p - %m%n


#################################################################################
############################### DEBUG OPTIONS ###################################
#################################################################################
#
# do not delete provider's temporary files
#

disable_cleanup=no
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

I'm running this on windows, the command is: run.bat full config.properties.

The dump creations runs fine for a while, but errors out at a particular place with the error being:

05:18:25,218 [main] INFO historyLogger:84 - EXCEPTION CAUGHT: org.polarion.svnimporter.svnprovider.SvnException: Unknown branch: dev_kdea_test_setevent
at org.polarion.svnimporter.svnprovider.SvnModel.getBranch(SvnModel.java:210)
at org.polarion.svnimporter.svnprovider.SvnModel.changeFile(SvnModel.java:423)
at org.polarion.svnimporter.ccprovider.internal.CCTransform.transformRevision(CCTransform.java:192)
at org.polarion.svnimporter.ccprovider.internal.CCTransform.transformCommit(CCTransform.java:98)
at org.polarion.svnimporter.ccprovider.internal.CCTransform.transform(CCTransform.java:81)
at org.polarion.svnimporter.ccprovider.CCProvider.buildSvnModel(CCProvider.java:129)
at org.polarion.svnimporter.main.Main.buildFullSvnModel(Main.java:147)
at org.polarion.svnimporter.main.Main.run(Main.java:82)
at org.polarion.svnimporter.main.Main.main(Main.java:49)

05:18:25,218 [main] DEBUG CCProvider:80 - cleanup
05:18:25,218 [main] INFO historyLogger:84 - duration: 468 seconds


Can someone please help out on this and let me know what can be done to resolve this?

Thanks,
R.
rusharma
 
Posts: 3
Joined: Fri May 28, 2010 8:32 am

Re: CC to SVN import, Exception:Unknown branch

Postby gusmorco » Mon Jul 26, 2010 4:40 pm

Hi, Can you make the svn import?
gusmorco
 
Posts: 1
Joined: Fri Jul 23, 2010 7:42 pm

Re: CC to SVN import, Exception:Unknown branch

Postby kencorbin » Fri Jul 30, 2010 2:32 am

Alas, that just about has to be a bug in the importer. :(

Which version are you running. There is a newer 1.2 version is available (instructions can be found in the first topic on this forum). It is very unlikely that the new version will fix your problem, but we can always hope. But that version has a record/playback feature that is probably going to be the fastest way to fix this. It has two new settings in config.properties. If you set
record.mode=record-stubs
record.file=<filename>
and run the migration, it will record all interactions the importer has with Clearcase in the specified filename. You can send me that file and your configuration file and I can use them to replicate the problem even though I don't have a Clearcase systems.

Good luck,
-Ken
kencorbin
 
Posts: 132
Joined: Fri Nov 16, 2007 10:30 pm
Location: Corvallis, OR


Return to Polarion SVN Importer (Repository Converter)

Who is online

Users browsing this forum: Yahoo [Bot] and 2 guests