Jump to content

Fast Import and Export question


cidico

Recommended Posts

Hi,

I was reading the 4.0 docs and I didn't get one thing. When you say this in the docs:

Plastic SCM supports importing incrementally, using a marks file that records what changesets were imported. When a marks file is specified, the fast-export file is parsed and only the changesets that are not found in the marks file are imported.

Does it means that Plastic can generate only a fast export files with only the news branches, changesets, labels and etc?

I mean... Can I use only one fast-export file to take 10 branches to work at home, and then, generate another fast-export file from my repository at home with the changes made to bring back to my work with no need to delete and recriate a new repository?

Link to comment
Share on other sites

Supporting a work from home scenario, just in general, feels like a solution where a more DVCS approach might make sense. Have you looked into Plastic's support for a DVCS workflow and found it didn't work for what you needed it for? Maybe a little more detail on exactly what you are trying to do or what you have tried and didn't work could help me understand a little better.

You can check out http://plasticscm.com/releases/4.0/manuals-html/en/userguide.htm#_Toc312318913 for the quick intro to DVCS or the DVCS guide is at http://plasticscm.com/releases/4.0/manuals-html/en/distributedsystem.htm

Link to comment
Share on other sites

Hi carpediemvive,

Well, in my company we can't directly open our network without asking the client (contractual issues). Even bring a laptop here isn't possible.

So, sometimes I need to code outside my company network, for this, Plastic is perfect. But I use replication packages to "export" changes at my home repository.

Today, we have a lot of branches and exporting them manually is very unproductive.

I was wondering if I can use the fast-export tool to take my workstation repository to my home (it's quite outdated..).

Mostly is for merge the code made by my co-workers and apply some fix.

So, can I import/export incrementally using fast-export and fast-import?

Link to comment
Share on other sites

Hi cidico!

yes, you can do it using the "--import-marks" and "--export-marks" parameters in both commands. I'm sorry, it's not documented yet (carpediemevive, our fault :P)

So basically you can work like this:

cm fe --export-marks=sync.file (first fe)

cm fi --import-marks=sync.file --export-marks=sync.file

and if you want to re-fastimport/fastexport reuse the "sync.file" file to do it:

cm fe --import-marks=sync.file --export-marks=sync.file (incremental export)

cm fi --import-marks=sync.file --export-marks=sync.file

Manu.

Link to comment
Share on other sites

Hi manu!

I noticed something very strange when doing the fast-export and fast-import...

As my older repository was very very outdated, I removed it and imported the newest version using the fast-import.

But, it seems that Plastic is starting over the changeset ids! I did one checkin right now and plastic is re-started the changesets ids and my DBrEx is messed up!

Right now, after a checkin operation, the Plastic GUI is breaking! The client crashes and needs to be restarted. I can't see the DBrEx anymore

I'm saad :~~

Link to comment
Share on other sites

Let's sEe, remove the sick repository using the command line (cm rmrep). Remove also the workspace associated to the sick repository (cm rmwk wkPath), restart the server and then open the GUI. If it works try to import again the package into a new repository.

Tell me if it works.

Link to comment
Share on other sites

The crashing was solved by removing the sick repository. :)

Strange thing:

When I exported my repository from home, I did like this:

C:\Export>cm fe Doxicobol@kepler:8087 Doxicobol.fast-export --export-marks=Doxicobol.sync

20 changesets retrieved

20 changesets will be exported

0 labels will be exported

3 merges found

0 csets are out of order

Changeset 0@/main 1/20. Elapsed 00:00:00.0310000

Changeset 1@/main 2/20. Elapsed 00:00:00.5150000

Changeset 2@/main 3/20. Elapsed 00:00:00.5310000

Changeset 3@/main/Task0001 4/20. Elapsed 00:00:00.5770000

Changeset 14@/main/Task0001 5/20. Elapsed 00:00:00.5770000

Changeset 16@/main/Task0001 6/20. Elapsed 00:00:00.6090000

Changeset 17@/main/Task0001 7/20. Elapsed 00:00:00.6240000

Changeset 18@/main/Task0001 8/20. Elapsed 00:00:00.6240000

Changeset 19@/main/Task0001 9/20. Elapsed 00:00:00.6550000

Changeset 20@/main/Task0001 10/20. Elapsed 00:00:00.6710000

Changeset 21@/main/Task0001 11/20. Elapsed 00:00:00.6710000

Changeset 22@/main/Task0001 12/20. Elapsed 00:00:00.7020000

Changeset 23@/main 13/20. Elapsed 00:00:00.7180000

Changeset 24@/main/Task0002 14/20. Elapsed 00:00:00.7330000

Changeset 25@/main/Task0002 15/20. Elapsed 00:00:00.7650000

Changeset 26@/main/Task0002 16/20. Elapsed 00:00:00.7800000

Changeset 27@/main/Task0002 17/20. Elapsed 00:00:00.7960000

Changeset 28@/main 18/20. Elapsed 00:00:00.8110000

Changeset 29@/main/Task0003 19/20. Elapsed 00:00:00.8430000

Changeset 30@/main 20/20. Elapsed 00:00:00.8430000

I tried to import the fast-export file generated like this:

C:\Users\pdinelli\Desktop\Branches>cm fi Doxicobol@wks16:8087 Doxicobol.fast-export --import-marks=Doxicobol.sync --export-marks=Doxicobol.sync

Doxicobol.fast-export correctly parsed. 20 commits. 94 ms

main

main-Task0001

main-Task0002

main-Task0003

4 branches

0 modified files found refering to an SHA instead of a mark

175 modified files

05,5 Mb in blobs. 136 blobs

Nothing was imported. If I remove the --import-marks=Doxicobol.sync --export-marks=Doxicobol.sync argument, then everything is imported as should.

But if I perform 2 check-ins, Plastic GUI crashes (The Changeset IDs is starting from 1...).

I did this procedure 5 times by now. I'm pretty sure it's a bug. :(

I'm using a small rep just to try it out.

Using the mark file is not helping me :(

Link to comment
Share on other sites

manu,

Thank you very much for your time and help.

Even using the 2 separated mark files, the crash is happening.

It's related to the changeset number starting from 0 again, I guess!

Should I wait for the next release to use this?

Link to comment
Share on other sites

Hi cidico I tried the following with success:

cm fe OriginPnunit pnunit.dat --export-marks=origin.sync

cm fi DestinationPnunit pnunit.dat --export-marks=destination.sync

More than 2000 csets 404 branches and 11045 modified files.

Can you try it again?

Can you check which version of plastic are you working with?

Link to comment
Share on other sites

Hi manu!

I'm using the latest version available for download:

C:\Users\pdinelli>cm version

4.0.239.0

Maybe my problem is that I'm creating a new repository during the fast import.

I still have the problem with the changeset id.

Is there a "dirty" solution for it? A workaround maybe?

I did as you told me and the problem you saw at my machine still happens. :(

The import works just fine, but the problem is when I perform the checkins.

First the DBrEx goes crazy because it has 2 changesets 1 and at the second checkin, when I open the DBrEx it crashes the UI.

Link to comment
Share on other sites

Hi again! (I know, I'm an annoying person...)

I found myself with another problem when fast importing my real work project.

Created the fast-export file as you told me like a real good boy.

Here's the output of cm fe command:

(I tried to upload an attach file but it always says: "This upload failed." Using flash based uploader and basic one. :()

http://temp-share.com/show/KdPf35gAh -> the result file from the export.

When importing the fast-export file generated, this is shown to me in the CLI:

E:\Perfil\Desktop\Branches\Frigelar>cm fi Frigelar@kepler:8087 Frigelar.fast-export --export-marks=h

ome.sync

Repository Frigelar does not exist. It will be created

100 csets. 35 sec importing. 00 sec reading file. 12 sec uploading. 18 sec checking in.

200 csets. 66 sec importing. 00 sec reading file. 25 sec uploading. 35 sec checking in.

300 csets. 98 sec importing. 00 sec reading file. 38 sec uploading. 51 sec checking in.

Error processing changeset mark 3053. Parent cset mark: 3033. Parent cset: 340

There has been an unexpected error "The data was truncated while converting from one data type to an

other. [ Name of function(if known) = ]". For more information check the server log.

blob

mark :3048

commit refs/heads/main-E-Commerce-Detalhes do Pedido

mark :3049

author jsouza <jsouza> 1325102261 -0200

committer jsouza <jsouza> 1325102261 -0200

data 15

from :3043

M 100644 :3044 ECS.Frigelar.Infrastructure.Persistence/hibernate.cfg.xml

M 100644 :3045 ECS.Frigelar.UI.Web/Areas/Site/Views/User/_SignIn.cshtml

M 100644 :3046 ECS.Frigelar.UI.Web/Content/CSS/Home.css

M 100644 :3047 ECS.Frigelar.UI.Web/Content/CustomJS/Cart/Cart.js

M 100644 :3048 ECS.Frigelar.UI.Web/Content/CustomJS/User/UserSignIn.js

reset refs/heads/main-E-Commerce-Detalhes do Pedido

from :3049

blob

mark :3050

blob

mark :3051

blob

mark :3052

commit refs/heads/main-E-Commerce-Corre??es de Erros-Corre??o dos valores dos itens do carrinho-Cent

ral de Atendimento - Esqueci Minha Senha

mark :3053

author mdaltoe <mdaltoe> 1325102376 -0200

committer mdaltoe <mdaltoe> 1325102376 -0200

data 34

from :3033

M 100644 :3050 ECS.Frigelar.UI.Web/Areas/Site/Controllers/CallCenterController.cs

M 100644 :3051 ECS.Frigelar.UI.Web/Areas/Site/Views/CallCenter/_ForgotPassword.cshtml

M 100644 :3052 ECS.Frigelar.UI.Web/Areas/Site/Views/CallCenter/_LeftSidebar.cshtml

Error: There has been an unexpected error "The data was truncated while converting from one data typ

e to another. [ Name of function(if known) = ]". For more information check the server log.

(The ?? that is shown here is related to this other post: :) )

The server's log file is a little bigger, so I'll add a link for you to download as the result from the fast-export operations. Here it is: http://temp-share.com/show/dPf3YpF7W

Link to comment
Share on other sites

After a careful reading of the server's log file, it seems that the branch's name is a little bigger than Plastic can handle.

One thing:

How can I create a branch with this name in my work machine and only when importing the branch it says that the branch's name is too long??

PS: The error about the branch's name size is shown when generating the fast-export file. Sorry. :)

Ah, almost forgot...

It seems that Plastic isn't using an atomic transaction when importing.

After the error, I could see some branches in Plastic GUI, but others are missing.

Is it the default behaviour?!

Wouldn't be better if the fast-import operation fails the transaction holding all importing operations be rolledback ?

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...