Forum Discussion

jose_pita's avatar
jose_pita
Super Contributor
11 years ago

Share Project with N developers

Hi There,



Right now, in my team, we are 7 people working with TC with 7 separate projects, as we use tortoise svn and TC does not support it, we can't use only one project because of the test items to run, whenever we try to merge the project folder we loose some changes.



So far, it is maintainable, each one of our projects runs through the night triggered by jenkins running a bat file and we see our errors (positive or false positive) in the morning.



The thing is, now some developers want to try TC to see how it works and eventually write some tests and I don't want to have 30 different projects.



I'd put them working on my project and add the tests to my Test items to run but the problem is the project file, if I add a test at the same time as they do, only one of the tests go to the project explorer when each of us commit the file to svn, the other test stays on the file system but not on TC.



I have access to a TFS server, I was never able to put it working inside TC but if it solves my problem I can give it a go again and try to troubleshoot the problems.



Really need your help with this one guys.



Thanks in advance.







  • We used mercurial in a previous life.  We did, also, experience similar headaches dealing with checking in MDS file, Script.tcScript files, etc.



    How did we handle it?  We slapped the wrist of the person who checked in a new script unit without checking in the Script.tcScript file.  This was standard practice.  The MDS file was not nearly as important.  It gets updated on the fly, anyways, every time you run the application.  The only one we really needed to worry about was the Script.tcScript file on a per project basis.  You get that right, the rest of the script units fall into place just fine.



    Now... NameMapping?  Yeah, that gets iffy.  Pretty much, if NameMapping needed to be updated, we had one person doing the updating and checking in the changes and then, once it was checked in, everyone did a "get new" on the file and used it as is.  We pretty much locked that file down to limit it to one test developer to make sure we didn't step on each other's work.
  • AlexKaras's avatar
    AlexKaras
    Champion Level 3
    Wow, Robert..!

    Haven't seen you here for a long time... Hope you are well and welcome back :)



    As for the topic itself: unfortunately, it is near to impossible to merge any of TC project files except script units (though even for them I never met with the cases of successful automatic merge). So our approach is pretty like those already mentioned: there is a dedicated person responsible for merging all changes reported by team members. All team members work on their local copies of the project making changes only to the modules they are responsible for and updating all other modules when notified by that guy that merges local changes to the master test project.
  • simon_glet's avatar
    simon_glet
    Regular Contributor
    Jose,



    In this case, TFS' exclusive checkout way of managing files might be usefull. You don't need to use it from TC.



    In your case, everytime a change is made to the project file you will have to:

    - commit the changes immediately

    - notify all project editors that the project has changed

    - have all project editors update-overwrite their local project file



    It's a pain but you can't work without a project file ;-)



    Sincerely
  • jose_pita's avatar
    jose_pita
    Super Contributor
    It's a pain allright, but I think it's my only way out right now...
  • tristaanogre's avatar
    tristaanogre
    Esteemed Contributor
    We used mercurial in a previous life.  We did, also, experience similar headaches dealing with checking in MDS file, Script.tcScript files, etc.



    How did we handle it?  We slapped the wrist of the person who checked in a new script unit without checking in the Script.tcScript file.  This was standard practice.  The MDS file was not nearly as important.  It gets updated on the fly, anyways, every time you run the application.  The only one we really needed to worry about was the Script.tcScript file on a per project basis.  You get that right, the rest of the script units fall into place just fine.



    Now... NameMapping?  Yeah, that gets iffy.  Pretty much, if NameMapping needed to be updated, we had one person doing the updating and checking in the changes and then, once it was checked in, everyone did a "get new" on the file and used it as is.  We pretty much locked that file down to limit it to one test developer to make sure we didn't step on each other's work.
  • simon_glet's avatar
    simon_glet
    Regular Contributor
    [TC 9.2.2460.7]



    Hi Jose,



    Our projects have multiple developers and the tricky parts are the project (.mds and .pjs) and Name Mapping files. Those files are impossible to merge with the source code versionning systems that we use outside of TC because of performance reasons. You can merge the name mapping from TC but you have no idea what happened (log, added, removed, anything ?)

    We write scripts only so merging the changes is straight forward.



    In our experience editing the project variables or the name mapping, require an exclusive access with a overwrite update as soon as the checking/commit is done by the editor.



    If there is a better way to do it, I would love to hear about it.



    Sincerely
  • simon_glet's avatar
    simon_glet
    Regular Contributor
    Hi Jorge,



    We currently use CVS with the Tortoise client.



    Sincerely
  • robert -



    Is that script file the equivalent of KeywordTests.tcKDT?



    We do the same thing with the Name Mapping file.  One of us merges it for everyone and then checks it in.  
  • jorgesimoes1983's avatar
    jorgesimoes1983
    Regular Contributor
    Hi Simon, which do you use "source code versionning systems that we use outside of TC"?



    :)
  • jose_pita's avatar
    jose_pita
    Super Contributor
    Simon, I guess we use it the same way, we stoped using namemapping a while ago and now the only issue is the project files.



    I know that some people use TFS but, as I said, never got it working...



    The only question is: when a developer adds a Test to the project explorer, as both of us are using the same mds file, one of the changes will be lost because you can't merge the files....
  • tristaanogre's avatar
    tristaanogre
    Esteemed Contributor
    Yes, it is.  It's that central file that keeps track of which script units are attached to the current project.