From vss2svn at nogga.de Thu Mar 1 04:25:20 2007 From: vss2svn at nogga.de (Dirk) Date: Thu Mar 1 04:25:32 2007 Subject: /usr/local/bin/ssphys: unrecognized file during LOADVSSNAMES In-Reply-To: <1FB9AF4C-D49D-4994-AB9F-71CFB5C39D7E@paradigmone.com.au> References: <45E61758.9090001@nogga.de> <33A9D75E-89ED-452B-8D73-C89CCCF9E8FD@paradigmone.com.au> <1FB9AF4C-D49D-4994-AB9F-71CFB5C39D7E@paradigmone.com.au> Message-ID: <45E69C00.4020002@nogga.de> > > (gdb) print m_Header > $4 = { > size = 1342177280, > type = "HN", > checksum = -23990 > } > > The size looks way too big. It's equal to the first 4 bytes of the > file (0x50000000) (see od dump below). gdb says: > > (gdb) print sizeof(m_Header) > $5 = 8 > > Does this indicate the compilation problem? If so, what kind of > compiler arguments should I be looking into? I've not done any C++ > programming ever, but have done C (long long time ago). No it indicates a byte order problem. Are you running on a Mac? The code was written for intel, where we have the LSB ordering. The fist 4 bytes should read 0x00000050, a length of 0x50 bytes. Dirk From mjuffermans at paradigmone.com.au Thu Mar 1 06:17:20 2007 From: mjuffermans at paradigmone.com.au (Marcel Juffermans) Date: Thu Mar 1 06:17:31 2007 Subject: /usr/local/bin/ssphys: unrecognized file during LOADVSSNAMES In-Reply-To: <45E69C00.4020002@nogga.de> References: <45E61758.9090001@nogga.de> <33A9D75E-89ED-452B-8D73-C89CCCF9E8FD@paradigmone.com.au> <1FB9AF4C-D49D-4994-AB9F-71CFB5C39D7E@paradigmone.com.au> <45E69C00.4020002@nogga.de> Message-ID: Yes, it's a Mac. Is there a standard way to convert little endian to big endian that you know of? Looking at SSTypes.h there aren't that many places where a conversion would need to happen. I'm happy to submit patches, if I have a code snippet that can do the conversion. - Marcel On 01/03/2007, at 8:25 PM, Dirk wrote: > >> >> (gdb) print m_Header >> $4 = { >> size = 1342177280, >> type = "HN", >> checksum = -23990 >> } >> >> The size looks way too big. It's equal to the first 4 bytes of the >> file (0x50000000) (see od dump below). gdb says: >> >> (gdb) print sizeof(m_Header) >> $5 = 8 >> >> Does this indicate the compilation problem? If so, what kind of >> compiler arguments should I be looking into? I've not done any C++ >> programming ever, but have done C (long long time ago). > No it indicates a byte order problem. Are you running on a Mac? The > code was written for intel, where we have the LSB ordering. The > fist 4 bytes should read 0x00000050, a length of 0x50 bytes. > > Dirk > > _______________________________________________ > vss2svn-users mailing list > Project homepage: > http://www.pumacode.org/projects/vss2svn/ > Subscribe/Unsubscribe/Admin: > http://lists.pumacode.org/mailman/listinfo/vss2svn-users- > lists.pumacode.org > Mailing list web interface (with searchable archives): > http://dir.gmane.org/gmane.comp.version- > control.subversion.vss2svn.user > > From vss2svn at nogga.de Thu Mar 1 06:47:28 2007 From: vss2svn at nogga.de (Dirk) Date: Thu Mar 1 06:47:31 2007 Subject: /usr/local/bin/ssphys: unrecognized file during LOADVSSNAMES In-Reply-To: References: <45E61758.9090001@nogga.de> <33A9D75E-89ED-452B-8D73-C89CCCF9E8FD@paradigmone.com.au> <1FB9AF4C-D49D-4994-AB9F-71CFB5C39D7E@paradigmone.com.au> <45E69C00.4020002@nogga.de> Message-ID: <45E6BD50.3000908@nogga.de> Marcel Juffermans schrieb: > Yes, it's a Mac. Is there a standard way to convert little endian to > big endian that you know of? Looking at SSTypes.h there aren't that > many places where a conversion would need to happen. I'm happy to > submit patches, if I have a code snippet that can do the conversion. > I expect, that these are a few places where you have to change the encoding. I simply copy the bytes from the file into a buffer and later "cast" this to the specific record. You can not simply reverse the order of the buffer. You have to do it for each POD and each non trivial type. You can check the SSTypes.h file. In this files all used PODs are defined. Starting from there you can search for the specific variables, that need to be converted. I searched at koders.com for an easy way to convert the encoding. In the Crypto++ project they used functions like ByteReverse for each type. You could conditionally define these functions to be empty on non MSB platforms. Have a look here: http://www.koders.com/?s=ByteReverse&scope=MRQTFFSB89LYUL924H2V49DP2C&la=Cpp I don't have much time this week, otherwise I would help out. So this is only a little information Dirk From ferry at hupie.com Thu Mar 1 06:50:11 2007 From: ferry at hupie.com (Ferry Huberts) Date: Thu Mar 1 06:50:18 2007 Subject: /usr/local/bin/ssphys: unrecognized file during LOADVSSNAMES In-Reply-To: <45E6BD50.3000908@nogga.de> References: <45E61758.9090001@nogga.de> <33A9D75E-89ED-452B-8D73-C89CCCF9E8FD@paradigmone.com.au> <1FB9AF4C-D49D-4994-AB9F-71CFB5C39D7E@paradigmone.com.au> <45E69C00.4020002@nogga.de> <45E6BD50.3000908@nogga.de> Message-ID: <56077.217.169.232.211.1172749811.squirrel@hupie.xs4all.nl> try looking at the ntoh and hton macros in the linux kernel. these convert between big endian and little endian -- Ferry Huberts > Marcel Juffermans schrieb: >> Yes, it's a Mac. Is there a standard way to convert little endian to >> big endian that you know of? Looking at SSTypes.h there aren't that >> many places where a conversion would need to happen. I'm happy to >> submit patches, if I have a code snippet that can do the conversion. >> > I expect, that these are a few places where you have to change the > encoding. I simply copy the bytes from the file into a buffer and later > "cast" this to the specific record. You can not simply reverse the order > of the buffer. You have to do it for each POD and each non trivial type. > You can check the SSTypes.h file. In this files all used PODs are > defined. Starting from there you can search for the specific variables, > that need to be converted. > > I searched at koders.com for an easy way to convert the encoding. In the > Crypto++ project they used functions like ByteReverse for each type. You > could conditionally define these functions to be empty on non MSB platforms. > > Have a look here: > http://www.koders.com/?s=ByteReverse&scope=MRQTFFSB89LYUL924H2V49DP2C&la=Cpp > > I don't have much time this week, otherwise I would help out. So this is > only a little information > > Dirk > > _______________________________________________ > vss2svn-users mailing list > Project homepage: > http://www.pumacode.org/projects/vss2svn/ > Subscribe/Unsubscribe/Admin: > http://lists.pumacode.org/mailman/listinfo/vss2svn-users-lists.pumacode.org > Mailing list web interface (with searchable archives): > http://dir.gmane.org/gmane.comp.version-control.subversion.vss2svn.user > From stephen.lee at hexagonmetrology.com Thu Mar 1 07:33:12 2007 From: stephen.lee at hexagonmetrology.com (Stephen Lee) Date: Thu Mar 1 07:33:26 2007 Subject: /usr/local/bin/ssphys: unrecognized file during LOADVSSNAMES In-Reply-To: <45E6BD50.3000908@nogga.de> References: <45E61758.9090001@nogga.de> <33A9D75E-89ED-452B-8D73-C89CCCF9E8FD@paradigmone.com.au> <1FB9AF4C-D49D-4994-AB9F-71CFB5C39D7E@paradigmone.com.au> <45E69C00.4020002@nogga.de> <45E6BD50.3000908@nogga.de> Message-ID: <45E6C808.9010209@wilcoxassoc.com> Dirk wrote: > > I expect, that these are a few places where you have to change the > encoding. I simply copy the bytes from the file into a buffer and later > "cast" this to the specific record. You can not simply reverse the order > of the buffer. You have to do it for each POD and each non trivial type. > One way is to have the structure members be a class for a back-to-front byte order rather than a simple int. Here are a couple of classes that I used for a similar case - these just sit in the bigger data structure in place of a "normal" unsigned member and on access appear to be a regular unsigned int/short. 32 bit case, and adjusting the 24 bit case to swap byte order the other way left as an exercise to the reader... class unsigned24rev { public: inline const unsigned24rev &operator=(unsigned long Data) { lo=(unsigned char)Data; mid=(unsigned char)(Data>>8); hi=(unsigned char)(Data>>16); return *this; } inline operator unsigned long(void) const { return lo | (((unsigned long)mid)<<8) | (((unsigned long)hi)<<16); } private: unsigned char hi; unsigned char mid; unsigned char lo; }; class unsigned16rev { public: inline const unsigned16rev &operator=(unsigned short Data) { revData=(unsigned short)((Data<<8) | (Data >>8)); return *this; } inline operator unsigned short(void) const { return (unsigned short)((revData<<8) | (revData>>8)); } private: unsigned short revData; }; -- Stephen Lee Software Engineer, Vision Group - Pro-Measure Leader Wilcox Associates Inc. (U.K.) From toby at etjohnson.us Thu Mar 1 11:04:45 2007 From: toby at etjohnson.us (Toby Johnson) Date: Thu Mar 1 11:04:49 2007 Subject: /usr/local/bin/ssphys: unrecognized file during LOADVSSNAMES In-Reply-To: References: <45E61758.9090001@nogga.de> <33A9D75E-89ED-452B-8D73-C89CCCF9E8FD@paradigmone.com.au> <1FB9AF4C-D49D-4994-AB9F-71CFB5C39D7E@paradigmone.com.au> <45E69C00.4020002@nogga.de> Message-ID: <45E6F99D.4030803@etjohnson.us> Marcel Juffermans wrote: > Yes, it's a Mac. Is there a standard way to convert little endian to > big endian that you know of? Looking at SSTypes.h there aren't that > many places where a conversion would need to happen. I'm happy to > submit patches, if I have a code snippet that can do the conversion. Marcel, I'm afraid such talk of byte ordering is quite a bit out of my realm of knowledge, but this sounds like a rather non-trivial change that may involve multiple people, so if you decide to work on this then I'd be happy to create a branch for you and grant you and/or others commit access for this purpose, rather than having to pass patches back and forth. toby From flavio.stanchina at ies.it Fri Mar 2 06:43:36 2007 From: flavio.stanchina at ies.it (Flavio Stanchina) Date: Fri Mar 2 06:46:55 2007 Subject: [PATCH] Add option --incremental: one dump file per revision, and a small patch to ssphys Message-ID: <45E80DE8.1000006@ies.it> Hello, this is my first message to the list and first set of patches to vss2svn, so forgive me if I'm doing something wrong. For example, I'm not sure if you prefer to receive patches via the mailing list or via the ticket system, but the mailing list seemed the better option to me. The first patch adds option --incremental to vss2svn.pl that makes it create one dump file per revision. I'm converting 10 years of commits and working with a single dump file was not an option (the first test dump was about 2.2 GB; now I trimmed a few unused projects and some large files and I'm down to a few hundred megabytes). Note that my Perl skills are rather limited (let's say nonexistant) and I tried to keep changes to a minimum so the actual implementation may be open to improvements, but I can tell you it works because it just converted 11074 revisions overnight. The second patch makes ssphys/SSPhysLib/SSFiles.cpp spell which file it's not recognizing. I was getting that error and it turned out to be a problem with uppercase/lowercase filenames, as I'm doing the conversion on Linux. I added a note to that effect to the TODO. -- Flavio Stanchina Informatica e Servizi Trento - Italy -------------- next part -------------- Index: script/vss2svn.pl =================================================================== --- script/vss2svn.pl (revision 301) +++ script/vss2svn.pl (working copy) @@ -813,9 +813,12 @@ my $fh; my $file = $gCfg{dumpfile}; - open $fh, ">$file" - or &ThrowError("Could not create dumpfile '$file'"); + if (!$gCfg{incremental}) { + open $fh, ">$file" + or &ThrowError("Could not create dumpfile '$file'"); + } + my($sql, $sth, $action_sth, $row, $revision, $actions, $action, $physname, $itemtype); my %exported = (); @@ -836,14 +839,26 @@ $action_sth = $gCfg{dbh}->prepare($sql); my $autoprops = Vss2Svn::Dumpfile::AutoProps->new($gCfg{auto_props}) if $gCfg{auto_props}; - my $dumpfile = Vss2Svn::Dumpfile->new($fh, $autoprops); + my $dumpfile; + if (!$gCfg{incremental}) { + $dumpfile = Vss2Svn::Dumpfile->new($fh, $autoprops); + } + REVISION: while(defined($row = $sth->fetchrow_hashref() )) { my $t0 = new Benchmark; $revision = $row->{revision_id}; + if ($gCfg{incremental}) { + my $paddedRev = sprintf("%06d", $revision); + $file = "$gCfg{dumpfile}.$paddedRev"; + open $fh, ">$file" + or &ThrowError("Could not create dumpfile '$file'"); + $dumpfile = Vss2Svn::Dumpfile->new($fh, $autoprops); + } + $dumpfile->begin_revision($row); # next REVISION if $revision == 0; @@ -869,6 +884,12 @@ $dumpfile->do_action($action, $exported{$physname}); } + + if ($gCfg{incremental}) { + $dumpfile->finish(); + close $fh; + } + print "revision $revision: ", timestr(timediff(new Benchmark, $t0)),"\n" if $gCfg{timing}; } @@ -879,8 +900,10 @@ map { &ThrowWarning($_) } @err; } - $dumpfile->finish(); - close $fh; + if (!$gCfg{incremental}) { + $dumpfile->finish(); + close $fh; + } } # End CreateSvnDumpfile @@ -1583,6 +1606,7 @@ GetOptions(\%gCfg,'vssdir=s','tempdir=s','dumpfile=s','resume','verbose', 'debug','timing+','task=s','revtimerange=i','ssphys=s', + 'incremental', 'encoding=s','trunkdir=s','auto_props=s'); &GiveHelp("Must specify --vssdir") if !defined($gCfg{vssdir}); @@ -1716,6 +1740,9 @@ default is ./_vss2svn --dumpfile : specify the subversion dumpfile to be created; default is ./vss2svn-dumpfile.txt + --incremental : one dump file per revision; + the files will be named .NNNNNN + --revtimerange : specify the difference between two ss actions that are treated as one subversion revision; default is 3600 seconds (== 1hour) -------------- next part -------------- Index: ssphys/SSPhysLib/SSFiles.cpp =================================================================== --- ssphys/SSPhysLib/SSFiles.cpp (revision 301) +++ ssphys/SSPhysLib/SSFiles.cpp (working copy) @@ -213,7 +213,7 @@ } if (fileTypeMap.find (type) == fileTypeMap.end ()) - throw SSException ("unrecognized file"); + throw SSException (std::string ("unrecognized file: ").append(fileName)); switch (fileTypeMap[type]) { Index: ssphys/TODO =================================================================== --- ssphys/TODO (revision 301) +++ ssphys/TODO (working copy) @@ -1,6 +1,7 @@ TODO: +++ General +++ + * handle uppercase/lowercase filenames [flavio] * better exception handling and error reporting + better command line argument handling (boost::program_options) * handle the missing actions From Aaron.Larson at Honeywell.com Sun Mar 4 21:15:37 2007 From: Aaron.Larson at Honeywell.com (Larson, Aaron) Date: Sun Mar 4 21:17:06 2007 Subject: vss2svn exits silently Message-ID: I used the 0.11.0-alpha, and nightly-20070214 releases to convert one of our VSS databases, and it seems to have worked pretty well (I did run into the "Unrecognized File Error" with alpha 0.11.0, but a --debug run and deleting the zero length file fixed it up just fine). The second database didn't convert. I ran with --debug and without and the error messages seem not to differ from the ones I saw with the successful convert. Just for giggles I deleted all the empty files in the second database, but the convert still failed. The last thing output by vss2svn was: TASK: IMPORTSVN then it just exited. The last thing written to the dumpfile.txt was: Revision-number: 45 Prop-content-length: 144 Content-length: 144 K 7 svn:log V 41 Entrie contents of borland 5.0.2 IDE CD. K 8 svn:date V 27 2000-12-05T14:17:08.000000Z K 10 svn:author V 8 Diethelm PROPS-END Node-path: tools/installs/devsuites/borland/borland-5-0-2.zip Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 343179847 Any chance 343MB is too big for a single file/commit? I'm running the executable from a Cygwin bash script on a windows XP host using "nohup". I can provide (information from) the output log if that would help. The non debug version is about 22KB, the debug version is ~120MB. From toby at etjohnson.us Sun Mar 4 21:41:37 2007 From: toby at etjohnson.us (Toby Johnson) Date: Sun Mar 4 21:41:42 2007 Subject: [PATCH] Add option --incremental: one dump file per revision, and a small patch to ssphys In-Reply-To: <45E80DE8.1000006@ies.it> References: <45E80DE8.1000006@ies.it> Message-ID: <45EB8361.8080209@etjohnson.us> Flavio Stanchina wrote: > Hello, this is my first message to the list and first set of patches to > vss2svn, so forgive me if I'm doing something wrong. For example, I'm not > sure if you prefer to receive patches via the mailing list or via the > ticket system, but the mailing list seemed the better option to me. > > The first patch adds option --incremental to vss2svn.pl that makes it > create one dump file per revision. I'm converting 10 years of commits and > working with a single dump file was not an option (the first test dump was > about 2.2 GB; now I trimmed a few unused projects and some large files and > I'm down to a few hundred megabytes). > > Note that my Perl skills are rather limited (let's say nonexistant) and I > tried to keep changes to a minimum so the actual implementation may be open > to improvements, but I can tell you it works because it just converted > 11074 revisions overnight. > Hello Flavio, thanks for the patches; submitting them via the mailing list is fine. I'm not sure what the goal is of creating one dumpfile per revision? Are you manipulating those files somehow afterwards? Or is it just an issue that the files were too big to transfer? > The second patch makes ssphys/SSPhysLib/SSFiles.cpp spell which file it's > not recognizing. I was getting that error and it turned out to be a problem > with uppercase/lowercase filenames, as I'm doing the conversion on Linux. I > added a note to that effect to the TODO. > The patch to write the filename seems reasonable, but I'm not sure what you think should be done to handle upper/lowercase names on Linux. We certainly can't try 2^8 filename combinations for each file. I've never tried the conversion on Linux myself; doesn't it always look for an all-uppercase name? In that case we should probably instruct people to always make sure their filenames are all-uppercase. toby From Aaron.Larson at honeywell.com Sun Mar 4 22:32:41 2007 From: Aaron.Larson at honeywell.com (Larson, Aaron (SWCOE)) Date: Sun Mar 4 22:32:48 2007 Subject: [PATCH] Add option --incremental: one dump file per revision, and a small patch to ssphys In-Reply-To: <45EB8361.8080209@etjohnson.us> Message-ID: >>>>> "TJ" == Toby writes: TJ> ... but I'm not sure what you think should be done to handle TJ> upper/lowercase names on Linux. I'm not a perl guy, but if I were doing this in Python, I'd use the listdir() function and then do a case insensitive search over the resulting list (probably only if the original open failed). From toby at etjohnson.us Mon Mar 5 01:21:41 2007 From: toby at etjohnson.us (Toby Johnson) Date: Mon Mar 5 01:21:46 2007 Subject: [PATCH] Add option --incremental: one dump file per revision, and a small patch to ssphys In-Reply-To: References: Message-ID: <45EBB6F5.1040500@etjohnson.us> Larson, Aaron (SWCOE) wrote: >>>>>> "TJ" == Toby writes: >>>>>> > > TJ> ... but I'm not sure what you think should be done to handle > TJ> upper/lowercase names on Linux. > > I'm not a perl guy, but if I were doing this in Python, I'd use the > listdir() function and then do a case insensitive search over the > resulting list (probably only if the original open failed). > Yeah, that sounds pretty reasonable... there's not a single "listdir" in Perl, just opendir(), readdir() and closedir(). Probably best to read it only once, and create a hash that maps expected names to physical filesystem names on Linux. I'll add your patch for the incremental files when I get a chance; even though I'm not sure of the utility of it it's not a very big change. toby From Aaron.Larson at Honeywell.com Mon Mar 5 15:55:55 2007 From: Aaron.Larson at Honeywell.com (Larson, Aaron (MN65)) Date: Mon Mar 5 15:56:13 2007 Subject: vss2svn exits silently In-Reply-To: Message-ID: >>>>> "AL" == Aaron Larson writes: AL> ... The last thing output by vss2svn was: AL> TASK: IMPORTSVN AL> then it just exited. AL> The last thing written to the dumpfile.txt was: ... AL> Text-content-length: 343179847 AL> Any chance 343MB is too big for a single file/commit? I replaced the 343MB VSS file with a dummy text file. Then the convert succeeded. However the svnadmin load failed with: svnadmin: File not found: transaction '496-1', path 'labels/...' Where "..." is a long project specific path. vss2svn generated lots of odd error messages: and lots of messages describing likely DB corruption errors. If it would be helpful to others, I'm willing to debug the causes, but I think this means I'm hooped. The following is a highly edited list of the output in case it is helpful. -------------------------------------------------------------------------- $ ./vss2svn --vssdir ../sample-deos could not find ParserDetails.ini in /PerlApp/XML/SAX Connecting to database ./_vss2svn/vss_data.db ======== VSS2SVN ======== BEGINNING CONVERSION... Start Time : Mon Mar 5 15:45:48 USMST 2007 VSS Dir : ../sample-deos Temp Dir : ./_vss2svn Dumpfile : vss2svn-dumpfile.txt VSS Encoding : windows-1252 VSS2SVN ver : 0.11.0-nightly.292 SSPHYS exe : ssphys SSPHYS ver : 0.22.0.275 XML Parser : XML::SAX::Expat TASK: INIT TASK: LOADVSSNAMES TASK: FINDDBFILES TASK: GETPHYSHIST WARNING: control character 0x03 in text input at character 1 ... WARNING: wrong checksum WARNING: wrong checksum ssphys: unknwon record type "?7" detected (offset 0x8f7) Try `ssphys --help` for more information ERROR -- FAILED with non-zero exit status 255 (cmd: "ssphys" info -ewindows-1252 "../sample-deos/data/O/OBVAAAAA") at vss2svn.pl line 1128 Merging LabelComment and Comment for 'ZCAAAAAA;34' TASK: MERGEPARENTDATA TASK: MERGEMOVEDATA ERROR -- Multiple chidl recs for parent MOVE rec '80716' at vss2svn.pl line 620 ERROR -- Multiple chidl recs for parent MOVE rec '107537' at vss2svn.pl line 620 TASK: BUILDACTIONHIST Use of uninitialized value in concatenation (.) or string at /PerlApp/Vss2Svn/ActionHandler.pm line 449. Use of uninitialized value in join or string at vss2svn.pl line 777. ERROR -- Attempt to add entry 'EDAAAAAA' with unknown version number (probably destroyed) at vss2svn.pl line 733 Repeated several hundred times ERROR -- No more active itempath to commit to 'ZNCAAAAA': ZNCAAAAA, at vss2svn.pl line 733 ERROR -- Attempt to commit unknown item 'UBSAAAAA': Use of uninitialized value in concatenation (.) or string at /PerlApp/Vss2Svn/ActionHandler.pm line 520. Use of uninitialized value in concatenation (.) or string at /PerlApp/Vss2Svn/ActionHandler.pm line 271. Use of uninitialized value in join or string at vss2svn.pl line 777. Use of uninitialized value in concatenation (.) or string at /PerlApp/Vss2Svn/ActionHandler.pm line 636. Use of uninitialized value in concatenation (.) or string at /PerlApp/Vss2Svn/ActionHandler.pm line 636. ... ERROR -- Attempt to share unknown item 'KROBAAAA': ... ERROR -- Attempt to add entry 'FEPBAAAA' with unknown version number (probably destroyed) at vss2svn.pl line 733 ... TASK: IMPORTSVN ssphys: reverse delta: failed to read necessary amount of data from input file Try `ssphys --help` for more information ERROR -- FAILED with non-zero exit status 255 (cmd: "ssphys" get -b -v1 --force-overwrite -ewindows-1252 "../sample-deos/data/E/ERQBAAAA" ./_vss2svn/vssdata/ER/ERQBAAAA) at vss2svn.pl line 1128 ssphys: reverse delta: invalid patch length in delta record Try `ssphys --help` for more information ERROR -- FAILED with non-zero exit status 255 (cmd: "ssphys" get -b -v10 --force-overwrite -ewindows-1252 "../sample-deos/data/F/FNTBAAAA" ./_vss2svn/vssdata/FN/FNTBAAAA) at vss2svn.pl line 1128 ERROR -- Attempt to re-add directory '/' at revision 1, skipping action: possibly missing delete at vss2svn.pl line 879 ERROR -- Attempt to move item '/tools/installs/assemblers/borland/' to '/tools/installs/assemblers/win32/borland/' at revision 48, but source doesn't exists: possibly missing recover; skipping at vss2svn.pl line 879 ERROR -- Parent path missing while trying to add item '/tools/installs/assemblers/win32/borland/LICENSE-REQUIRED' at revision 52: adding missing parents at vss2svn.pl line 879 ... ERROR -- Attempt to commit to non-existant file '/deos/libs/Makefile' at revision 8266, changing to add; possibly missing recover at vss2svn.pl line 879 ... ERROR -- Attempt to pin non-existing item 'btree-height2.jpg' at revision 25161: possibly missing recover; skipping at vss2svn.pl line 879 ============================================================================= ERROR SUMMARY GETPHYSHIST: FAILED with non-zero exit status 255 (cmd: "ssphys" info -ewindows-1252 "../sample-deos/data/O/OBVAAAAA") at vss2svn.pl line 1128 MERGEMOVEDATA: Multiple chidl recs for parent MOVE rec '80716' at vss2svn.pl line 620 Multiple chidl recs for parent MOVE rec '107537' at vss2svn.pl line 620 BUILDACTIONHIST: No more active itempath to commit to 'ZNCAAAAA': ZNCAAAAA, Attempt to commit unknown item 'UBSAAAAA': Attempt to share unknown item 'KROBAAAA': Attempt to pin unknown item 'DROBAAAA': IMPORTSVN: FAILED with non-zero exit status 255 (cmd: "ssphys" get -b -v1 --force-overwrite -ewindows-1252 "../sample-deos/data/E/ERQBAAAA" ./_vss2svn/vssdata/ER/ERQBAAAA) at vss2svn.pl line 1128 FAILED with non-zero exit status 255 (cmd: "ssphys" get -b -v10 --force-overwrite -ewindows-1252 "../sample-deos/data/F/FNTBAAAA" ./_vss2svn/vssdata/FN/FNTBAAAA) at vss2svn.pl line 1128 Attempt to re-add directory '/' at revision 1, skipping action: possibly missing delete at vss2svn.pl line 879 Attempt to move item '/tools/installs/assemblers/borland/' to '/tools/installs/assemblers/win32/borland/' at revision 48, but source doesn't exists: possibly missing recover; skipping at vss2svn.pl line 879 Parent path missing while trying to add item '/tools/installs/assemblers/win32/borland/LICENSE-REQUIRED' at revision 52: adding missing parents at vss2svn.pl line 879 Parent path missing while trying to add item '/orphaned/_IDAAAAAA/abom/' at revision 95: adding missing parents at vss2svn.pl line 879 Parent path missing while trying to add item '/orphaned/_MDAAAAAA/ansi/' at revision 97: adding missing parents at vss2svn.pl line 879 Attempt to commit to non-existant file '/deos/libs/Makefile' at revision 8266, changing to add; possibly missing recover at vss2svn.pl line 879 at vss2svn.pl line 879 Attempt to delete non-existent item 'tps008a1.cpp' at revision 14279: possibly missing recover/add/share; skipping at vss2svn.pl line 879 ============================================================================= END OF CONVERSION The VSS to SVN conversion is complete. You should now use the "svnadmin load" command to load the generated dumpfile 'vss2svn-dumpfile.txt'. The "svnadmin" utility is provided as part of the Subversion command-line toolset; use a command such as the following: svnadmin load < "vss2svn-dumpfile.txt" You may need to precede this with "svnadmin create " if you have not yet created a repository. Type "svnadmin help " for more information on "create" and/or "load". If any errors occurred during the conversion, they are summarized above. For more information on the vss2svn project, see: http://www.pumacode.org/projects/vss2svn/ Started at : Mon Mar 5 15:45:48 USMST 2007 Ended at : Mon Mar 5 18:16:02 USMST 2007 Elapsed time : 02:30:14 (H:M:S) VSS Actions read : 80925 SVN Revisions converted : 26027 Date range (YYYY/MM/DD) : 1994/11/21 to 2007/01/15 From vss2svn at nogga.de Mon Mar 5 16:16:29 2007 From: vss2svn at nogga.de (Dirk) Date: Mon Mar 5 16:16:53 2007 Subject: BUG: control character in text input --> not well-formed In-Reply-To: <34493.217.169.232.211.1172737118.squirrel@hupie.xs4all.nl> References: <24113.217.169.232.211.1172651023.squirrel@hupie.xs4all.nl> <45E591BC.4060800@nogga.de> <34493.217.169.232.211.1172737118.squirrel@hupie.xs4all.nl> Message-ID: <45EC88AD.4050009@nogga.de> Hello Ferry, I have analyzed the problem and this is one of the cases that I don't know how to handle. I have removed all private information and will post this answer publically. The reason is, that you have a garbaged record in your database. The problem is, that one of the garbaged cacharcters is 12d or 0x0c, the letter "FF" in the windows-1252 or ANSI codepage.This character is passed through unchanged since it is only a "space control character". No the big question: How to deal with the situation? 1.) Does analyze detect this problem and fix the broken record? 2.) Shall we exclude the character from beeing outputted within "ssphys"? 3.) Shall we filter the character in vss2svn? As a workaround you can modify the line 1105 in vss2svn.pl [1] to also include the "x0c" character. > $gSysOut =~ s/[\x00-\x09\x0c\x11\x12\x14-\x1F\x81\x8D\x8F\x90\x9D]/_/g; # just to be sure But what is the general solution? Best regards Dirk [1] http://www.pumacode.org/projects/vss2svn/browser/trunk/script/vss2svn.pl#L1105 >> This happens, when vss goes crazy. One of your records is completly >> corrupted. Could you please send me also the ANPAAAAA file without any >> extension? Then I will have a look, whether we can fix this. >> >>> While trying to convert a VSS database to subversion I encountered this: >>> >>> "ssphys" info -ewindows-1252 "w:/data/A/ANPAAAAA" >>> WARNING: control character 0x12 in text input at character 2 >>> WARNING: control character 0x01 in text input at character 1 >>> WARNING: control character 0x01 in text input at character 1 >>> WARNING: control character 0x12 in text input at character 2 >>> >>> not well-formed (invalid token) at line 23, column 16, byte 804 at /PerlApp/XML/ Parser.pm line 187 >>> >>> after which the conversion process stops. >>> >>> anybody an idea as how to solve this? >>> I tried UTF-8 encoding but then the process already stops in LOADVSSNAMES >>> >>> ssphys 0.22.0, Build 275 >>> vss2svn-nightly-20070214.zip >>> >>> debug output below >>> >>> ------ debug output ------ >>> physdir: "w:/data", physfolder: "A" physname: "ANPAAAAA" >>> "ssphys" info -ewindows-1252 "w:/data/A/ANPAAAAA" >>> WARNING: control character 0x12 in text input at character 2 >>> WARNING: control character 0x01 in text input at character 1 >>> WARNING: control character 0x01 in text input at character 1 >>> WARNING: control character 0x12 in text input at character 2 >>> >>> >>> >>> ... >>> >>> >>> ∞┘ >>> ? >>> ? >>> ♀σ >>> >>> >>> From vss2svn at nogga.de Mon Mar 5 16:22:41 2007 From: vss2svn at nogga.de (Dirk) Date: Mon Mar 5 16:22:47 2007 Subject: vss2svn exits silently In-Reply-To: References: Message-ID: <45EC8A21.5080102@nogga.de> First of all, before going into the details, did you run "analyze -f -v4" on your database? Probably you could also try a "-d" to delete dead files. It seems, that you have a few broken physical files in your database, that can lead to a lot of problematic situations, since part of the history is lost. Debugging this will be a nightmare, but could help in order to stabilize the code to deal with almost all worst situations. But first try to run analyze. Best regards Dirk Larson, Aaron (MN65) schrieb: >>>>>> "AL" == Aaron Larson writes: >>>>>> > > AL> ... The last thing output by vss2svn was: > AL> TASK: IMPORTSVN > AL> then it just exited. > > AL> The last thing written to the dumpfile.txt was: ... > AL> Text-content-length: 343179847 > > AL> Any chance 343MB is too big for a single file/commit? > > I replaced the 343MB VSS file with a dummy text file. Then the > convert succeeded. However the svnadmin load failed with: > > svnadmin: File not found: transaction '496-1', path 'labels/...' > > Where "..." is a long project specific path. > > vss2svn generated lots of odd error messages: and lots of messages > describing likely DB corruption errors. If it would be helpful to > others, I'm willing to debug the causes, but I think this means I'm > hooped. > > The following is a highly edited list of the output in case it is helpful. > > -------------------------------------------------------------------------- > > $ ./vss2svn --vssdir ../sample-deos > could not find ParserDetails.ini in /PerlApp/XML/SAX > Connecting to database ./_vss2svn/vss_data.db > > ======== VSS2SVN ======== > BEGINNING CONVERSION... > Start Time : Mon Mar 5 15:45:48 USMST 2007 > > > VSS Dir : ../sample-deos > Temp Dir : ./_vss2svn > Dumpfile : vss2svn-dumpfile.txt > VSS Encoding : windows-1252 > > VSS2SVN ver : 0.11.0-nightly.292 > SSPHYS exe : ssphys > SSPHYS ver : 0.22.0.275 > XML Parser : XML::SAX::Expat > > TASK: INIT > TASK: LOADVSSNAMES > TASK: FINDDBFILES > TASK: GETPHYSHIST > WARNING: control character 0x03 in text input at character 1 > ... > WARNING: wrong checksum > WARNING: wrong checksum > ssphys: unknwon record type "?7" detected (offset 0x8f7) > Try `ssphys --help` for more information > ERROR -- FAILED with non-zero exit status 255 (cmd: "ssphys" info -ewindows-1252 "../sample-deos/data/O/OBVAAAAA") > at vss2svn.pl line 1128 > Merging LabelComment and Comment for 'ZCAAAAAA;34' > TASK: MERGEPARENTDATA > TASK: MERGEMOVEDATA > ERROR -- Multiple chidl recs for parent MOVE rec '80716' > at vss2svn.pl line 620 > ERROR -- Multiple chidl recs for parent MOVE rec '107537' > at vss2svn.pl line 620 > TASK: BUILDACTIONHIST > Use of uninitialized value in concatenation (.) or string at /PerlApp/Vss2Svn/ActionHandler.pm line 449. > Use of uninitialized value in join or string at vss2svn.pl line 777. > ERROR -- Attempt to add entry 'EDAAAAAA' with unknown version number (probably destroyed) > at vss2svn.pl line 733 > > Repeated several hundred times > > ERROR -- No more active itempath to commit to 'ZNCAAAAA': > ZNCAAAAA, > at vss2svn.pl line 733 > > ERROR -- Attempt to commit unknown item 'UBSAAAAA': > > Use of uninitialized value in concatenation (.) or string at /PerlApp/Vss2Svn/ActionHandler.pm line 520. > Use of uninitialized value in concatenation (.) or string at /PerlApp/Vss2Svn/ActionHandler.pm line 271. > Use of uninitialized value in join or string at vss2svn.pl line 777. > Use of uninitialized value in concatenation (.) or string at /PerlApp/Vss2Svn/ActionHandler.pm line 636. > Use of uninitialized value in concatenation (.) or string at /PerlApp/Vss2Svn/ActionHandler.pm line 636. > ... > ERROR -- Attempt to share unknown item 'KROBAAAA': > > ... > ERROR -- Attempt to add entry 'FEPBAAAA' with unknown version number (probably destroyed) > at vss2svn.pl line 733 > ... > TASK: IMPORTSVN > ssphys: reverse delta: failed to read necessary amount of data from input file > Try `ssphys --help` for more information > ERROR -- FAILED with non-zero exit status 255 (cmd: "ssphys" get -b -v1 --force-overwrite -ewindows-1252 "../sample-deos/data/E/ERQBAAAA" ./_vss2svn/vssdata/ER/ERQBAAAA) > at vss2svn.pl line 1128 > ssphys: reverse delta: invalid patch length in delta record > Try `ssphys --help` for more information > ERROR -- FAILED with non-zero exit status 255 (cmd: "ssphys" get -b -v10 --force-overwrite -ewindows-1252 "../sample-deos/data/F/FNTBAAAA" ./_vss2svn/vssdata/FN/FNTBAAAA) > at vss2svn.pl line 1128 > ERROR -- Attempt to re-add directory '/' at revision 1, skipping action: possibly missing delete > at vss2svn.pl line 879 > ERROR -- Attempt to move item '/tools/installs/assemblers/borland/' to '/tools/installs/assemblers/win32/borland/' at revision 48, but source doesn't exists: possibly missing recover; skipping > at vss2svn.pl line 879 > ERROR -- Parent path missing while trying to add item '/tools/installs/assemblers/win32/borland/LICENSE-REQUIRED' at revision 52: adding missing parents > at vss2svn.pl line 879 > ... > ERROR -- Attempt to commit to non-existant file '/deos/libs/Makefile' at revision 8266, changing to add; possibly missing recover > at vss2svn.pl line 879 > ... > ERROR -- Attempt to pin non-existing item 'btree-height2.jpg' at revision 25161: possibly missing recover; skipping > at vss2svn.pl line 879 > ============================================================================= > ERROR SUMMARY > > > GETPHYSHIST: > FAILED with non-zero exit status 255 (cmd: "ssphys" info -ewindows-1252 "../sample-deos/data/O/OBVAAAAA") > at vss2svn.pl line 1128 > > MERGEMOVEDATA: > Multiple chidl recs for parent MOVE rec '80716' > at vss2svn.pl line 620 > Multiple chidl recs for parent MOVE rec '107537' > at vss2svn.pl line 620 > > BUILDACTIONHIST: > No more active itempath to commit to 'ZNCAAAAA': > ZNCAAAAA, > Attempt to commit unknown item 'UBSAAAAA': > Attempt to share unknown item 'KROBAAAA': > Attempt to pin unknown item 'DROBAAAA': > > IMPORTSVN: > FAILED with non-zero exit status 255 (cmd: "ssphys" get -b -v1 --force-overwrite -ewindows-1252 "../sample-deos/data/E/ERQBAAAA" ./_vss2svn/vssdata/ER/ERQBAAAA) > at vss2svn.pl line 1128 > FAILED with non-zero exit status 255 (cmd: "ssphys" get -b -v10 --force-overwrite -ewindows-1252 "../sample-deos/data/F/FNTBAAAA" ./_vss2svn/vssdata/FN/FNTBAAAA) > at vss2svn.pl line 1128 > Attempt to re-add directory '/' at revision 1, skipping action: possibly missing delete > at vss2svn.pl line 879 > Attempt to move item '/tools/installs/assemblers/borland/' to '/tools/installs/assemblers/win32/borland/' at revision 48, but source doesn't exists: possibly missing recover; skipping > at vss2svn.pl line 879 > Parent path missing while trying to add item '/tools/installs/assemblers/win32/borland/LICENSE-REQUIRED' at revision 52: adding missing parents > at vss2svn.pl line 879 > Parent path missing while trying to add item '/orphaned/_IDAAAAAA/abom/' at revision 95: adding missing parents > at vss2svn.pl line 879 > Parent path missing while trying to add item '/orphaned/_MDAAAAAA/ansi/' at revision 97: adding missing parents > at vss2svn.pl line 879 > Attempt to commit to non-existant file '/deos/libs/Makefile' at revision 8266, changing to add; possibly missing recover > at vss2svn.pl line 879 > at vss2svn.pl line 879 > Attempt to delete non-existent item 'tps008a1.cpp' at revision 14279: possibly missing recover/add/share; skipping > at vss2svn.pl line 879 > ============================================================================= > END OF CONVERSION > > The VSS to SVN conversion is complete. You should now use the "svnadmin load" > command to load the generated dumpfile 'vss2svn-dumpfile.txt'. The "svnadmin" > utility is provided as part of the Subversion command-line toolset; use a > command such as the following: > svnadmin load < "vss2svn-dumpfile.txt" > > You may need to precede this with "svnadmin create " if you have not > yet created a repository. Type "svnadmin help " for more information on > "create" and/or "load". > > If any errors occurred during the conversion, they are summarized above. > > For more information on the vss2svn project, see: > http://www.pumacode.org/projects/vss2svn/ > > Started at : Mon Mar 5 15:45:48 USMST 2007 > Ended at : Mon Mar 5 18:16:02 USMST 2007 > Elapsed time : 02:30:14 (H:M:S) > > VSS Actions read : 80925 > SVN Revisions converted : 26027 > Date range (YYYY/MM/DD) : 1994/11/21 to 2007/01/15 > > _______________________________________________ > vss2svn-users mailing list > Project homepage: > http://www.pumacode.org/projects/vss2svn/ > Subscribe/Unsubscribe/Admin: > http://lists.pumacode.org/mailman/listinfo/vss2svn-users-lists.pumacode.org > Mailing list web interface (with searchable archives): > http://dir.gmane.org/gmane.comp.version-control.subversion.vss2svn.user > > > > From fetis26 at gmail.com Tue Mar 6 11:37:03 2007 From: fetis26 at gmail.com (=?koi8-r?B?88XSx8XKIObF1MnTy8nO?=) Date: Tue Mar 6 13:25:19 2007 Subject: windows-1251 Message-ID: Hi all. I tried convert our old VSS repository this way C:\temp\vss2svn>vss2svn.exe --vssdir C:\temp\XXXX --encoding="Windows-1251" and got error Couldn't open encmap windows-1251.enc: No such file or directory at /PerlApp/XML/Parser.pm line 187 What I should do to fix the problem? -- Fetiskin Sergey http://stella-npf.ru From toby at etjohnson.us Tue Mar 6 14:32:06 2007 From: toby at etjohnson.us (Toby Johnson) Date: Tue Mar 6 14:32:11 2007 Subject: windows-1251 In-Reply-To: References: Message-ID: <45EDC1B6.3040000@etjohnson.us> ?????? ???????? wrote: > Hi all. I tried convert our old VSS repository this way > > C:\temp\vss2svn>vss2svn.exe --vssdir C:\temp\XXXX > --encoding="Windows-1251" > > and got error > > Couldn't open encmap windows-1251.enc: > No such file or directory > at /PerlApp/XML/Parser.pm line 187 > > What I should do to fix the problem? Have you seen this wiki entry? http://www.pumacode.org/projects/vss2svn/wiki/VssEncodingIssues From Aaron.Larson at honeywell.com Tue Mar 6 14:57:24 2007 From: Aaron.Larson at honeywell.com (Larson, Aaron (SWCOE)) Date: Tue Mar 6 14:57:45 2007 Subject: vss2svn exits silently In-Reply-To: <45EC8A21.5080102@nogga.de> Message-ID: >>>>> "D" == Dirk writes: D> First of all, before going into the details, did you run "analyze D> -f -v4" on your database? Probably you could also try a "-d" to D> delete dead files. I was told that the database had been analyzed. Hard to say if that is true or not. I ran analyze -f, that generated a number of errors, I ran -f -d, that fixed some, but I had to delete some files, then ran analyze -f -d again, still showed bad files, so I ran it again (-f -d). The last time the analyze log file only showed one interesting line: There is a diff chain size mismatch in file 'RequirementsStatus.txt' at version 171 (versions earlier than that version can no longer be retrieved from the database. Ok, so I ran vss2svn again, and the output log looks very similar to what I previously posted. The svnadmin load generated the same error message, but with a very slightly different revision (previously it was '4096-1'): svnadmin: File not found: transaction '4905-1', path 'labels/..../tpk242/tpk_TestFile.dat' Which is the same file it previously died on. D> It seems, that you have a few broken physical files in your D> database, that can lead to a lot of problematic situations, since D> part of the history is lost. D> Debugging this will be a nightmare, but could help in order to D> stabilize the code to deal with almost all worst situations. I'm willing to spend some time debugging this, but its not *critical* to our operations (we can continue to use read only VSS for these legacy files), so I don't want to spend other folks time unless it would be generally helpful. On the other hand, it would be *useful* to us, hence my willingness to debug. From Aaron.Larson at honeywell.com Tue Mar 6 15:07:06 2007 From: Aaron.Larson at honeywell.com (Larson, Aaron (SWCOE)) Date: Tue Mar 6 15:07:20 2007 Subject: vss2svn exits silently In-Reply-To: <45EC8A21.5080102@nogga.de> Message-ID: >>>>> "D" == Dirk writes: D> First of all, before going into the details, did you run "analyze D> -f -v4" on your database? Probably you could also try a "-d" to D> delete dead files. I didn't notice this guidance on the wiki. Should I add it? Something like this: Before running vss2svn you should make sure your VSS repository does not contain serious errors. Run the VSS ANALYZE tool like this: cd ...database mkdir analyze-results vssbinPath/ANALYZE.EXE -banalyze-results -v4 -i- data If errors are shown, then attempt to fix the problems. The microsoft bulletin http://support.microsoft.com/kb/152807 has descriptions of how to fix various defects. If there are still problems: mkdir analyze-results-fix vssbinPath/ANALYZE.EXE -banalyze-results-fix -f -d -v4 -i- data If the analyze-results/analyze.bad file lists any files, then they are corrupt. Sometimes it may be necessary to delete files listed in the analyze.bad file and their associated log. E.g., if anaylze.bad lists data/d/dcxaaaaa, then delete data/d/dcxaaaaa*. Then re-run analyze into a new directory: mkdir analyze-results-again ...analyze... -banalyze-results-again... until there are no errors. I'm not a VSS admin, so the above may be way off base. From vss2svn at nogga.de Tue Mar 6 17:37:54 2007 From: vss2svn at nogga.de (Dirk) Date: Tue Mar 6 17:38:08 2007 Subject: vss2svn exits silently In-Reply-To: References: Message-ID: <45EDED42.5040606@nogga.de> > I didn't notice this guidance on the wiki. Should I add it? > Something like this: > Yes, please go ahead. Dirk From vss2svn at nogga.de Tue Mar 6 17:45:38 2007 From: vss2svn at nogga.de (Dirk) Date: Tue Mar 6 17:45:47 2007 Subject: vss2svn exits silently In-Reply-To: References: Message-ID: <45EDEF12.2020702@nogga.de> I also wanted to ask, whether you used the nightly build. There where some improvement with labels. I see in your output, that you also have used moves. Could you please try the attached patch also? This improves move handling, but is untested. In order to help you more, I need to have a look at the generated database files, or you try yourself to track the events in the VssAction file. Esp. what happend to the file in revision 4905 and what was the flow of events for this file before this revision. The revision to actionId mapping is in the SvnRevisionVssAction database file. You can also send me the files in a private mail, so I can have a look. Best regards Dirk Larson, Aaron (SWCOE) schrieb: >>>>>> "D" == Dirk writes: >>>>>> > > D> First of all, before going into the details, did you run "analyze > D> -f -v4" on your database? Probably you could also try a "-d" to > D> delete dead files. > > I was told that the database had been analyzed. Hard to say if that > is true or not. I ran analyze -f, that generated a number of errors, > I ran -f -d, that fixed some, but I had to delete some files, then ran > analyze -f -d again, still showed bad files, so I ran it again (-f > -d). The last time the analyze log file only showed one interesting > line: > > There is a diff chain size mismatch in file 'RequirementsStatus.txt' > at version 171 (versions earlier than that version can no longer be > retrieved from the database. > > Ok, so I ran vss2svn again, and the output log looks very similar to > what I previously posted. The svnadmin load generated the same error > message, but with a very slightly different revision (previously it > was '4096-1'): > > svnadmin: File not found: transaction '4905-1', path > 'labels/..../tpk242/tpk_TestFile.dat' > > Which is the same file it previously died on. > > D> It seems, that you have a few broken physical files in your > D> database, that can lead to a lot of problematic situations, since > D> part of the history is lost. > > D> Debugging this will be a nightmare, but could help in order to > D> stabilize the code to deal with almost all worst situations. > > I'm willing to spend some time debugging this, but its not *critical* > to our operations (we can continue to use read only VSS for these > legacy files), so I don't want to spend other folks time unless it > would be generally helpful. On the other hand, it would be *useful* > to us, hence my willingness to debug. > > _______________________________________________ > vss2svn-users mailing list > Project homepage: > http://www.pumacode.org/projects/vss2svn/ > Subscribe/Unsubscribe/Admin: > http://lists.pumacode.org/mailman/listinfo/vss2svn-users-lists.pumacode.org > Mailing list web interface (with searchable archives): > http://dir.gmane.org/gmane.comp.version-control.subversion.vss2svn.user > > > > -------------- next part -------------- Index: vss2svn.pl =================================================================== --- vss2svn.pl (revision 300) +++ vss2svn.pl (working copy) @@ -611,49 +611,61 @@ $rows = $sth->fetchall_arrayref( {} ); my($childrecs, $child, $id); - my @delchild = (); foreach $row (@$rows) { - $row->{actiontype} = 'MOVE'; + $row->{actiontype} = 'MOVE_TO'; $childrecs = &GetChildRecs($row, 1); + my $source = undef; + my $target = $row->{parentphys}; + if (scalar @$childrecs > 1) { - &ThrowWarning("Multiple chidl recs for parent MOVE rec " + &ThrowWarning("Multiple child recs for parent MOVE rec " . "'$row->{action_id}'"); } - foreach $child (@$childrecs) { - my $update; - $update = $gCfg{dbh}->prepare('UPDATE PhysicalAction SET info = ?' - . 'WHERE action_id = ?'); - - $update->execute( $row->{parentphys}, $child->{action_id} ); + if (scalar @$childrecs >= 1) { + # only merge MOVE records that have the same timestamp + if ($row->{timestamp} == @$childrecs[0]->{timestamp}) { + $source = @$childrecs[0]->{parentphys}; + &DeleteChildRec(@$childrecs[0]->{action_id}); + } } - - if (scalar @$childrecs == 0) { - my $sql = <<"EOSQL"; + + my $sql = <<"EOSQL"; UPDATE PhysicalAction SET + actiontype = 'MOVE', parentphys = ?, - actiontype = 'MOVE', info = ? WHERE action_id = ? EOSQL - my $update; - $update = $gCfg{dbh}->prepare($sql); - $update->execute( undef, $row->{parentphys}, - $row->{action_id}); - } else { - push(@delchild, $row->{action_id}); - } + my $update; + $update = $gCfg{dbh}->prepare($sql); + + $update->execute( $target, $source, $row->{action_id}); } - foreach $id (@delchild) { - &DeleteChildRec($id); + + # change all remaining MOVE_TO records into MOVE records and swap the src and target + $sth = $gCfg{dbh}->prepare('SELECT * FROM PhysicalAction ' + . 'WHERE actiontype = "MOVE_TO"'); + $sth->execute(); + $rows = $sth->fetchall_arrayref( {} ); + + foreach $row (@$rows) { + my $update; + $update = $gCfg{dbh}->prepare('UPDATE PhysicalAction SET ' + . 'actiontype = "MOVE", ' + . 'parentphys = ?, ' + . 'info = ? ' + . 'WHERE action_id = ?'); + $update->execute($row->{info}, $row->{parentphys}, $row->{action_id}); } + 1; } # End MergeMoveData @@ -764,7 +776,7 @@ # May contain add'l info for the action depending on type: # RENAME: the new name (without path) # SHARE: the source path which was shared - # MOVE: the new path + # MOVE: the old path # PIN: the path of the version that was pinned # LABEL: the name of the label $row->{info} = $handler->{info}; @@ -1333,7 +1345,7 @@ AddedProject => {type => 1, action => 'ADD'}, RestoredProject => {type => 1, action => 'RESTOREDPROJECT'}, RenamedProject => {type => 1, action => 'RENAME'}, - MovedProjectTo => {type => 1, action => 'MOVE'}, + MovedProjectTo => {type => 1, action => 'MOVE_TO'}, MovedProjectFrom => {type => 1, action => 'MOVE_FROM'}, DeletedProject => {type => 1, action => 'DELETE'}, DestroyedProject => {type => 1, action => 'DELETE'}, Index: Vss2Svn/ActionHandler.pm =================================================================== --- Vss2Svn/ActionHandler.pm (revision 300) +++ Vss2Svn/ActionHandler.pm (working copy) @@ -251,13 +251,6 @@ return 0; } -# # if this is not a share+pin action, then add this item to the sharedphys -# # list. Otherwise, this item is pinned to a specific version and does not -# # participate in shared actions -# if (!defined $row->{version}) { -# push @{ $physinfo->{sharedphys} }, $row->{parentphys}; -# } - my $version = $row->{version}; $version = $physinfo->{last_version} if (!defined $version); @@ -283,13 +276,23 @@ # return $self->_add_handler(); } + # if this is a share from orphan, and not a share+pin action either, we can treat it as a move + elsif (!defined $row->{version} && # share+pin? + defined $physinfo->{orphaned} # orphaned? +# scalar @{$physinfo->{order}} == 1 # only one parent? + ) { + $physinfo->{parents}->{'_' . $row->{physname}}->{deleted} = 1; + undef $physinfo->{orphaned}; + $self->{action} = 'MOVE'; + } + # track the addition of the new parent $self->_add_parent ($physname, $row->{parentphys}); # if this is a share+pin action, then remember the pin version if (defined $row->{version}) { $physinfo->{parents}->{$row->{parentphys}}->{pinned} = $row->{version}; - } + } $self->{itempaths} = [$itempath]; $self->{info} = $sourceinfo; @@ -410,8 +413,6 @@ my($self) = @_; my $row = $self->{row}; - # Get the existing paths before the move; parent sub will get the new - # name my $physname = $row->{physname}; my $physinfo = $gPhysInfo{$physname}; @@ -422,58 +423,61 @@ return 0; } - if (!defined $row->{parentphys}) { + # row->{info} contains the source parent + # row->{parentphys} contains the target parent + + # check the source path + if (!defined $row->{info}) { # Check if this is an orphaned item - if (scalar @{$physinfo->{order}} == 1) { - $row->{parentphys} = $physinfo->{order}[0]; + if (defined $physinfo->{orphaned}) { + $row->{info} = '_' . $physname; + undef $physinfo->{orphaned}; } else { # Don't know from where to move. Share it there instead - $row->{parentphys} = $row->{info}; - $row->{info} = undef; $self->{action} = 'SHARE'; return $self->_share_handler(); } } # '$sourceinfo' is the path for the old location (the move source); - my $parentpath = $self->_get_current_parent_path (); - my $sourceinfo = $parentpath . $physinfo->{name}; # $row->{itemname}; + my $sourceparent = $self->_get_parent_path ($row->{info}); + my $sourceinfo = $sourceparent . $row->{itemname}; - if (!defined ($row->{info})) { + + # check the target path + if (!defined ($row->{parentphys})) { # the target directory was destroyed, so there is no apropriate move # target information. Fall back to a move to the orphaned cache - $row->{info} = '_' . $row->{physname}; + $physinfo->{orphaned} = 1; + $row->{parentphys} = '_' . $row->{physname}; } # '$itempath' contains the move target path - my $itempath = $self->_get_parent_path ($row->{info}) . $row->{itemname}; + my $parentpath = $self->_get_current_parent_path (); + my $itempath = $parentpath . $physinfo->{name}; # $row->{itemname}; - if (!defined($parentpath)) { + + if (!defined($sourceparent)) { # We can't figure out the path for the parent that this move came from, # so it was either destroyed or corrupted. That means that this isn't # a move anymore; it's a new add. $self->{action} = 'ADD'; -# $self->{version} = $version; -# return $self->_add_handler(); - - # we need to swap the source and the target path - $sourceinfo = $itempath; - undef $itempath; + undef $sourceinfo; } else { # set the old parent inactive - $physinfo->{parents}->{$row->{parentphys}}->{deleted} = 1; + $physinfo->{parents}->{$row->{info}}->{deleted} = 1; } # if the item mysteriously changed name during the move $physinfo->{name} = $row->{itemname}; # track the addition of the new parent - $self->_add_parent ($physname, $row->{info}); + $self->_add_parent ($physname, $row->{parentphys}); - $self->{itempaths} = [$sourceinfo]; - $self->{info} = $itempath; + $self->{itempaths} = [$itempath]; + $self->{info} = $sourceinfo; # the move target is now also a valid "copy from" itempath $self->_track_item_path ($physname, $row->{parentphys}, $physinfo->{last_version}, $itempath); @@ -745,11 +749,6 @@ return undef; } - #todo: make the behavoir of orphaned file tracking configurable -# if ($physinfo->{orphaned}) { -# return undef; -# } - $self->{physname_seen} .= "$physname, "; # In a move szenario, we can have one deleted and one active parent. We @@ -878,12 +877,6 @@ return undef; } - #todo: make the behavoir of orphaned file tracking configurable -# if ($physinfo->{orphaned}) -# { -# return undef; -# } - $self->{physname_seen} .= "$physname, "; # my @pathstoget = @@ -1169,9 +1162,7 @@ my($self, $physname, $parentphys, $version, $deleted) = @_; my $physinfo = $gPhysInfo{$physname}; - if (!defined $physinfo) { - return undef; - } + # 1. check the parent requested, if there was an item name for this version # we can use this item name, since it was valid in that time my $parent = $physinfo->{parents}->{$parentphys}; Index: Vss2Svn/Dumpfile.pm =================================================================== --- Vss2Svn/Dumpfile.pm (revision 300) +++ Vss2Svn/Dumpfile.pm (working copy) @@ -385,44 +385,50 @@ # moving in SVN is the same as renaming; add the new and delete the old - my $newpath = $data->{info}; + my $oldpath = $data->{info}; - if ($self->{repository}->exists ($newpath)) { - $self->add_error("Attempt to move item '$itempath' to '$newpath' at " + if ($self->{repository}->exists ($itempath)) { + $self->add_error("Attempt to move item '$oldpath' to '$itempath' at " . "revision $data->{revision_id}, but destination already exists: possibly " . "missing delete; skipping"); return 0; } - if (!$self->{repository}->exists ($itempath)) { - $self->add_error("Attempt to move item '$itempath' to '$newpath' at " + if (!$self->{repository}->exists ($oldpath)) { + $self->add_error("Attempt to move item '$oldpath' to '$itempath' at " . "revision $data->{revision_id}, but source doesn't exists: possibly " . "missing recover; skipping"); return 0; } my $node = Vss2Svn::Dumpfile::Node->new(); - $node->set_initial_props($newpath, $data); + $node->set_initial_props($itempath, $data); $node->{action} = 'add'; my($copyrev, $copypath); $copyrev = $data->{revision_id} - 1; - $copypath = $itempath; + $copypath = $oldpath; $node->{copyrev} = $copyrev; $node->{copypath} = $copypath; push @$nodes, $node; -# $self->track_modified($data->{physname}, $data->{revision_id}, $newpath); -# $self->track_version ($data->{physname}, $data->{version}, $newpath); + # the new move target is a valid path. + $self->track_version ($data->{physname}, $data->{version}, $itempath); $node = Vss2Svn::Dumpfile::Node->new(); - $node->set_initial_props($itempath, $data); + $node->set_initial_props($oldpath, $data); $node->{action} = 'delete'; $node->{hideprops} = 1; +# Deleted tracking is only necessary to be able to recover the item. But a move +# does not set a recover point, so we don't need to track the delete here. Additionally +# we do not have enough information for this operation. +# $self->track_deleted($data->{oldparentphys}, $data->{physname}, +# $data->{revision_id}, $oldpath); + push @$nodes, $node; } # End _move_handler @@ -559,7 +565,7 @@ # as a valid share source. if (defined ($label)) { $label =~ s:/:_:g; - + my $vssitempath = $itempath; $vssitempath =~ s/^$main::gCfg{trunkdir}//; my $labelpath = "$main::gCfg{labeldir}/$label$vssitempath"; From jan.sture.nielsen at gmail.com Wed Mar 7 02:02:21 2007 From: jan.sture.nielsen at gmail.com (Jan Nielsen) Date: Wed Mar 7 02:02:30 2007 Subject: conversion problems Message-ID: Hello, I'm using vss2svn (with --verbose) to convert a VSS repository which is just over 1GB in size but I get 9547 errors. With that many errors, I am guessing that I'm doing something incorrectly. Despite the errors, an SVN dump file of about 1.7GB is created which does load into SVN. Unfortunately, the conversion process places the entirety of the two most active VSS projects (within this repository) in an orphaned state - not a single file in these two projects show up SVN. I have executed VSS analyze with a number of "successful fixes", but the resulting VSS DB is virtually identical to the previous image, as is the vss2svn output. The (partial) output of stderr, and stdout are show below. Here's a summary of the types of errors: Attempt to add entry 'ZFXBAAAA' with unknown version number (probably destroyed) at vss2svn.pl line 706 Attempt to delete unknown item 'JQCBAAAA': at vss2svn.pl line 706 Attempt to re-add directory '/' at revision 2499, skipping action: possibly missing delete at vss2svn.pl line 851 Attempt to recover unknown item 'KQCBAAAA': at vss2svn.pl line 706 Attempt to rename unknown item 'PVBAAAAA': at vss2svn.pl line 706 Attempt to share unknown item 'JQCBAAAA': at vss2svn.pl line 706 Could not open export file './_vss2svn/vssdata/TK/TKDCAAAA.1' at vss2svn.pl line 851 IMPORTSVN: FAILED with non-zero exit status 255 at vss2svn.pl line 1092 Parent path missing while trying to add item '/orphaned/_AADBAAAA/merchants.asp' at revision 325: adding missing parents Any ideas on things to try? Many thanks, -Jan stderr: could not find ParserDetails.ini in /PerlApp/XML/SAX WARNING: Unknown action 'RestoredProject' WARNING: Unknown action 'RestoredProject' WARNING: Unknown action 'RestoredProject' WARNING: Unknown action 'RestoredProject' WARNING: Unknown action 'RestoredProject' WARNING: Unknown action 'RestoredProject' stdout: Connecting to database ./_vss2svn/vss_data.db ======== VSS2SVN ======== BEGINNING CONVERSION... Start Time : Tue Mar 6 22:14:17 2007 VSS Dir : stageweb1 Temp Dir : ./_vss2svn Dumpfile : after-analyze-fix\stageweb1-dumpfile.txt SSPHYS exe : ssphys SSPHYS ver : ssphys 0.21.0, Build 247 XML Parser : XML::SAX::Expat TASK: INIT SETTING TASK LOADVSSNAMES SETTING STEP 0 TASK: LOADVSSNAMES "ssphys" info "stageweb1/data/names.dat" STARTING CACHE FOR NameLookup COMMITTING CACHE 'NameLookup' TO DATABASE SETTING TASK FINDDBFILES SETTING STEP 0 TASK: FINDDBFILES STARTING CACHE FOR Physical COMMITTING CACHE 'Physical' TO DATABASE SETTING TASK GETPHYSHIST SETTING STEP 0 TASK: GETPHYSHIST STARTING CACHE FOR PhysicalAction "ssphys" info "stageweb1/data/A/AAAAAAAA" "ssphys" info "stageweb1/data/A/AAACAAAA" "ssphys" info "stageweb1/data/A/AABCAAAA" "ssphys" info "stageweb1/data/A/AACCAAAA" "ssphys" info "stageweb1/data/A/AADBAAAA" "ssphys" info "stageweb1/data/A/AADCAAAA" "ssphys" info "stageweb1/data/A/AAEBAAAA" "ssphys" info "stageweb1/data/A/AAFBAAAA" "ssphys" info "stageweb1/data/A/AAHBAAAA" ... (15,288 lines like this) ... SETTING STEP 0 ============================================================================= ERROR SUMMARY BUILDACTIONHIST: Attempt to add entry 'AWWBAAAA' with unknown version number (probably destroyed) at vss2svn.pl line 706 Attempt to add entry 'LWWBAAAA' with unknown version number (probably destroyed) at vss2svn.pl line 706 Attempt to add entry 'MWWBAAAA' with unknown version number (probably destroyed) at vss2svn.pl line 706 Attempt to add entry 'GEXBAAAA' with unknown version number (probably destroyed) at vss2svn.pl line 706 Attempt to add entry 'HEXBAAAA' with unknown version number (probably destroyed) at vss2svn.pl line 706 Attempt to add entry 'IEXBAAAA' with unknown version number (probably destroyed) at vss2svn.pl line 706 Attempt to add entry 'YEXBAAAA' with unknown version number (probably destroyed) at vss2svn.pl line 706 Attempt to add entry 'ZEXBAAAA' with unknown version number (probably destroyed) ... ... (19.139 lines like of the following) at vss2svn.pl line 851 Parent path missing while trying to add item '/orphaned/_PPHBAAAA/main7593_060710.asp' at revision 2347: adding missing parents at vss2svn.pl line 851 Parent path missing while trying to add item '/orphaned/_ELSBAAAA/4567bg.jpg' at revision 2415: adding missing parents at vss2svn.pl line 851 Parent path missing while trying to add item '/orphaned/_XYNBAAAA/logo.gif' at revision 2415: adding missing parents at vss2svn.pl line 851 Attempt to re-add directory '/' at revision 2499, skipping action: possibly missing delete at vss2svn.pl line 851 Could not open export file './_vss2svn/vssdata/TK/TKDCAAAA.1' at vss2svn.pl line 851 ============================================================================= END OF CONVERSION The VSS to SVN conversion is complete. You should now use the "svnadmin load" command to load the generated dumpfile 'after-analyze-fix\stageweb1- dumpfile.txt'. The "svnadmin" utility is provided as part of the Subversion command-line toolset; use a command such as the following: svnadmin load < "after-analyze-fix\stageweb1-dumpfile.txt" You may need to precede this with "svnadmin create " if you have not yet created a repository. Type "svnadmin help " for more information on "create" and/or "load". If any errors occurred during the conversion, they are summarized above. For more information on the vss2svn project, see: http://www.pumacode.org/projects/vss2svn/ Started at : Tue Mar 6 22:14:17 2007 Ended at : Tue Mar 6 22:50:44 2007 Elapsed time : 00:36:27 (H:M:S) VSS Actions read : 34111 SVN Revisions converted : 3871 Date range (YYYY/MM/DD) : 2004/12/27 to 2007/03/06 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.pumacode.org/pipermail/vss2svn-users-lists.pumacode.org/attachments/20070307/dd2aa72c/attachment.html From fetis26 at gmail.com Wed Mar 7 02:35:18 2007 From: fetis26 at gmail.com (=?koi8-r?B?88XSx8XKIObF1MnTy8nO?=) Date: Wed Mar 7 02:35:24 2007 Subject: windows-1251 References: <45EDC1B6.3040000@etjohnson.us> Message-ID: On Tue, 06 Mar 2007 22:32:06 +0300, Toby Johnson wrote: > > Have you seen this wiki entry? > http://www.pumacode.org/projects/vss2svn/wiki/VssEncodingIssues > Thanks. I've read this. I'm running vss2svn on Windows and haven't Perl installation. For compiling custom encoding I should install Perl and run vss2svn as perl script, right? -- Fetiskin Sergey http://stella-npf.ru From fetis26 at gmail.com Wed Mar 7 03:27:30 2007 From: fetis26 at gmail.com (=?koi8-r?B?88XSx8XKIObF1MnTy8nO?=) Date: Wed Mar 7 03:27:23 2007 Subject: windows-1251 References: <45EDC1B6.3040000@etjohnson.us> Message-ID: On Tue, 06 Mar 2007 22:32:06 +0300, Toby Johnson wrote: > ?????? ???????? wrote: >> Hi all. I tried convert our old VSS repository this way >> >> C:\temp\vss2svn>vss2svn.exe --vssdir C:\temp\XXXX >> --encoding="Windows-1251" >> >> and got error >> >> Couldn't open encmap windows-1251.enc: >> No such file or directory >> at /PerlApp/XML/Parser.pm line 187 >> >> What I should do to fix the problem? > > Have you seen this wiki entry? > http://www.pumacode.org/projects/vss2svn/wiki/VssEncodingIssues > Thansk a lot! Problem is solved. I downloaded windows-1251.enc and put it in directory near binaries. -- ???????? ?????? http://stella-npf.ru From vss2svn at nogga.de Wed Mar 7 04:43:55 2007 From: vss2svn at nogga.de (Dirk) Date: Wed Mar 7 04:43:57 2007 Subject: conversion problems In-Reply-To: References: Message-ID: <45EE895B.7070301@nogga.de> Hello, Did you use the nighlty built? There are a few improvements in orphaned tracking. I expect that you have used MOVES and/or Archive/Restore cycles. for some reason, the "parent" project was not available at the time, when the orphaned files where created. So a lot of files come out in the orphaned state. The nightly build will move files out of the orphaned directory if the items come to live in a real parent. But technically there is no way to overcome this problem. VSS does not support atomic commits and it is perfectly possible to have timestamps and modifications on files prior to the timestamp of the parent project. That means, you can have a file modification at a time, when the parent project does not exists. Dirk Jan Nielsen schrieb: > Hello, > > I'm using vss2svn (with --verbose) to convert a VSS repository which > is just over 1GB in size but I get 9547 errors. With that many errors, > I am guessing that I'm doing something incorrectly. > > Despite the errors, an SVN dump file of about 1.7GB is created which > does load into SVN. Unfortunately, the conversion process places the > entirety of the two most active VSS projects (within this repository) > in an orphaned state - not a single file in these two projects show up > SVN. > > I have executed VSS analyze with a number of "successful fixes", but > the resulting VSS DB is virtually identical to the previous image, as > is the vss2svn output. The (partial) output of stderr, and stdout are > show below. Here's a summary of the types of errors: > > Attempt to add entry 'ZFXBAAAA' with unknown version number > (probably destroyed) > at vss2svn.pl line 706 > Attempt to delete unknown item 'JQCBAAAA': > at vss2svn.pl line 706 > Attempt to re-add directory '/' at revision 2499, skipping action: > possibly missing delete > at vss2svn.pl line 851 > Attempt to recover unknown item 'KQCBAAAA': > at vss2svn.pl line 706 > Attempt to rename unknown item 'PVBAAAAA': > at vss2svn.pl line 706 > Attempt to share unknown item 'JQCBAAAA': > at vss2svn.pl line 706 > Could not open export file './_vss2svn/vssdata/TK/TKDCAAAA.1' > at vss2svn.pl line 851 > IMPORTSVN: > FAILED with non-zero exit status 255 > at vss2svn.pl line 1092 > Parent path missing while trying to add item > '/orphaned/_AADBAAAA/merchants.asp' at revision 325: adding missing > parents > > > Any ideas on things to try? > > Many thanks, > > -Jan > > > stderr: > > could not find ParserDetails.ini in /PerlApp/XML/SAX > > WARNING: Unknown action 'RestoredProject' > > WARNING: Unknown action 'RestoredProject' > > WARNING: Unknown action 'RestoredProject' > > WARNING: Unknown action 'RestoredProject' > > WARNING: Unknown action 'RestoredProject' > > WARNING: Unknown action 'RestoredProject' > > > > stdout: > > Connecting to database ./_vss2svn/vss_data.db > > ======== VSS2SVN ======== > BEGINNING CONVERSION... > Start Time : Tue Mar 6 22:14:17 2007 > > > VSS Dir : stageweb1 > Temp Dir : ./_vss2svn > Dumpfile : after-analyze-fix\stageweb1-dumpfile.txt > > SSPHYS exe : ssphys > SSPHYS ver : ssphys 0.21.0, Build 247 > XML Parser : XML::SAX::Expat > > TASK: INIT > > SETTING TASK LOADVSSNAMES > > SETTING STEP 0 > TASK: LOADVSSNAMES > "ssphys" info "stageweb1/data/names.dat" > > STARTING CACHE FOR NameLookup > > > COMMITTING CACHE 'NameLookup' TO DATABASE > > SETTING TASK FINDDBFILES > > SETTING STEP 0 > TASK: FINDDBFILES > > STARTING CACHE FOR Physical > > > COMMITTING CACHE 'Physical' TO DATABASE > > SETTING TASK GETPHYSHIST > > SETTING STEP 0 > TASK: GETPHYSHIST > > STARTING CACHE FOR PhysicalAction > "ssphys" info "stageweb1/data/A/AAAAAAAA" > "ssphys" info "stageweb1/data/A/AAACAAAA" > "ssphys" info "stageweb1/data/A/AABCAAAA" > "ssphys" info "stageweb1/data/A/AACCAAAA" > "ssphys" info "stageweb1/data/A/AADBAAAA" > "ssphys" info "stageweb1/data/A/AADCAAAA" > "ssphys" info "stageweb1/data/A/AAEBAAAA" > "ssphys" info "stageweb1/data/A/AAFBAAAA" > "ssphys" info "stageweb1/data/A/AAHBAAAA" > ... (15,288 lines like this) > > ... > SETTING STEP 0 > ============================================================================= > ERROR SUMMARY > > > BUILDACTIONHIST: > Attempt to add entry 'AWWBAAAA' with unknown version number > (probably destroyed) > at vss2svn.pl line 706 > Attempt to add entry 'LWWBAAAA' with unknown version number > (probably destroyed) > at vss2svn.pl line 706 > Attempt to add entry 'MWWBAAAA' with unknown version number > (probably destroyed) > at vss2svn.pl line 706 > Attempt to add entry 'GEXBAAAA' with unknown version number > (probably destroyed) > at vss2svn.pl line 706 > Attempt to add entry 'HEXBAAAA' with unknown version number > (probably destroyed) > at vss2svn.pl line 706 > Attempt to add entry 'IEXBAAAA' with unknown version number > (probably destroyed) > at vss2svn.pl line 706 > Attempt to add entry 'YEXBAAAA' with unknown version number > (probably destroyed) > at vss2svn.pl line 706 > Attempt to add entry 'ZEXBAAAA' with unknown version number > (probably destroyed) > ... > ... (19.139 lines like of the following) > at vss2svn.pl line 851 > Parent path missing while trying to add item > '/orphaned/_PPHBAAAA/main7593_060710.asp' at revision 2347: adding > missing parents > at vss2svn.pl line 851 > Parent path missing while trying to add item > '/orphaned/_ELSBAAAA/4567bg.jpg' at revision 2415: adding missing parents > at vss2svn.pl line 851 > Parent path missing while trying to add item > '/orphaned/_XYNBAAAA/logo.gif' at revision 2415: adding missing parents > at vss2svn.pl line 851 > Attempt to re-add directory '/' at revision 2499, skipping action: > possibly missing delete > at vss2svn.pl line 851 > Could not open export file './_vss2svn/vssdata/TK/TKDCAAAA.1' > at vss2svn.pl line 851 > ============================================================================= > END OF CONVERSION > > The VSS to SVN conversion is complete. You should now use the > "svnadmin load" > command to load the generated dumpfile > 'after-analyze-fix\stageweb1-dumpfile.txt'. The "svnadmin" > utility is provided as part of the Subversion command-line toolset; use a > command such as the following: > svnadmin load < "after-analyze-fix\stageweb1-dumpfile.txt" > > You may need to precede this with "svnadmin create " if you > have not > yet created a repository. Type "svnadmin help " for more > information on > "create" and/or "load". > > If any errors occurred during the conversion, they are summarized above. > > For more information on the vss2svn project, see: > http://www.pumacode.org/projects/vss2svn/ > > Started at : Tue Mar 6 22:14:17 2007 > Ended at : Tue Mar 6 22:50:44 2007 > Elapsed time : 00:36:27 (H:M:S) > > VSS Actions read : 34111 > SVN Revisions converted : 3871 > Date range (YYYY/MM/DD) : 2004/12/27 to 2007/03/06 > > ------------------------------------------------------------------------ > > _______________________________________________ > vss2svn-users mailing list > Project homepage: > http://www.pumacode.org/projects/vss2svn/ > Subscribe/Unsubscribe/Admin: > http://lists.pumacode.org/mailman/listinfo/vss2svn-users-lists.pumacode.org > Mailing list web interface (with searchable archives): > http://dir.gmane.org/gmane.comp.version-control.subversion.vss2svn.user From jan.sture.nielsen at gmail.com Wed Mar 7 08:39:38 2007 From: jan.sture.nielsen at gmail.com (Jan Nielsen) Date: Wed Mar 7 08:39:48 2007 Subject: conversion problems In-Reply-To: <45EE895B.7070301@nogga.de> References: <45EE895B.7070301@nogga.de> Message-ID: Hi Dirk, Thanks for quick response. The "nightly" build (20070214) was able to pickup 5 more revisions. It appears that the "68" revision is the biggest single import problem. Is there anything I can do to analyze this further? Many thanks for your help. -Jan IMPORTSVN: FAILED with non-zero exit status 255 (cmd: "ssphys" get -b -v1 --force-overwrite -ewindows-1252 "stageweb1/data/T/TKDCAAAA" ./_vss2svn/vssdata/TK/TKDCAAAA) at vss2svn.pl line 1128 Parent path missing while trying to add item '/orphaned/_NVWBAAAA/Dev.MemberwebNet.com/' at revision 1: adding missing parents at vss2svn.pl line 879 Parent path missing while trying to add item '/orphaned/_IQCBAAAA/test.asp' at revision 67: adding missing parents at vss2svn.pl line 879 Parent path missing while trying to add item '/orphaned/_PPCBAAAA/Default2K1.asp' at revision 67: adding missing parents at vss2svn.pl line 879 Parent path missing while trying to add item '/orphaned/_NPCBAAAA/default.asp' at revision 68: adding missing parents at vss2svn.pl line 879 Parent path missing while trying to add item '/orphaned/_OPCBAAAA/default.htm' at revision 68: adding missing parents at vss2svn.pl line 879 ... (similar 13,549 lines) stdout: Connecting to database ./_vss2svn/vss_data.db ======== VSS2SVN ======== BEGINNING CONVERSION... Start Time : Wed Mar 7 5:46:34 2007 VSS Dir : stageweb1 Temp Dir : ./_vss2svn Dumpfile : stageweb1-dumpfile.txt VSS Encoding : windows-1252 VSS2SVN ver : 0.11.0-nightly.292 SSPHYS exe : ssphys SSPHYS ver : 0.22.0.275 XML Parser : XML::SAX::Expat TASK: INIT SETTING TASK LOADVSSNAMES SETTING STEP 0 TASK: LOADVSSNAMES "ssphys" info -ewindows-1252 "stageweb1/data/names.dat" STARTING CACHE FOR NameLookup COMMITTING CACHE 'NameLookup' TO DATABASE SETTING TASK FINDDBFILES SETTING STEP 0 TASK: FINDDBFILES STARTING CACHE FOR Physical COMMITTING CACHE 'Physical' TO DATABASE SETTING TASK GETPHYSHIST SETTING STEP 0 TASK: GETPHYSHIST STARTING CACHE FOR PhysicalAction "ssphys" info -ewindows-1252 "stageweb1/data/A/AAAAAAAA" "ssphys" info -ewindows-1252 "stageweb1/data/A/AAACAAAA" "ssphys" info -ewindows-1252 "stageweb1/data/A/AABCAAAA" ... Attempt to re-add directory '/' at revision 2499, skipping action: possibly missing delete at vss2svn.pl line 879 Could not open export file './_vss2svn/vssdata/TK/TKDCAAAA.1' at vss2svn.pl line 879 ============================================================================= END OF CONVERSION The VSS to SVN conversion is complete. You should now use the "svnadmin load" command to load the generated dumpfile 'stageweb1-dumpfile.txt'. The "svnadmin" utility is provided as part of the Subversion command-line toolset; use a command such as the following: svnadmin load < "stageweb1-dumpfile.txt" You may need to precede this with "svnadmin create " if you have not yet created a repository. Type "svnadmin help " for more information on "create" and/or "load". If any errors occurred during the conversion, they are summarized above. For more information on the vss2svn project, see: http://www.pumacode.org/projects/vss2svn/ Started at : Wed Mar 7 5:46:34 2007 Ended at : Wed Mar 7 6:23:34 2007 Elapsed time : 00:37:00 (H:M:S) VSS Actions read : 34116 SVN Revisions converted : 3876 Date range (YYYY/MM/DD) : 2004/12/27 to 2007/03/06 On 3/7/07, Dirk wrote: > > Hello, > > Did you use the nighlty built? There are a few improvements in orphaned > tracking. > > I expect that you have used MOVES and/or Archive/Restore cycles. for > some reason, the "parent" project was not available at the time, when > the orphaned files where created. So a lot of files come out in the > orphaned state. The nightly build will move files out of the orphaned > directory if the items come to live in a real parent. But technically > there is no way to overcome this problem. VSS does not support atomic > commits and it is perfectly possible to have timestamps and > modifications on files prior to the timestamp of the parent project. > That means, you can have a file modification at a time, when the parent > project does not exists. > > Dirk > > > > > Jan Nielsen schrieb: > > Hello, > > > > I'm using vss2svn (with --verbose) to convert a VSS repository which > > is just over 1GB in size but I get 9547 errors. With that many errors, > > I am guessing that I'm doing something incorrectly. > > > > Despite the errors, an SVN dump file of about 1.7GB is created which > > does load into SVN. Unfortunately, the conversion process places the > > entirety of the two most active VSS projects (within this repository) > > in an orphaned state - not a single file in these two projects show up > > SVN. > > > > I have executed VSS analyze with a number of "successful fixes", but > > the resulting VSS DB is virtually identical to the previous image, as > > is the vss2svn output. The (partial) output of stderr, and stdout are > > show below. Here's a summary of the types of errors: > > > > Attempt to add entry 'ZFXBAAAA' with unknown version number > > (probably destroyed) > > at vss2svn.pl line 706 > > Attempt to delete unknown item 'JQCBAAAA': > > at vss2svn.pl line 706 > > Attempt to re-add directory '/' at revision 2499, skipping action: > > possibly missing delete > > at vss2svn.pl line 851 > > Attempt to recover unknown item 'KQCBAAAA': > > at vss2svn.pl line 706 > > Attempt to rename unknown item 'PVBAAAAA': > > at vss2svn.pl line 706 > > Attempt to share unknown item 'JQCBAAAA': > > at vss2svn.pl line 706 > > Could not open export file './_vss2svn/vssdata/TK/TKDCAAAA.1' > > at vss2svn.pl line 851 > > IMPORTSVN: > > FAILED with non-zero exit status 255 > > at vss2svn.pl line 1092 > > Parent path missing while trying to add item > > '/orphaned/_AADBAAAA/merchants.asp' at revision 325: adding missing > > parents > > > > > > Any ideas on things to try? > > > > Many thanks, > > > > -Jan > > > > > > stderr: > > > > could not find ParserDetails.ini in /PerlApp/XML/SAX > > > > WARNING: Unknown action 'RestoredProject' > > > > WARNING: Unknown action 'RestoredProject' > > > > WARNING: Unknown action 'RestoredProject' > > > > WARNING: Unknown action 'RestoredProject' > > > > WARNING: Unknown action 'RestoredProject' > > > > WARNING: Unknown action 'RestoredProject' > > > > > > > > stdout: > > > > Connecting to database ./_vss2svn/vss_data.db > > > > ======== VSS2SVN ======== > > BEGINNING CONVERSION... > > Start Time : Tue Mar 6 22:14:17 2007 > > > > > > VSS Dir : stageweb1 > > Temp Dir : ./_vss2svn > > Dumpfile : after-analyze-fix\stageweb1-dumpfile.txt > > > > SSPHYS exe : ssphys > > SSPHYS ver : ssphys 0.21.0, Build 247 > > XML Parser : XML::SAX::Expat > > > > TASK: INIT > > > > SETTING TASK LOADVSSNAMES > > > > SETTING STEP 0 > > TASK: LOADVSSNAMES > > "ssphys" info "stageweb1/data/names.dat" > > > > STARTING CACHE FOR NameLookup > > > > > > COMMITTING CACHE 'NameLookup' TO DATABASE > > > > SETTING TASK FINDDBFILES > > > > SETTING STEP 0 > > TASK: FINDDBFILES > > > > STARTING CACHE FOR Physical > > > > > > COMMITTING CACHE 'Physical' TO DATABASE > > > > SETTING TASK GETPHYSHIST > > > > SETTING STEP 0 > > TASK: GETPHYSHIST > > > > STARTING CACHE FOR PhysicalAction > > "ssphys" info "stageweb1/data/A/AAAAAAAA" > > "ssphys" info "stageweb1/data/A/AAACAAAA" > > "ssphys" info "stageweb1/data/A/AABCAAAA" > > "ssphys" info "stageweb1/data/A/AACCAAAA" > > "ssphys" info "stageweb1/data/A/AADBAAAA" > > "ssphys" info "stageweb1/data/A/AADCAAAA" > > "ssphys" info "stageweb1/data/A/AAEBAAAA" > > "ssphys" info "stageweb1/data/A/AAFBAAAA" > > "ssphys" info "stageweb1/data/A/AAHBAAAA" > > ... (15,288 lines like this) > > > > ... > > SETTING STEP 0 > > > ============================================================================= > > ERROR SUMMARY > > > > > > BUILDACTIONHIST: > > Attempt to add entry 'AWWBAAAA' with unknown version number > > (probably destroyed) > > at vss2svn.pl line 706 > > Attempt to add entry 'LWWBAAAA' with unknown version number > > (probably destroyed) > > at vss2svn.pl line 706 > > Attempt to add entry 'MWWBAAAA' with unknown version number > > (probably destroyed) > > at vss2svn.pl line 706 > > Attempt to add entry 'GEXBAAAA' with unknown version number > > (probably destroyed) > > at vss2svn.pl line 706 > > Attempt to add entry 'HEXBAAAA' with unknown version number > > (probably destroyed) > > at vss2svn.pl line 706 > > Attempt to add entry 'IEXBAAAA' with unknown version number > > (probably destroyed) > > at vss2svn.pl line 706 > > Attempt to add entry 'YEXBAAAA' with unknown version number > > (probably destroyed) > > at vss2svn.pl line 706 > > Attempt to add entry 'ZEXBAAAA' with unknown version number > > (probably destroyed) > > ... > > ... (19.139 lines like of the following) > > at vss2svn.pl line 851 > > Parent path missing while trying to add item > > '/orphaned/_PPHBAAAA/main7593_060710.asp' at revision 2347: adding > > missing parents > > at vss2svn.pl line 851 > > Parent path missing while trying to add item > > '/orphaned/_ELSBAAAA/4567bg.jpg' at revision 2415: adding missing > parents > > at vss2svn.pl line 851 > > Parent path missing while trying to add item > > '/orphaned/_XYNBAAAA/logo.gif' at revision 2415: adding missing parents > > at vss2svn.pl line 851 > > Attempt to re-add directory '/' at revision 2499, skipping action: > > possibly missing delete > > at vss2svn.pl line 851 > > Could not open export file './_vss2svn/vssdata/TK/TKDCAAAA.1' > > at vss2svn.pl line 851 > > > ============================================================================= > > END OF CONVERSION > > > > The VSS to SVN conversion is complete. You should now use the > > "svnadmin load" > > command to load the generated dumpfile > > 'after-analyze-fix\stageweb1-dumpfile.txt'. The "svnadmin" > > utility is provided as part of the Subversion command-line toolset; use > a > > command such as the following: > > svnadmin load < "after-analyze-fix\stageweb1-dumpfile.txt" > > > > You may need to precede this with "svnadmin create " if you > > have not > > yet created a repository. Type "svnadmin help " for more > > information on > > "create" and/or "load". > > > > If any errors occurred during the conversion, they are summarized above. > > > > For more information on the vss2svn project, see: > > http://www.pumacode.org/projects/vss2svn/ > > > > Started at : Tue Mar 6 22:14:17 2007 > > Ended at : Tue Mar 6 22:50:44 2007 > > Elapsed time : 00:36:27 (H:M:S) > > > > VSS Actions read : 34111 > > SVN Revisions converted : 3871 > > Date range (YYYY/MM/DD) : 2004/12/27 to 2007/03/06 > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > vss2svn-users mailing list > > Project homepage: > > http://www.pumacode.org/projects/vss2svn/ > > Subscribe/Unsubscribe/Admin: > > > http://lists.pumacode.org/mailman/listinfo/vss2svn-users-lists.pumacode.org > > Mailing list web interface (with searchable archives): > > http://dir.gmane.org/gmane.comp.version-control.subversion.vss2svn.user > > _______________________________________________ > vss2svn-users mailing list > Project homepage: > http://www.pumacode.org/projects/vss2svn/ > Subscribe/Unsubscribe/Admin: > > http://lists.pumacode.org/mailman/listinfo/vss2svn-users-lists.pumacode.org > Mailing list web interface (with searchable archives): > http://dir.gmane.org/gmane.comp.version-control.subversion.vss2svn.user > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.pumacode.org/pipermail/vss2svn-users-lists.pumacode.org/attachments/20070307/ee712d31/attachment-0001.html From flavio.stanchina at ies.it Wed Mar 7 09:09:57 2007 From: flavio.stanchina at ies.it (Flavio Stanchina) Date: Wed Mar 7 09:10:19 2007 Subject: [REVISED PATCH] Add option --incremental: one dump file per revision, and a small patch to ssphys In-Reply-To: <45EB8361.8080209@etjohnson.us> References: <45E80DE8.1000006@ies.it> <45EB8361.8080209@etjohnson.us> Message-ID: <45EEC7B5.1040503@ies.it> Toby Johnson wrote: > Flavio Stanchina wrote: >> The first patch adds option --incremental to vss2svn.pl that makes it >> create one dump file per revision. [...] > Hello Flavio, thanks for the patches; submitting them via the mailing First, I apologize for sending the patch a bit too early: it would forget about existing paths because it destroyed the $dumpfile object at every iteration, so later revisions would do adds rather than changes. I've attached a fixed patch that works as expected: unfortunately, it is a bit more invasive as I needed a new Dumpfile->switch_fh() method to change the output file on the run. > list is fine. I'm not sure what the goal is of creating one dumpfile per > revision? Are you manipulating those files somehow afterwards? Or is it > just an issue that the files were too big to transfer? I had to manipulate the files after the conversion. Apart from filtering away old stuff, I had to fix a few orphans and other issues caused mostly by less-than-optimal management of the VSS database in the past. Having one file per revision was just easier to handle, especially with well over 1GB of stuff. (for the record, vim could handle the original 1.6GB dumpfile just fine on a Linux box with 768MB of RAM, but it was taking a few minutes to load and save it and many seconds to search through it) > The patch to write the filename seems reasonable, but I'm not sure what > you think should be done to handle upper/lowercase names on Linux. We > certainly can't try 2^8 filename combinations for each file. I've never > tried the conversion on Linux myself; doesn't it always look for an > all-uppercase name? In that case we should probably instruct people to > always make sure their filenames are all-uppercase. I had to make them all lowercase. To be exact, vss2svn couldn't find the "names.dat" file: I noticed it was named in all-uppercase on disk so I changed everything to lowercase and it worked. The VSS DB was more than 10 years old and I think it was originally created on a NetWare volume, so file names might not have been in the same case as a fresh DB created on Windows. I suppose we should suggest to run a find -print0 | xargs -0 rename "y/A-Z/a-z/" on the copy of the VSS database before running the conversion. -- Flavio Stanchina Informatica e Servizi Trento - Italy -------------- next part -------------- Index: script/Vss2Svn/Dumpfile.pm =================================================================== --- script/Vss2Svn/Dumpfile.pm (revision 301) +++ script/Vss2Svn/Dumpfile.pm (working copy) @@ -74,6 +74,26 @@ } # End finish ############################################################################### +# switch_fh +############################################################################### +sub switch_fh { + my($self, $fh) = @_; + + # switch + $self->{fh} = $fh; + + # prevent perl from doing line-ending conversions + binmode($fh); + + my $old = select($fh); + $| = 1; + select($old); + + print $fh "SVN-fs-dump-format-version: 2\n\n"; + +} # End switch_fh + +############################################################################### # begin_revision ############################################################################### sub begin_revision { Index: script/vss2svn.pl =================================================================== --- script/vss2svn.pl (revision 301) +++ script/vss2svn.pl (working copy) @@ -813,9 +813,12 @@ my $fh; my $file = $gCfg{dumpfile}; - open $fh, ">$file" - or &ThrowError("Could not create dumpfile '$file'"); + if (!$gCfg{incremental}) { + open $fh, ">$file" + or &ThrowError("Could not create dumpfile '$file'"); + } + my($sql, $sth, $action_sth, $row, $revision, $actions, $action, $physname, $itemtype); my %exported = (); @@ -836,14 +839,31 @@ $action_sth = $gCfg{dbh}->prepare($sql); my $autoprops = Vss2Svn::Dumpfile::AutoProps->new($gCfg{auto_props}) if $gCfg{auto_props}; - my $dumpfile = Vss2Svn::Dumpfile->new($fh, $autoprops); + my $dumpfile; + if (!$gCfg{incremental}) { + $dumpfile = Vss2Svn::Dumpfile->new($fh, $autoprops); + } + REVISION: while(defined($row = $sth->fetchrow_hashref() )) { my $t0 = new Benchmark; $revision = $row->{revision_id}; + if ($gCfg{incremental}) { + my $paddedRev = sprintf("%06d", $revision); + $file = "$gCfg{dumpfile}.$paddedRev"; + open $fh, ">$file" + or &ThrowError("Could not create dumpfile '$file'"); + + if ($dumpfile) { + $dumpfile->switch_fh($fh); + } else { + $dumpfile = Vss2Svn::Dumpfile->new($fh, $autoprops); + } + } + $dumpfile->begin_revision($row); # next REVISION if $revision == 0; @@ -869,6 +889,12 @@ $dumpfile->do_action($action, $exported{$physname}); } + + if ($gCfg{incremental}) { + $dumpfile->finish(); + close $fh; + } + print "revision $revision: ", timestr(timediff(new Benchmark, $t0)),"\n" if $gCfg{timing}; } @@ -879,8 +905,10 @@ map { &ThrowWarning($_) } @err; } - $dumpfile->finish(); - close $fh; + if (!$gCfg{incremental}) { + $dumpfile->finish(); + close $fh; + } } # End CreateSvnDumpfile @@ -1583,6 +1611,7 @@ GetOptions(\%gCfg,'vssdir=s','tempdir=s','dumpfile=s','resume','verbose', 'debug','timing+','task=s','revtimerange=i','ssphys=s', + 'incremental', 'encoding=s','trunkdir=s','auto_props=s'); &GiveHelp("Must specify --vssdir") if !defined($gCfg{vssdir}); @@ -1716,6 +1745,9 @@ default is ./_vss2svn --dumpfile : specify the subversion dumpfile to be created; default is ./vss2svn-dumpfile.txt + --incremental : one dump file per revision; + the files will be named .NNNNNN + --revtimerange : specify the difference between two ss actions that are treated as one subversion revision; default is 3600 seconds (== 1hour) From Aaron.Larson at honeywell.com Wed Mar 7 11:02:41 2007 From: Aaron.Larson at honeywell.com (Larson, Aaron (SWCOE)) Date: Wed Mar 7 11:03:00 2007 Subject: vss2svn exits silently In-Reply-To: <45EDEF12.2020702@nogga.de> Message-ID: >>>>> "D" == vss2svn writes: D> I cannot build the vss2svn.exe on my system, but I heard, that this is D> simply a packed version of all the code and the modules. It will be D> unpacked to your lokal system und run from there. You can instruct it to D> not delete the temporary files and then patch these files and try to run D> in the temporary folder. But I don't know how to force a specific D> environment. D> Have a look here: D> http://aspn.activestate.com/ASP()N/docs/PDK/6.0/PerlApp_overview.html I'm stuck. I tried installing the requisite perl packages on my machine, but SQLite2 wouldn't install, even with "force", so I did it myself: cd ~/.cpan/build/DBD-SQLite2-0.33 make install Then when I run: perl -I Vss2Svn vss2svn.pl Can't locate Config/Ini.pm in @INC (@INC contains: . Vss2Svn /usr/lib/perl5/5.8/cygwin /usr/lib/perl5/5.8 /usr/lib/perl5/site_perl/5.8/cygwin /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8/cygwin /usr/lib/perl5/vendor_perl/5.8) at Vss2Svn/Dumpfile/AutoProps.pm line 5. BEGIN failed--compilation aborted at Vss2Svn/Dumpfile/AutoProps.pm line 5. Compilation failed in require at Vss2Svn/Dumpfile.pm line 5. BEGIN failed--compilation aborted at Vss2Svn/Dumpfile.pm line 5. Compilation failed in require at vss2svn.pl line 20. BEGIN failed--compilation aborted at vss2svn.pl line 20. Hmm, missing Config:Ini? perl -MCPAN -e "install Config::Ini" ... The module Config::Ini isn't available on CPAN. I've just exceeded my perl skills. From vss2svn at nogga.de Wed Mar 7 17:21:18 2007 From: vss2svn at nogga.de (Dirk) Date: Wed Mar 7 17:21:36 2007 Subject: vss2svn exits silently In-Reply-To: References: Message-ID: <45EF3ADE.7040702@nogga.de> I will commit my changes alter, so you can try the next nightly build. But your problem has nothing to do with my patch Dirk Larson, Aaron (SWCOE) schrieb: >>>>>> "D" == vss2svn writes: >>>>>> > > D> I cannot build the vss2svn.exe on my system, but I heard, that this > is > D> simply a packed version of all the code and the modules. It will be > D> unpacked to your lokal system und run from there. You can instruct it > to > D> not delete the temporary files and then patch these files and try to > run > D> in the temporary folder. But I don't know how to force a specific > D> environment. > > D> Have a look here: > D> http://aspn.activestate.com/ASP()N/docs/PDK/6.0/PerlApp_overview.html > > I'm stuck. I tried installing the requisite perl packages on my > machine, but SQLite2 wouldn't install, even with "force", so I did it > myself: > > cd ~/.cpan/build/DBD-SQLite2-0.33 > make install > > Then when I run: > perl -I Vss2Svn vss2svn.pl > > Can't locate Config/Ini.pm in @INC (@INC contains: . Vss2Svn > /usr/lib/perl5/5.8/cygwin /usr/lib/perl5/5.8 > /usr/lib/perl5/site_perl/5.8/cygwin /usr/lib/perl5/site_perl/5.8 > /usr/lib/perl5/vendor_perl/5.8/cygwin /usr/lib/perl5/vendor_perl/5.8) at > Vss2Svn/Dumpfile/AutoProps.pm line 5. > BEGIN failed--compilation aborted at Vss2Svn/Dumpfile/AutoProps.pm > line 5. > Compilation failed in require at Vss2Svn/Dumpfile.pm line 5. > BEGIN failed--compilation aborted at Vss2Svn/Dumpfile.pm line 5. > Compilation failed in require at vss2svn.pl line 20. > BEGIN failed--compilation aborted at vss2svn.pl line 20. > > Hmm, missing Config:Ini? > > perl -MCPAN -e "install Config::Ini" > ... > The module Config::Ini isn't available on CPAN. > > I've just exceeded my perl skills. > > _______________________________________________ > vss2svn-users mailing list > Project homepage: > http://www.pumacode.org/projects/vss2svn/ > Subscribe/Unsubscribe/Admin: > http://lists.pumacode.org/mailman/listinfo/vss2svn-users-lists.pumacode.org > Mailing list web interface (with searchable archives): > http://dir.gmane.org/gmane.comp.version-control.subversion.vss2svn.user > > > From Aaron.Larson at honeywell.com Fri Mar 9 11:01:34 2007 From: Aaron.Larson at honeywell.com (Larson, Aaron (SWCOE)) Date: Fri Mar 9 11:01:48 2007 Subject: vss2svn exits silently In-Reply-To: Message-ID: >>>>> "AL" == Aaron Larson writes: AL> I used the 0.11.0-alpha, and nightly-20070214 releases ... AL> Any chance 343MB is too big for a single file/commit? I'm running the AL> executable from a Cygwin bash script on a windows XP host using AL> "nohup". ... I have pretty conclusive evidence that a single VSS file commit of 343 MB crashes, but a 100MB file works ok. And, the "silently crashes" part was because I was running the script on a remote server. A person called me the other day to tell me there was a pop up dialog indicating the program had crashed, but provided no useful information. My poor perl skills and inability to build from sources means I'm unable to help debug this issue. If the nightly build .exe was built without perlApp's "--clean", could I patch the resulting extracted directories? From toby at etjohnson.us Fri Mar 9 11:46:10 2007 From: toby at etjohnson.us (Toby Johnson) Date: Fri Mar 9 11:46:14 2007 Subject: vss2svn exits silently In-Reply-To: References: Message-ID: <45F18F52.8030705@etjohnson.us> Larson, Aaron (SWCOE) wrote: >>>>>> "AL" == Aaron Larson writes: >>>>>> > > AL> I used the 0.11.0-alpha, and nightly-20070214 releases ... > AL> Any chance 343MB is too big for a single file/commit? I'm running > the > AL> executable from a Cygwin bash script on a windows XP host using > AL> "nohup". ... > > I have pretty conclusive evidence that a single VSS file commit of 343 > MB crashes, but a 100MB file works ok. > > And, the "silently crashes" part was because I was running the script > on a remote server. A person called me the other day to tell me there > was a pop up dialog indicating the program had crashed, but provided > no useful information. > > My poor perl skills and inability to build from sources means I'm > unable to help debug this issue. If the nightly build .exe was built > without perlApp's "--clean", could I patch the resulting extracted > directories? > I'm not using --clean. I believe you should be able to patch the extracted files, but I've not tried doing that myself. toby From Aaron.Larson at honeywell.com Fri Mar 9 13:12:14 2007 From: Aaron.Larson at honeywell.com (Larson, Aaron (SWCOE)) Date: Fri Mar 9 13:12:25 2007 Subject: vss2svn exits silently In-Reply-To: <45F18F52.8030705@etjohnson.us> Message-ID: >>>>> "TJ" == Toby writes: >>>>>>> "AL" == Aaron Larson writes: AL> ... If the nightly build .exe was built without perlApp's AL> "--clean", could I patch the resulting extracted directories? TJ> I'm not using --clean. I believe you should be able to patch the TJ> extracted files, but I've n()ot tried doing that myself. I just continue to auger in. In my bash shell I set TEMP and TMPDIR as described in the perlapp page, but somehow the executable was still getting to the windows default, and sure enough in my documents and settings temp directory I found the pdk files. However, they are a collection of .dlls, nothing that looks patchable. I'm not sure how important it is to be able to handle really large file commits anyway, at least for most people. From toby at etjohnson.us Fri Mar 9 15:10:49 2007 From: toby at etjohnson.us (Toby Johnson) Date: Fri Mar 9 15:10:53 2007 Subject: Encodings support Message-ID: <45F1BF49.5090104@etjohnson.us> Rather than have the various "custom" encodings files attached to the wiki page, I have now checked these in to Subversion (as well as the .xml files used to generate them) under script/encodings. Both the .pl and .exe versions of vss2svn will now look for this "encodings" file, and add it to the list of files that XML::Parser::Expat will search to find its encodings. toby From Aaron.Larson at honeywell.com Tue Mar 13 11:09:02 2007 From: Aaron.Larson at honeywell.com (Larson, Aaron (SWCOE)) Date: Tue Mar 13 11:10:26 2007 Subject: vss2svn exits silently In-Reply-To: <45EDEF12.2020702@nogga.de> Message-ID: >>>>> "D" == Dirk writes: AL> Larson, Aaron (SWCOE) schrieb: ... AL> ... svnadmin: File not found: transaction '4905-1', path AL> 'labels/..../tpk242/tpk_TestFile.dat' AL> AL> Which is the same file it previously died on.... D> ... I see in your output, that you also have used moves. Could you D> please try the attached patch also? This improves move handling, D> but is untested. FYI, I tried the vss2svn-nightly-20070310.zip and the results are unchanged. It still dies on the svnadmin import. From vss2svn at nogga.de Fri Mar 16 20:26:19 2007 From: vss2svn at nogga.de (Dirk) Date: Fri Mar 16 20:26:30 2007 Subject: vss2svn exits silently In-Reply-To: References: Message-ID: <45FB35AB.3000109@nogga.de> > D> ... I see in your output, that you also have used moves. Could you > D> please try the attached patch also? This improves move handling, > D> but is untested. > > FYI, I tried the vss2svn-nightly-20070310.zip and the results are > unchanged. It still dies on the svnadmin import. > Sorry for the delay, I was completly absorbed by other tasks. I have committed the patches. So hopefully you will have a new nightly build by tomorrow. Best regards Dirk From Aaron.Larson at Honeywell.com Mon Mar 19 21:26:16 2007 From: Aaron.Larson at Honeywell.com (Larson, Aaron (MN65)) Date: Mon Mar 19 21:26:23 2007 Subject: vss2svn exits silently In-Reply-To: <45FB35AB.3000109@nogga.de> Message-ID: <002901c76a8e$c2095400$96f1fea9@htc.honeywell.com> >>>>> "D" == Dirk writes: D> ... I see in your output, that you also have used moves. Could you D> please try the attached patch also? This improves move handling, D> but is untested. >> FYI, I tried the vss2svn-nightly-20070310.zip and the results are >> unchanged. It still dies on the svnadmin import. D> Sorry for the delay, I was completly absorbed by other tasks. No problem. I appreciate your help. D> I have committed the patches. So hopefully you will have a new D> nightly build by tomorrow. I tried the nightly 3-17 build, exact same error: File not found: transaction '4905-1', path ... I'm still getting a large number of errors/warnings about database issues even though my vss analyze is now pretty clean (there is still one issue about a corrupt file which might prevent old versions from being recovered): Here are some of the most often repeated messages. Perhaps this dooms my efforts. ssphys: unknwon record type "?7" detected (offset 0x8f7) TASK: BUILDACTIONHIST ERROR -- Attempt to add entry 'YBAAAAAA' with unknown version number (probably destroyed) at vss2svn.pl line 745 ... ERROR -- Attempt to commit unknown item 'UBSAAAAA': at vss2svn.pl line 745 ERROR -- Attempt to share unknown item 'KROBAAAA': at vss2svn.pl line 745 ERROR -- Parent path missing while trying to add item '/orphaned/_IDAAAAAA/abom/' at revision 94: adding missing parents at vss2svn.pl line 891 However, in addition to the above, I do see a number of perl warnings: Use of uninitialized value in concatenation (.) or string at /PerlApp/Vss2Svn/ActionHandler.pm line 264. Use of uninitialized value in join or string at vss2svn.pl line 789. Use of uninitialized value in concatenation (.) or string at /PerlApp/Vss2Svn/ActionHandler.pm line 640. ... TASK: IMPORTSVN Use of uninitialized value in array element at /PerlApp/Vss2Svn/Dumpfile.pm line 165. ... ERROR -- Could not open export file './_vss2svn/vssdata/ER/ERQBAAAA.1' at vss2svn.pl line 891 ERROR -- Could not open export file './_vss2svn/vssdata/ER/ERQBAAAA.2' at vss2svn.pl line 891 ... From vss2svn at nogga.de Wed Mar 21 18:36:35 2007 From: vss2svn at nogga.de (Dirk) Date: Wed Mar 21 18:37:30 2007 Subject: vss2svn exits silently In-Reply-To: <002901c76a8e$c2095400$96f1fea9@htc.honeywell.com> References: <002901c76a8e$c2095400$96f1fea9@htc.honeywell.com> Message-ID: <4601B373.5010301@nogga.de> > I'm still getting a large number of errors/warnings about database > issues even though my vss analyze is now pretty clean (there is still > one issue about a corrupt file which might prevent old versions from > being recovered): Here are some of the most often repeated messages. > Perhaps this dooms my efforts. > > ssphys: unknwon record type "?7" detected (offset 0x8f7) TASK: This really sounds like a broken phyiscal file. Can you run with --debug and --verbose to see which file is the borken one? Then try to move the phyiscal file out of your data folder and rerun again. But I expect, that this is not the root of the problems. > BUILDACTIONHIST ERROR -- Attempt to add entry 'YBAAAAAA' with unknown version number (probably destroyed) at vss2svn.pl line 745 ... > This is not a "error" message, more informational. I need to change this. > ERROR -- Attempt to commit unknown item 'UBSAAAAA': at vss2svn.pl line 745 > This sounds like a broken timeline. One commit record has a time stamp earlier than the add/create time. So we will see a commit before we have added the file to the database. The current vss2svn converter does not perform a check the linearity of the timestamps. This would be difficult anyway, but at least we could check for linearity and report any possible errors. Can you try to run "ssphys info UBSAAAAA" and check your timestamps on each version? > ERROR -- Attempt to share unknown item 'KROBAAAA': at vss2svn.pl line 745 > I expect the same here. We have some item related activities before we have added the file. By the way, this can happen very easily if you had a one computer in the network with a wrong time. Every client will enter it's own timestamp to the version records. There is no idea about a global time. > ERROR -- Parent path missing while trying to add item '/orphaned/_IDAAAAAA/abom/' at revision 94: adding missing parents at vss2svn.pl line 891 > This is ok. We have found a orphaned item and we are going to add it to a specific directory. This directory must be created before. > > However, in addition to the above, I do see a number of perl warnings: > > > Use of uninitialized value in concatenation (.) or string at /PerlApp/Vss2Svn/ActionHandler.pm line 264. > Use of uninitialized value in join or string at vss2svn.pl line 789. > Use of uninitialized value in concatenation (.) or string at /PerlApp/Vss2Svn/ActionHandler.pm line 640. > Ok, this is more complicated, but I expect also, that this is due to the timestamps problem. As a next step I would suggest to add a new basic time stamp check. This check could simply check for the linearity of the activities on each physical file. If one time stamp is out of order, we could move it to the timestamp between the two actions. Again, this is problematic, but would help to get the archive converted. It will however mess up your labels. Can you do Perl programming? The best place to do this is in the GetVssItemVersions function. I will give it a quick try... Best regards Dirk From Aaron.Larson at Honeywell.com Wed Mar 21 22:40:40 2007 From: Aaron.Larson at Honeywell.com (Larson, Aaron (MN65)) Date: Wed Mar 21 22:40:51 2007 Subject: vss2svn exits silently In-Reply-To: <4601B373.5010301@nogga.de> Message-ID: <003701c76c2b$7b2c8fe0$96f1fea9@htc.honeywell.com> >>>>> "D" == Dirk writes: Dirk, first let me thank you profusely for your efforts on this. You have been unbelievably helpful. AL> ssphys: unknwon record type "?7" detected (offset 0x8f7) TASK: D> This really sounds like a broken phyiscal file. Can you run with D> --debug and --verbose to see which file is the borken one? Then try D> to move the phyiscal file out of your data folder and rerun D> again. But I expect, that this is not the root of the problems. I will do. A suggestion for ssphys though would be to output the file name :-) AL> ERROR -- Attempt to commit unknown item 'UBSAAAAA': at vss2svn.pl line 745 D> This sounds like a broken timeline. One commit record has a time D> stamp earlier than the add/create time. So we will see a commit D> before we have added the file to the database. The current vss2svn D> converter does not perform a check the linearity of the D> timestamps. This would be difficult anyway, but at least we could D> check for linearity and report any possible errors. Can you try to D> run "ssphys info UBSAAAAA" and check your timestamps on each D> version? I'm not exactly sure what to look for here, but I did: ssphys info UBSAAAAA | grep Date > orig bash-3.00$ sort < orig > sorted bash-3.00$ diff orig sorted orig and sorted are the same. I presume this means the dates are not an issue. I sent you the entire ssphys output in a separate email. AL> ERROR -- Attempt to share unknown item 'KROBAAAA': at vss2svn.pl line 745 D> I expect the same here. We have some item related activities before D> we have added the file. Actually, the file KR0BAAAA does not appear in the database. It wasn't deleted as part of the analyze runs I did either, although it might have disappeared from a previous analyze. D> By the way, this can happen very easily if you had a one computer D> in the network with a wrong time. Every client will enter it's own D> timestamp to the version records. There is no idea about a global D> time. We had part of our team in the USA, part in India. Words can't express my disgust when I found out the labeling was based on "local" timestamps. However, if I've interpreted the data above properly, the cause of the problem would seem to be more subtle. BTW, if you'd like I can send you the entire vss2svn output log, its about 90kb. AL> Use of uninitialized value in concatenation (.) or string at /PerlApp/Vss2Svn/ActionHandler.pm line 264. AL> Use of uninitialized value in join or string at vss2svn.pl line 789. AL> Use of uninitialized value in concatenation (.) or string at /PerlApp/Vss2Svn/ActionHandler.pm line 640. D> Ok, this is more complicated, but I expect also, that this is due to the D> timestamps problem. Ok, but I guess I have to find what file is causing the problem first. D> As a next step I would suggest to add a new basic time stamp D> check. This check could simply check for the linearity of the D> activities on each physical file. If one time stamp is out of D> order, we could move it to the timestamp between the two D> actions. Again, this is problematic, but would help to get the D> archive converted. It will however mess up your labels. Perhaps the labels are wrong now, and this would fix it :-) D> Can you do Perl programming? I will, of course, not admit to being able to program in perl in a public forum. But if you promise not to tell, then I'll say I'm conversant. I do however doubt I will ever understand array vs scalar context. D> The best place to do this is in the GetVssItemVersions function. I D> will give it a quick try... If I could get a source installation running, then I would be much more help. Sadly the last time I tried this I get hung up on a perl dependency that I couldn't unravel. Knowing a bit better what environment works (cygwin perl, vs activestate, vs ???, etc.) might get me past that hurdle. I could also try this on my personal Linux box. From Aaron.Larson at honeywell.com Thu Mar 22 11:57:25 2007 From: Aaron.Larson at honeywell.com (Larson, Aaron (SWCOE)) Date: Thu Mar 22 11:57:29 2007 Subject: vss2svn exits silently In-Reply-To: <003701c76c2b$7b2c8fe0$96f1fea9@htc.honeywell.com> Message-ID: >>>>> "AL" == Larson, Aaron writes: AL> ssphys: unknwon record type "?7" detected (offset 0x8f7) TASK: BTW, I just noticed the above spelling mistake (transposed "w" and "o") in "unknwon" in the ssphys error message. I kept searching my log files looking for "unknown record" and was getting pretty confused. From Aaron.Larson at honeywell.com Thu Mar 22 15:53:26 2007 From: Aaron.Larson at honeywell.com (Larson, Aaron (SWCOE)) Date: Thu Mar 22 15:53:32 2007 Subject: vss2svn exits silently In-Reply-To: <003701c76c2b$7b2c8fe0$96f1fea9@htc.honeywell.com> Message-ID: >>>>> "AL" == Larson, Aaron writes: >>>>> "D" == Dirk writes: AL> ssphys: unknwon record type "?7" detected (offset 0x8f7) TASK: D> This really sounds like a broken phyiscal file. ssphys also reports checksum errors for this file, which seems to support your supposition. Odd that analyze didn't mention that. D> Can you run with --debug and --verbose to see which file is the D> borken one? Then try to move the phyiscal file out of your data D> folder and rerun again. But I expect, that this is not the root of D> the problems. As expected, the results are unchanged. The "svnadmin load" still fails. BTW, I received a private email message this morning pointing me at http://backpan.perl.org/authors/id/A/AV/AVATAR/Config-Ini-1.08.tar.gz for config.ini, so I'll try to get a source build working. If I'm successful, I'll update the wiki with additional build instructions. From Aaron.Larson at honeywell.com Thu Mar 22 19:24:00 2007 From: Aaron.Larson at honeywell.com (Larson, Aaron (SWCOE)) Date: Thu Mar 22 19:24:05 2007 Subject: vss2svn exits silently In-Reply-To: Message-ID: >>>>> "AL" == Larson, Aaron writes: AL> BTW, I received a private email message this morning pointing me at AL> http://backpan.perl.org/authors/id/A/AV/AVATAR/Config-Ini-1.08.tar.gz AL> for config.ini, so I'll try to get a source build working. If I'm AL> successful, I'll update the wiki with additional build instructions. That worked! I can now run from source. I updated the wiki with my experiences with Cygwin. Someone more knowledgeable with the software could probably turn my text into something more useful. http://www.pumacode.org/projects/vss2svn/wiki/InstallingVss2Svn From coreycollins at gmail.com Sun Mar 25 12:55:45 2007 From: coreycollins at gmail.com (Corey) Date: Sun Mar 25 13:00:21 2007 Subject: VSS 2005 Message-ID: We upgraded our VSS to 2005 around September of last year. Now when I run vss2svn it only exports all of he data from September back. I don't get many errors when I run the program it just seems to think none of my new stuff exists. I have run analyze quite a few times on my VSS database too. Are there any incompatibility problems with a VSS 2005 database and vss2svn? From toby at etjohnson.us Sun Mar 25 19:19:08 2007 From: toby at etjohnson.us (Toby Johnson) Date: Sun Mar 25 19:19:11 2007 Subject: VSS 2005 In-Reply-To: References: Message-ID: <4607036C.9030105@etjohnson.us> Corey wrote: > We upgraded our VSS to 2005 around September of last year. Now when I run > vss2svn it only exports all of he data from September back. I don't get many > errors when I run the program it just seems to think none of my new stuff > exists. I have run analyze quite a few times on my VSS database too. Are there > any incompatibility problems with a VSS 2005 database and vss2svn? > Hi Corey, Have you tried running ssphys.exe directly on one of the VSS2005 "physical" files? I myself use VSS 2005 for testing vss2svn so I know that it does work with it, but I don't know what other factors might be coming into play. toby From finnied at aciworldwide.com Sun Mar 25 19:36:14 2007 From: finnied at aciworldwide.com (finnied@aciworldwide.com) Date: Sun Mar 25 19:36:25 2007 Subject: ssphys error: failed to read necessary amount of data from input file Message-ID: Hi all, I've been trying to do a conversion of a fairly large VSS database (1.67GB). After running analyze, and using the nightly build 20070310, I got 2 occurrences of this sort of error: vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ssphys: reverse delta: failed to read necessary amount of data from input file Try `ssphys --help` for more information ERROR -- FAILED with non-zero exit status 255 (cmd: "ssphys" get -b -v20 --force-overwrite -ewindows-1252 "..\VSS\SubVersion/data/B/BPWHAAAA" E:\_vss2svn/vssdata/BP/BPWHAAAA) at vss2svn.pl line 1128 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Running with --verbose and --debug, all I got in the stdout stream that looked related was: vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv IMPORTSVN: FAILED with non-zero exit status 255 (cmd: "ssphys" get -b -v20 --force-overwrite -ewindows-1252 "..\VSS\SubVersion/data/B/BPWHAAAA" E:\_vss2svn/vssdata/BP/BPWHAAAA) at vss2svn.pl line 1128 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The debug output is 140MB, so it is hard to know what else to look for :-) When I try to load the dumpfile into subversion, I finally get the following on stderr: vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv svnadmin: File not found: transaction '20678-1', path 'orphaned/_YEDAAAAA/S01/InstallShield/WebGate/Setup Files/Uncompressed Files/Language Independent/OS Independent/setup.bmp' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ svnadmin load then terminates. The stdout for the load command finishes with: vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv <<< Started new transaction, based on original revision 20678 * adding path : orphaned/_YEDAAAAA/S01/InstallShield/Web Services Tool Kit/Setup Files/Uncompressed Files/Language Independent/OS Independent/setup.bmp ... done. * adding path : orphaned/_YEDAAAAA/S01/InstallShield/Web Services Tool Kit/Setup Files/Uncompressed Files/Language Independent/OS Independent/setup16.bmp ... done. * adding path : orphaned/_YEDAAAAA/S01/InstallShield/WebGate/Setup Files/Uncompressed Files ... done. * adding path : orphaned/_YEDAAAAA/S01/InstallShield/WebGate/Setup Files/Uncompressed Files/Language Independent ... done. ------- Committed revision 20678 >>> <<< Started new transaction, based on original revision 20679 * adding path : orphaned/_YEDAAAAA/S01/InstallShield/WebGate/Setup Files/Uncompressed Files/Language Independent/OS Independent/setup.bmp ... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This definitely well short of the number of revisions that should be present - here is the final output from the conversion process: vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Started at : Thu Mar 22 15:29:52 2007 Ended at : Thu Mar 22 20:26:01 2007 Elapsed time : 04:56:09 (H:M:S) VSS Actions read : 110598 SVN Revisions converted : 24166 Date range (YYYY/MM/DD) : 1996/12/03 to 2007/03/13 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The dumpfile produced is about 11GB. Am I hitting some limitation in ssphys/vss2svn ? Any ideas on what else I could try ? Thanks. David Finnie -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.pumacode.org/pipermail/vss2svn-users-lists.pumacode.org/attachments/20070326/586a36c8/attachment.html From vss2svn at nogga.de Mon Mar 26 11:28:17 2007 From: vss2svn at nogga.de (Dirk) Date: Mon Mar 26 11:28:30 2007 Subject: VSS 2005 In-Reply-To: References: Message-ID: <4607E691.50309@nogga.de> Hi > We upgraded our VSS to 2005 around September of last year. Now when I run > vss2svn it only exports all of he data from September back. I don't get many > errors when I run the program it just seems to think none of my new stuff > exists. I have run analyze quite a few times on my VSS database too. Are there > any incompatibility problems with a VSS 2005 database and vss2svn? > I do not know any incompatibilites. Just a dump question: Did you run the conversion on a copy of your database that you made in september? Dirk From vss2svn at nogga.de Mon Mar 26 11:41:10 2007 From: vss2svn at nogga.de (Dirk) Date: Mon Mar 26 11:41:22 2007 Subject: ssphys error: failed to read necessary amount of data from input file In-Reply-To: References: Message-ID: <4607E996.70706@nogga.de> > vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv > > > ssphys: reverse delta: failed to read necessary amount of data from > input file > Try `ssphys --help` for more information > ERROR -- FAILED with non-zero exit status 255 (cmd: "ssphys" get -b > -v20 --force-overwrite -ewindows-1252 > "..\VSS\SubVersion/data/B/BPWHAAAA" E:\_vss2svn/vssdata/BP/BPWHAAAA) > at vss2svn.pl line 1128 > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > This is a broken phyiscal file. If you already did run analyze, then try to remove the file from your archive, move it to a backup store. We need to deal with this situation in the converter. But for know, the only solution is to remove the file: data/B/BPWHAAAA > When I try to load the dumpfile into subversion, I finally get the > following on stderr: > > vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv > > > svnadmin: File not found: transaction '20678-1', path > 'orphaned/_YEDAAAAA/S01/InstallShield/WebGate/Setup Files/Uncompressed > Files/Language Independent/OS Independent/setup.bmp' > I don't think, that this is related to the above error. I'm wondering about the error. If you look into revision 20678 all the pathes up to "Language Independent" are created. But not the final path "OS Independant" > * adding path : orphaned/_YEDAAAAA/S01/InstallShield/WebGate/Setup Files/Uncompressed Files ... done. > * adding path : orphaned/_YEDAAAAA/S01/InstallShield/WebGate/Setup Files/Uncompressed Files/Language Independent ... done. There must be a bug in the SanityChecker, because this one is responsible for creating missing directories. Also I'm astonished about the revision break from 20678 and 20679. Can you look into your generated datacache.VssAction.tmp.txt and search for the string "S01/InstallShield/WebGate/Setup Files/Uncompressed Files/Language Independent/OS