Re: PRCS question Jonathan S. Shapiro (shap@eros-os.org)
Mon, 17 Apr 2000 22:45:09 -0400

> It does have rename support. You have to perform the rename yourself in
> the file system and then edit the project file to reflect the change....

Pardon me for a stupid question.

How difficult would it be to implement a "prcs rename" command to automate this?

> There are two types of file in the repository: those that are members of
> a sequence (e.g., branch records), and those that belong to unordered sets
> (e.g., versions referenced by branch records)....

> So the simple answer to your question is that you can synchronize
repositories
> by exchanging versions until both peers have the complete set of versions.

Agreed, and also agreed about the rest of your note.

How difficult would it be to actually *implement* repository synchronization along the lines you describe?

Because DCMS stores everything as files, this can be accomplished easily with rsync(). There are only two tricky bits I can see:

  1. Ensuring that a locally created branch (created while offline) gets a universally unique true name.
  2. Transferring control of a branch (i.e. control over the right to add a new revision) from one server to another (the problem is just getting a reliable atomic transfer protocol built. Oh. That's obvious. Never mind).

Is there some mechanism of comparable simplicity that would allow two related rsync repositories to be synchronized offline? In the short term, I'll carry the whole damn repository on my portable if it lets me work on the road and I can get it decently well compressed.

Jonathan