Jump to content

Getting no where with VSS to Plastic migration. Need help.


Aaron K

Recommended Posts

Hi everyone. I'm currently trialing Plastic SCM (4.0) for our company and one thing we need to do is convert our old VSS repository, with history, into Plastic. I have tried running the Plastic importer but have been getting strange results. What I end up with when it's finished is a new workspace directory with files, but nothing is actually in the repository. If I then add those files to source control, obviously they have no history. Looking at the logs I see a few lines like.

2011-11-21 10:15:13,710 WARN Importer - The line History of $/@dev.700/dev.doc/docname.txt ... doesn't match in any state

AND

2011-11-21 10:15:40,570 ERROR qn - Can't solve the SID for Builder. No mapping between account names and security IDs was done

NOTE: Builder is our build machine that labels our source before performing official builds.

I'm not sure if these errors or warnings are causing the problem, but the importer doesn't tell me that anything is wrong. Now I had previously installed version 3, before discovering 4 was around and I have noticed the importer comes with 3, not 4 so maybe this is an issue. But any help would be appreciated as we very much want to move to Plastic but it's rather important for us to get our current code base into it with history.

Many thanks

Aaron

Link to comment
Share on other sites

Hi Aaron,

First my apologies for the unclear migration path.

Look, we rewrote the entire migration stuff for 4.0. Migration is a dirty business so we changed the whole thing and jumped into fast-import new wave :P

So, we still didn't write down the migration path, but it is pretty doable. Check this: http://git.661346.n2.nabble.com/VSS-to-git-td2410442.html.

Basically, you need to generate a fast-import format, which is the format used by git, mercurial (hg) and now plastic 4.0.

Alternatively check:

* http://code.google.com/p/vss2git/

* And then: http://codicesoftware.blogspot.com/2011/10/connecting-plastic-scm-to-github.html

I'll try to come up with more info tomorrow.

Link to comment
Share on other sites

Hi Manu. I have had some mixed success. A few of our smaller VSS projects are migrated but the core ones don't seem to want to work. I turned on some detailed debugging (I found info on that in another post on these forums) and these are the results I'm getting when I use fast-import.

I get a bunch of lines like this

2011-11-30 16:58:39,049 2864 (null) (null) (null) DEBUG fast-import - Read mark : [2501]

Then:

Can't add from 2498 to commit 2510 because it wasn't processed yet

Then:

mark :2508

blob

mark :2509

commit refs/tags/build_1000

mark :2510

author NAMEREMOVED <NAMEREMOVED@DOMAINREMOVED.com> 1093390130 +0000

committer NAMEREMOVED <NAMEREMOVED@DOMAINREMOVED.com> 1093390130 +0000

data 30

Error: Can't add from 2498 to commit 2510 because it wasn't processed yet

2011-11-30 16:58:39,080 2864 (null) (null) (null) ERROR cm - Error: Can't add from 2498 to commit 2510 because it wasn't processed yet

2011-11-30 16:58:39,112 2864 (null) (null) (null) ERROR cm - at hu.a(bz A_0)

at gi.a(RepositoryInfo A_0, String A_1, a A_2, String A_3, String A_4, Boolean A_5, Boolean A_6)

at mz.a(b A_0)

at w1.c(String[] A_0)

After that the operation to fast-import stops.

I can email you the full log file if you want.

Link to comment
Share on other sites

Hi Aaron,

yes please email me the complete log, mlucio at codicesoftware dot com

Are you finally using vss2Git to perform the fast-export?

Can you try to use vss2svn, then git-svn and finally create the fast-export package to be imported by PlasticSCM?

Regards,

manu

Link to comment
Share on other sites

To add, I don't think we can use vss2svn. There's multiple versions out there and of those, the ones that seem to actually implement all the required features (branching) seem to rely on a Visual Studio 2005 version of VSS and the VSS interop library. However, we are running an ancient version way back at VC 6 so do not have that.

Link to comment
Share on other sites

Hi Aaron,

can you please perform the fast-export from git again but this time with the "--no-data" parameter?

This will create a package without data, only history metadata and smaller, then send you us the package and we will debug and fix the issue.

You can send the package to support at codicesoftware dot com.

Regards,

Manu

Link to comment
Share on other sites

Please also remember to add the -C thing to git. Check this:

http://codicesoftware.blogspot.com/2011/10/connecting-plastic-scm-to-github.html

The error you sent seems related to a commit out of order (like a parent changeset created after a child, which can only happen due to an error in the import or export, but it is quite unlikely once it is inside git)

Link to comment
Share on other sites

Hi Aaron, can you please perform the fast-export from git again but this time with the "--no-data" parameter? This will create a package without data, only history metadata and smaller, then send you us the package and we will debug and fix the issue. You can send the package to support at codicesoftware dot com. Regards, Manu

Thanks Manu, the file has been sent.

Psantosl, I use the command line as specified in that link.

Link to comment
Share on other sites

Hi Aaron,

have you been performing your fast-imports using the "--stats" parameter?

If so, please re-import the failed packages WITHOUT the "--stats" parameter.

It seems that the command is having some troubles generating the statistics.

Regards,

Manu.

Link to comment
Share on other sites

Hi Manu, first thanks very much for all your help.

Yes I was using the --stats option (I must have got that option from somewhere during my searches for help). When I removed that option I tried doing an import from the no-data file and that was OK. However when I then went performed an import without the --stats option but with real data I got this error after about 30 seconds of import.

Error processing changeset mark 5570. Parent cset mark: 4651. Parent cset: 8

Illegal characters in path.

Followed by a bunch of filenames, followed by

Error: Illegal characters in path.

2011-12-06 10:58:45,848 2308 (null) (null) (null) ERROR cm - Error: Illegal characters in path.

2011-12-06 10:58:46,473 2308 (null) (null) (null) ERROR cm - at System.IO.Path.CheckInvalidPathChars(String path)

at System.IO.Path.GetFileName(String path)

at nz.a(AddInfo A_0, String A_1, ArrayList A_2, ah A_3, aae A_4)

at nz.a(ArrayList A_0, ah A_1, aae A_2)

at nz.a(IList A_0, ah A_1, aae A_2)

at xq.a(d A_0)

at xq.b(d A_0)

at xq.a(a A_0)

at xq.b(a A_0)

at xq.a(as3 A_0, Int64[] A_1)

at if.a(as3 A_0)

at gi.a(RepositoryInfo A_0, String A_1, a A_2, String A_3, String A_4, Boolean A_5, Boolean A_6)

at mz.a(b A_0)

at w1.c(String[] A_0)

Unfortunately it doesn't print out what the path is and the dump of filenames immediately before do not look like obviously faulty paths.

Cheers

Aaron

Link to comment
Share on other sites

Hi Pablo, thanks for the suggestion. Around the :5570 is the following

commit refs/tags/build_1000

mark :5570

author REMOVED <REMOVED@REMOVED.local> 1093390726 +0000

committer REMOVED <REMOVED@REMOVED.local> 1093390726 +0000

data 30

Maintenance branch for REMOVED+

from :4651

and under that a list of files. I assume the files under that mark command are the related files because I found a couple of potentially dodgy ones.

There's a couple of files that that have '!' characters in them, and one file that actually has high ascii characters in it (Why I have no idea but it's there in our repository and works fine for everything we do). In the repo file they have been converted to escape sequences like so :

doc/\371\341\337G\253 \272\341\361\341\363\341\321\274d\321 \363\253\273a\253\337d.doc

I'm not sure if this is the problem, but a brief look on the net suggests that support for backslash escaping of filenames it legal in git fast-export. Is plastic fast-import handling these OK?

Aaron

Link to comment
Share on other sites

Hi Aaron,

The name part of the fast-export entries are in UTF-8. That's how we parse them.

Obviously we're having an issue here.

So, two things:

1- Can you send me the entire commit section of the fast export? From the commit part (the mark) till the next mark, including all the file names. If you attach this file I'll use it to create a new smoke test and then fix the problem.

2- If you want, you can fix it yourself in order to move forward (I mean, fix your repo), changing the names of the faulty files in the fast-export file.

pablo

Link to comment
Share on other sites

Hi Aatron,

the only strange file I can see is the "~SDK/doc/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.doc" file, can you try to reduce the name length to maybe "a.doc" and retry the import?

Tell us if you get the same error.

Manu.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...