Hi Werner,

The function TiXmlBase::PutString loops endlessly when it is fed some
odd foreign characters. I was able to solve that with this patch:
actually I intentionally modified the tinyxml.cpp sources to include this isprint(c) check (see here http://www.pumacode.org/projects/vss2svn/changeset/124#file5), but I forgot about an additional else path, that simply incremented the i counter.

The reason why I did this, was that even if I encoded the "odd" characters, the output XML wasn't still correct. I havn't come up with a correct solution for the complete encoding issue. The problem is, that vss can create completely junk data, and this can't be safely transported into any encoding, since the characters are not valid.

Changing to libxml2 doesn't solve the problem either. I didn't used this library, since I didn't want to depend on the complete iconv chain.

So the correct fix would be:

       else if (isprint (c))
       {
           //char realc = (char) c;
           //outString->append( &realc, 1 );
*outString += (char) c; // somewhat more efficient function call.
           ++i;
       }
       else
       {
           ++i;
       }

could you try this one please.

The conversion process now runs to completion but I did'nt get a useable
dumpfile.

Can you be more specific on this? What is the error message?

I've seen the following error messages. Especially that last
one looks like there is some issue with slash vs. backslash in
pathnames. Can someone please explain which of these error message are
fatal?


at /usr/local/bin/vss2svn.pl line 625
Attempt to delete unknown item 'QIDAAAAA':

at /usr/local/bin/vss2svn.pl line 625
Attempt to add entry 'TVHAAAAA' with unknown parent

at /usr/local/bin/vss2svn.pl line 625
Could not determine real path for 'LXHAAAAA':

Could you please have a look into your "datachache.PhysicalAction.tmp.txt" file and check the timestamps of the two "ADD" actions for the physical file QIDAAAAA. e.g in my case, where I also have such a file, I find the following

> 28050 QIDAAAAA 1 \N ADD logo.BMP 2 1044270559 Dirk 1 \N 1 AAAAADIQ 0 \N > 45903 QIDAAAAA \N ZWAAAAAA ADD logo.BMP 2 1044270559 Dirk 0 \N 1 AAAAADIQ 1 \N

Some actions in VSS come in pairs, one time in the child and one time in the parent. You have to recombine them to get useable information. For the output above, the first line is the info in the child, and the second one in the parent, and for both lines, the timestamp 1044270559 is the same.

Please check this for all files reported as problematic. If there is a larger difference than 4 seconds, you could try the following:

In vss2svn.pl, around line 513, there is the following SQL statement with

SELECT
   *
FROM
   PhysicalAction
WHERE
   parentdata = 0
   AND physname = ?
   AND actiontype = ?
   AND (? - timestamp IN (0, 1, 2, 3, 4))
   AND author = ?
ORDER BY
   timestamp
EOSQL


Please try to increase the timestamp range up to 20:

> AND (? - timestamp IN (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20))

Anybody a better solution for this ;-) ?


Could not open export file './_vss2svn/vssdata/YB\YBAAAAAA.1'
at /usr/local/bin/vss2svn.pl line 755
Could not open export file './_vss2svn/vssdata/ZB\ZBAAAAAA.1'
at /usr/local/bin/vss2svn.pl line 755

Could you please lookup the filename of this item YBAAAAAA (e.g in the datachache.PhysicalAction.tmp.txt) and check, wether this item was branched?

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

Reply via email to