Jump to content

Help with Simple Replication Setup

Recommended Posts

Hi guys.

I am trying to figure out if I can do a basi always on replication between two servers. Short and sweet, I want to achieve the following:

Site A <--> Site B (Automatic, allways on)

User X --> Makes changes to repoXYZ --->check into Site A Server --> auto replicate to Site B Server ---->user Y checks out repoXYZ from local server (site b ) --> gets changes

And offcourse, vice versa, from Site b, changes replicated to Site A server

I have played witha sync view, but my concerns are the following:

  • I have to set it up per repo
  • I have to manually sync it
  • I know I can set up triggers, but I don;t want triggers, I want an allways on sync?

The reason for this insanity :-), is that I am planning on controlling some large files (graphical work). I will be using two remote locations, Site A and Site B, conencted via DSL.

So when getting a new version of a large 40mb file that user X as site A ghanged, at site B, I want to get that file from the local site b server. I am attempting to not bogg up my connection with on demand pullling of a 40mb file. I essentially want the two servers to silently replicate to each other, and the local users to not woryr about manually starting a replication sync.

The local users must have normal check in check out, update opreations. The replication, must in all relative meaning, be invisible and silent.

Can this be achieved?

On my last note, what a kick as piece of Source Control software. Simply awesome thus far.

P.S. This topic sprouted from my initial conversation with cidico, here: http://www.plasticsc...page__pid__4141


Link to comment
Share on other sites

If the concern is clogging up a relatively limited connection, I'd wonder if an always-on sync is truly what you want. Having the repositories sync on every single commit is going to take up a good amount of bandwidth and you probably don't need it.

What if you approached it in a slightly different manner? If you were to have people working a branch-per-task workflow, the incremental work of an individual developer probably doesn't matter on an instantaneous basis. It's only important when that developer has completed his or her task. Therefore you wouldn't have to replicate the task branch until that task was completed.

I have a somewhat similar scenario to you and my approach is to sync the repositories on a set schedule. For me it's a couple of times a week, but for you it might be nightly. Then, if a need ever arises for the work to be available right that instant, you could have the developer manually push or pull the branch that needed to be. This would keep your repositories fairly in sync, but not bog down your connection.

As for keeping them in sync on a schedule, I'm just going to write a script and have it run on a set basis. That's all done on the OS side and not the Plastic side.

Link to comment
Share on other sites

Thanks for your input carpediemeviv (jeeeez thats a long nick to spell :-) )

I will most likely have to end up with a config similar to yours, but I would have really loved to ahve it all run silently. My concrn isn;t data usage, its bandwidth. And having to wait for a updated version for 10 or 20 minutes, or maybe a whole set of graphical sources, an hour, two? Thats going to put a dent in the awesome experience I've bee having so far.

I am wondering... maybe I can use a mysql backend for both site servers, and set up replication between the two mySQL servers? Tht should run silently in teh abckground, and site a plastic changes will be made as if it were made locally at site a?

Can I ask your opinion on above idea?


Link to comment
Share on other sites

After a looooooong discussion with myself, I understand that manually replicating the db's, would break parrallel compatibility, and work will/could/most likely, will be overwrtitten.

Changing strategies, is there a way to sync a repo silently in the background? While I continue on with functionality in plastic?

Link to comment
Share on other sites

Hi louisvantonder!

I was thinking about it too. Sometimes I think Plastic could do some work in a background process.

May I ask if you really need to be working on the "bleeding edge"? I mean, you can schedule to update 4 times a day, or 2.. at your lunch time...

Plastic's beauty is the capability of work in disconnected way.

I was wondering about the possibility of using database's sync in your case. Have you tried this?

Link to comment
Share on other sites

Hey cidico.

I have decided to step off the manual database replication. I'm confident that it will break teh parallel development... and thats kind why we are all here?

I am going to give it a spin for a while and see if it really bothers me that much to get new stuff from a remote server on demand. For now I am leaving it in the , what seems to be, more than capable hands of the plastic developers... they obviuosly know what they are doing.


Link to comment
Share on other sites

I'm really willing to see that, also I would like to know is is possible to setup "ownership rules" this is how I would like it to work:

We have at startup this two branches;



I dont mind to replicate all the other branches, bu tI would like that you only could create a child branch from bran chid of "your reprository" main branch.

This way is far mor easy avoid replication conflicts betwen servers (IMHO)

Link to comment
Share on other sites


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

  • Create New...