in

TFS Advantage

Furthering Continuous Integration Efforts on Microsoft Visual Studio Team System Team Foundation Server

Continuous Integration as per a Branch

Last post 08-08-2008 12:07 PM by Bob1981. 3 replies.
Page 1 of 1 (4 items)
Sort Posts: Previous Next
  • 08-07-2008 5:11 PM

    Continuous Integration as per a Branch

     Hi All,

    I just implemented Continuous Integration in TFS 2008 and it seems to be working fine. But is there a way i can make it to work as per the diffrent branches, meaning if a developer checks in anything in Development branch then CI build should trigger, But it should not trigger if anything is checked-in in any of the other branches.

    Right now it seems to trigger the CI if anything is checked in anywhere in the project...?

     Dont know why this was not been considered in this release....

    Anybody, Please any ideas....

    I had a answer to this in this blog , but still wating for some replies... please see this link too

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3720262&SiteID=1

     

  • 08-07-2008 7:35 PM In reply to

    • tim
    • Top 10 Contributor
    • Joined on 05-08-2008
    • Posts 19

    Re: Continuous Integration as per a Branch

    Repost:

    Hi Tim,

     

    I am actually new to tfs, can u please elaborate little more, wht exactly you want me to do and how.

    right now i am doing everything on this project because its a test project, so i am the one creating branches and checking-in and checking-out files.

    i am not aware of word Trunking, wht do u mean by "A branch should probably not be in the same workspace as your trunk"

    and how do you Remove or cloak the branches in build.... My guess is i think something to do in TfsBuild.proj file if i am write.

     

    Please follow me on this.. i reallt need this to work out. and yeah i checked a link on your message www.tfsadvantage.com seems prety cool.

     

    My Folder structure is

     

    Testproject

    Main

    Scripts

    Sources

    Desktop Modules

    Development                              <--(Solution file location)

    Main-Branch                    <--(Branches from Main)

    Scripts

    Sources

    Desktop Modules

    Release                                    <--(Branched from Release)

    Scripts

    Sources

    Deskktop Modules

     

     

    So in aboce structure, my current solution which i am building is in development branch, but if i check in anything in Main or Release CI Build triggers.

    Let me know if you need to know anymore details.

     

     

    Waiting for responce.

    Thanks

    Bob

     

    Tim Bassett
    Principle Partner - TFSAdvantage
  • 08-07-2008 7:50 PM In reply to

    • tim
    • Top 10 Contributor
    • Joined on 05-08-2008
    • Posts 19

    Re: Continuous Integration as per a Branch

    The trunk is the highest folder that contains your source code to build your project.  I sometimes refer to this as "current".  Think of it as your root folder.

     The reason I asked about your folder structure is that I feared you put your branch inside your trunk.

     When you make your branch, you want to make a peer (or a child to a peer) to your trunk.

     I am not sure what purpose your development and release branches are for.  I make branches for isolating a release candiate and I name them for their version numbers

    e.g.

    $/MyProject/Source/Current

    $/MyProject/Source/Current/AssemblyA

    $/MyProject/Source/Current/AssemblyB

    $/MyProject/Source/1.0.334.0

    $/MyProject/Source/1.0.334.0/AssemblyA

    $/MyProject/Source/1.0.334.0/AssemblyB

    $/MyProject/Source/1.0.512.0

    $/MyProject/Source/1.0.512.0/AssemblyA

    $/MyProject/Source/1.0.512.0/AssemblyB

     

    As far your problem goes, I would make sure the workspace for your build only includes $/Testproject/Main, or $/Testproject/Development or $/Testproject/Release, but not more than one of them.

     If you need to cloak, you set that up in your build's workspace definition.  If within your main workspace for the build, you have subfolders you do not want in the build, nor to trigger the build, add another line to your workspace definition and point it the folders you want hidden, then change the dropdown from "Active" to "Cloaked".

     This will make it so changes to that folder do not trigger the build (and the build will not pull that code).

     

    Let me know if you need more help.

    Tim Bassett
    Principle Partner - TFSAdvantage
  • 08-08-2008 12:07 PM In reply to

    Re: Continuous Integration as per a Branch

    Thanks Tim, Soo much. you just nailed a problem from the source, Thanks for your advice. now i am able to trigger the build as per branch.
    I do have one more thing to understand. Could you explain me the concept of Position of Solution file. I`ll explain it below.

    As i explained above, In this Project Structure i am keeping the Solution file under Development Folder , and wht we do is every developer creates it own branch from the Main-Branch under Development Eg:-

    Development                              <--(Solution file location)
             Main-Branch                    <--(Branch from Main)
                        Scripts
                        Sources
                        Desktop Modules
              Developer1                       <--(Branch from Main-Branch)
                        Scripts
                        Sources
                        Desktop Modules

    so after creating a branch developer works under his/her branch (checksout, checks-in the code) and when developers are done with there work they merge back their own branch into Main-Branch and CI Triggers everytime they check in (thanks to you).
    Now as i am keeping solution file under development folder solution file does goes to a developer branch. So How developers will be able to add ther projects in the solution file.

    MY thinking :- wht i think, developers will work in there own solution files and run the code and compile it. they wont do anything in solution file which is in repository. and they are only going to check-in the projects in there own branches when they r done and merge back to the Main-Branch. and later build engg will add those projects in the solution file which is in Development Folder.

    I dont know if this is how industry works... can u pls give some example or idea how should this be managed.?

    Thanks in Advance.

Page 1 of 1 (4 items)
Hound Dog Enterprises, LLC
Powered by Community Server (Non-Commercial Edition), by Telligent Systems