I'm looking for an easy way to allow programmers on a large project to create something equivalent to a personal "branch" on the main project that they can check their "Work In Process" (WIP) in and out of while they actively develop a feature or enhancement over the period of several days to several months. Then when they feel it's ready they need to do the functionally equivalent to merging the branch back into trunk.
It appears that all this would be pretty simple if they literally did just create a branch on the main project. However, for a number of different reasons, I'd prefer that they could have a separate repository for their WIP. The scenario I'm thinking of is one in which there's a main company that controls the project and tightly manages the Subversion Repo for it. They are granting subcontractors rights to check-out parts of the project from the main repository but they only want to allow those subcontractors to "check in" product that is ready for at least Beta testing. In the mean time, the subcontractors want to be able to check their WIP files in and out of a repository over the course of the days or weeks that they are working on it. One thought I had, that I'd like to know if there's an easy way to do it or if I'm just heading down the completely wrong path. I'd like to be able to: 1) "export" sections of the "main" repository 2) Then add the directories that were just exported to a repository that would the "working repo" 3) Check out the stuff just added to the "working repo" to a "working copy" (WC) 4) Developer does their development in this WC, checking things into the "working repo" whenever they wish to make sure the have a snapshot or backup of their work 5) When the developer feels they are ready to "merge" their work back in to the "main" repo they would do something like: a. Check out the equivalent section of the "main" repo to a separate WC b. Delete everything from that WC c. Copy everything from the "WC" that came from their "Working repo" to the now "empty" WC from the main repo d. Diff the current files in the "main" WC against the current version of the "main" repo and resolve conflicts e. Check the WC from the "main" repo back into main f. Delete all WC folders from their local machine g. Delete the entire "working repo" One big flaw I see in this is, I'm not sure how deletes would be tracked, though I'm sure there's plenty of other problems with this that I haven't thought of. But then I'm guessing I'm not the first person to want to do something like this. A key aspect is, the end result HAS to be REALLY easy to teach people to do and I need it in a Windows environment. Currently most of the developers are not interested in knowing any more about Subversion than what they know right now, which is, it acts "kind of like a network share". Thanks in advance, Tom Malia T <http://www.ttdsinc.com> &T Data Solutions L.L.C.
