How to use Source Code Control for Large Application?

Hi, All!
I would like to collect knowledge about "best practice" examples for using Source Code Control and project organization for relative large application (let's say approx 1000 SubVIs).
Tools used:
LabVIEW 8.0
CVS Server
PushOK CVS Proxy Client
WinCVS
With LabVIEW 8 we can organize large project pretty well. This described in article Managing Large Applications with the LabVIEW Project.
I have read this article too: Using Source Control Software with LabVIEW In this Article Source Safe used, but with PushOK all looks nearby the same and works (some tricks for compare function are required).
Example. Two developers working together on same project. Internally project is modular, so one developer will work with module "Analysis", and another one with "Configuration" without interferences. These modules placed into Subfolders as shown in example above.
Scenario 1:
Developer A started with modification of module "Analysis". Some files checked out. He would like to add some SubVIs here. So, he must also perform check out for the project file (*.lvproj), otherwise he cannot add anything into project structure.
Developer B at the same time would like to add some new functions into module "Configuration". He also needed to check out project file, but this file already checked out by Developer A (and locked). So, he must wait until lvproj file will be checked in. Another way is mark *.lvproj files as text files in PushOK, but then one of developers will get conflict message by checking in and then merging will be necessary. This situation will coming very often, because in most cases *.lvproj file will be checked out all the time.
Question: Which practice is better for such situation? Is Libraries better than folder for large project?
Scenario 2:
Developer C joined to the team. First, he must get complete project code for starting (or may be at least code of one Library, which assigned to him).
Question: How it can be done within LabVIEW IDE? Or WinCVS (or other SCC UI) should be used for initial checkout?
Scenario 3:
Developer D is responcible for Build. Developers A,B,C have added lot of files into modules "Analysis", Configuration" and "FileIO". For building he need to get complete code. If our project splitted into folders, he should get latest *.lvproj first, then newly added SubVIs will appear in Project Explorer, then he should expand tree, select all SubVIs and get latest versions for all. If Project organized in Libraries, he must do the same for each library, isn't?.
Question: Is this "normal way", or WinCVS should be used for this way? In WinCVS its possible with two mouseclicks, but I prefer to get all code from CVS within LabVIEW IDE recursively...
That was a long post... So, if you already working with LabVIEW 8 with SCC used for large project, please post your knowledge here about project structure (Folders or Libraries) and best practices, its may be helpful and useful for all of us. Any examples/use cases/links etc are appreciated.
Thank you,
Andrey

Regarding your scenarios:
1. Using your example, let's say both developers checked out version 3
of the project file. Assuming that there are only files under the
directories in the example project, when Developer A checks in his
version of the project, there will be new files in one section of the
project separate from where Developer B is working. Developer B,
notices that there is now a version 4 of the project. He needs to
resolve the changes so will need to merge his changes to the latest
version of project file. Since the project file is a text file, that is
easy to do. Where an issue arrises is that after Developer B checks in
his merged changes, there is a revision 5. When Developer A and B go to
make another change, they get the latest version which will have the
merged changes to the project file but not the referenced files from
both Developer A and B. So when A opens version 5, he sees that he is
missing the files that B checked in and visa versa. Here is where the
developers will needs to manually use the source control client and,
external to LabVIEW, get those new files.
Where libraries help with the above scenario is that the library is a
separate file from the project so changes made to it outside of the
project do not require the project to be modified. So this time, the
developers are using a single project again which time time references
two libraries. The developers check out the libraries, make changes to
the libraries, and then check those changes in. So when each developer
opens the project file, since it references the project file, the
changes to the library will be reflected. There is still the issue of
the new files not automatically coming down when the latest version of
the library is obtained. Again, the developers will needs to manually
use the source control client and, external to LabVIEW, get those new
files. In general, you should take advantage of the the modularity that
libraries provide.
2. As noted in the above scenario, there is no intrinsic mechanism to
get all files referenced by a LabVIEW project. Files that are missing
will be noted. The developer will then have to use the source control
provider's IDE to get the initial contents of the project  (or library).
3. See above scenarios.
George M
National Instruments

Similar Messages

  • Help needed to use Source code control system

    Hi all
    I am working on Suse 9.2 and I use JSP and Servlet in my project.I like to use Source Code Control System (SCCS) . But I have no idea about that.I need some help to initiate my project.
    Thanks in advance.
    -jegan

    I don't know this "SCCS" but I advice you to use Subversion as it is widely used open source standard.

  • How to setup source code control with StarTeam

    Hi,
    Could anyone please tell me what should I do to set up the source code control?
    My company use StarTeam Borland as a source code control tool. I try to set this as a Source Control for Labview by go to SourceControl category ins the Options setup, but I cannot select anything form the list of provider name. Do I have to do any extra step to make it right?
    Best regards,
    Thang Nguyen
    Message Edited by THANG NGUYEN on 08-12-2009 05:23 PM
    Attachments:
    SourceCodeControl.JPG ‏64 KB

    Read this: Source Code Control Provider Does Not Appear In LabVIEW Options. (A simple search would have yielded this.)

  • Source Code Control for Java development in 6.20

    I am new to Java development. How do you control source code (versioning/transport) for Java development with the base R/3 is 6.20. I believe Java Development Infrastructure (JDI) is only available in 6.40. Is this the correct statement? Anyone that has work on 6.40 with Java can explain?
    Let say we have this setup:
    Applications are in 6.20
    Portal will be EP 6.0
    Do we need Web AS 6.40 to develop Java for Portal with base R/3 of 6.20. Or we can use Developer Studio to create Java accessing R/3 6.20 and display in Portal 6.0. If this is the case, how do you manage transport is you are not using JDI in 6.40.

    Hi Nablan,
    I believe you are development J2EE applications. JDI only runs with WebAS 6.40 which supports J2EE spec. 1.3. The developed J2EE archive will not be able to deploy to WebAS 6.20 which only supports J2EE 1.2 spec. So if you want to deploy the created software build from JDI and deploy it to WebAS 6.20, then the answer is unfortunately no.
    But, if you just want the Portal be able to display your application in an iView inside, then maybe you can just develop and deploy your application to the WebAS 6.40 system. Then create an iView in your EP to point to the app in the 6.40 system. That way your app will not need to deploy to WebAS 6.20.
    Regards,
    Marc

  • How to use BAPI in webdynpro for java application

    Hi all,
    Please help in getting started with calling a BAPI in a webdynpro for java application. I have got only the content needed to call a BAPI in a webdynpro for abap application but not in java. Kindly provide me some documents if possible.
    Thanks in advance

    Hi ,
    U have Created One Bapi u want to work with web Dyn pro for java Application Right .
    U need the Following
    1) NWDS (Netweaver Devloper Studio )
    2) jdk1.4 or Above installed in your system .
    After Installation of NWDS .
    1) Just Take J2EE Enginee Details
      a) Go to Window -> preferences  -> J2ee Enginee - > give ur port number , Host name Details . and click finsh .
    Go To Web Dyn Pro Perspective Click onj2EE engine .
    Click On Refresh U will see Green Colour button .
    Now ur Ready to import Ur BAPI .
    1) Go to File -> New -> Project - > Web Dyn pro Project -.
    Give Name , pkg Name Click On Finish .
    2) Expand ur project hirarchy -> go TO Application -> Right Click -> Create Application - > Give Application name and Pkg name -> Click on Finish .
    3) Now ur View And Controller Are Created by Default .
    4) Go to Model-> Right Click on it-> Create Model -> Give Model Name & Pkg name Should diff from Application pkg the Click On Next
    a) Here u have to Two JCo Destination Name Like Model Data And Meta data & R/3 System Details like System Number , Host name  Etc -> then Click on next .
    b) Here u will text filed where u want to search for ur Required BAPI . Type ur BAPI Name Click on Search . Ur bapi will be displyed In Down . click on Next .
    c) Now Ur model is Importedint into NWDS .Map ur model data To Controller and Controller Element to View Elements .
    After ur Model .
    Go to -> Project Name -> Right Click -> go to -> Deploy New Archive .
    after wards u have to go Apllication -> Right click -> deploy and Run .
    ur output will be displyed thru Browser .
    Thats it
    Regards ,
    venkat

  • Spry Slide Show-how to use one size photo for large photo and thumbnail?

    Hi all,
    I'm am using Adobe's Spry Slide Show. I can only use one size photo 640x480px for both the large photo and the thumbnail.
    I changed the size of the small thumnail on the html:
                     <li><a href="Photos/TestPhoto640x480.jpg" width="490" height="367"><img src="Photos/TestPhoto640x480.jpg" width="63" height="47" alt="photos-1.jpg" /></a></li>
    The thumbnail looks fine until you hit Live View or Preview in Browser then photo comes in full size and you can only see the upper left hand corner.
    I assume that the java is doing this. But I have no training in Java.
    How can I change the Java Code so the thumbnail comes in at 63x47px?
    Many thanks.

    Wish I could use scaled down versions of the thumbnails-but I can't.
    Why not?
        img.src = info.src;
        img.style.width =  "490px";<!--Large Photo size on internet-changed from info.width + "px"; to "490px";  *********-->
        img.style.height =  "368px";<!--Large Photo size on internet-changed from info.height + "px"; to "368px";  *******-->
    You're shooting yourself in the foot with this.  It's overriding your HTML and CSS  values.
    As an FYI, Adobe Abandoned the Spry framework late last year.
    http://blogs.adobe.com/dreamweaver/2012/08/update-on-adobe-spry-framework-availability.htm l
    You might want to cut your losses right now and switch to something better suited to modern web devices & browsers.
    jQuery Fancybox
    http://fancybox.net/
    20 of the best jQuery Slideshows
    http://vandelaydesign.com/blog/web-development/jquery-slideshow/
    Nancy O.

  • [Solved] How to use Oracle Java 6 for specific applications

    I use an IDE called PyCharm. On its download page, it recommends using Java 6 instead of OpenJDK. I currently have jdk7-openjdk installed, and from what I had read in the Arch Wiki on Java, it should be possible to install Oracle Java 6 along side OpenJDK 7.
    However, after installing jdk6-compat and jre6-compat, I still see that I am running OpenJDK 7 when I run the following:
    % java -version
    java version "1.7.0_09"
    OpenJDK Runtime Environment (IcedTea7 2.3.3) (ArchLinux build 7.u9_2.3.3-1-x86_64)
    OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)
    ...even after I have set JAVA_HOME and added /opt/java6/bin to my path.
    How can I get PyCharm (or other applications) to use Oracle Java 6 instead of OpenJDK?
    Thanks, and apologies if I've posted in the wrong place.
    Other information that might be helpful:
    Running zsh as default shell
    Using Gnome 3 as DE
    Last edited by Nikorasu (2012-11-17 20:54:33)

    I found the solution.
    For Pycharm, I just needed to add an environment variable PYCHARM_JDK. For running specific applications, I asked this question on the Unix / Linux StackExchange and got an answer there.
    Also, after running PyCharm in Java 6... I would not recommend it. OpenJDK works fine
    Last edited by Nikorasu (2012-11-17 20:55:01)

  • Using source code?

    Sorry for noob questions, but I'm confused on how to use source code on Flex.
    Say I download saqoosha's desktop fireworks -
    http://saqoosha.net//?s=fireworks
    I ussually just extract the folder into my workspace, go to flex, create a new actionscript project and name it the name of the folder in my workspace. Most of the time this doesnt work, as I dont know how which actionscript file launches the app. Does anyone have an tips for me? And if possible could somone explain how I can use saqooshas source code and launch it through flex.
    Thank you so much,
    Michael

    Try unzipping the folder somewhere else, and using File->Import->Flex Project to bring the project into your workspace, rather than copying directly. Then Flex will figure out what file to run etc for you. I pulled down the fireworks project you mentioned and ran it without issue.

  • RE: Using a source code control system

    Thanks Shane and everybody for the replies.
    My *.cex files have the correct "begin CLASS;" entry. Below is my fscript
    file
    that I'm trying with Forte 2.0.E.2 NT version:
    setWorkspace ktCheckBoard
    open
    findproj sample1
    cd c:\forte_cs\install\bin
    compile sample1_sysadm.cex
    importplan sample1_sysadm.cex (>>> It failed right here)
    Khanh
    From: Shane Howlett
    To: forte-users
    Subject: RE: Using a source code control system
    Date: Wednesday, November 13, 1996 9:54PM
    Hi Khanh,
    In regards to your compile error...
    We found that an interesting difference between versions 2.0.D.x and 2.0.E.x
    was with the first line of an exported .CEX file.
    A la ...
    2.0.D line 1: begin;
    2.0.E line 1: begin CLASS;
    It caught me out. Just insert or remove the word CLASS using a text editor
    depending on your version of Forte.
    As for version control, we have been retaining workspace export files
    (wascally WEX files!) as backups and plan to make greater use of Baselining
    in
    the repository. In terms of securing our environment, this approach
    essentially meets our needs.
    Shane Howlett
    The Hydro.

    Thanks for your help. That works.
    -khanh
    At 11:20 AM 11/14/96 -0800, you wrote:
    >
    Hi Mike,
    Thanks for the reply. I think that was what I did.
    Below is my fscript input file:
    setWorkspace ktCheckBoard
    open
    findproj sample1
    cd c:\forte_cs\install\bin
    compile sample1_sysadm.cex
    importplan sample1_sysadm.cex (It failed at this step)'importplan' is unnecessary: 'compile' has compiled the .cex file into your
    project. importplan is failing beacuse it expects to see an entire plan.
    Mike
    Mike Schilling ([email protected])
    Forte Software, Inc.

  • How to use the LAN NetStream for peer transmission, please help, write a sample code

    How to use the LAN NetStream for peer transmission, please help, write a sample code

    No reply, I reply, Oh

  • How to include source code in web dynpro java deployment

    Hi,
    We dont have NWDI.
    We are creating ear files out of web dynpro applications packaging them as sca files and deploying them in server.
    But the source  code is not included in ear.
    How to include source code with your ear/sca , so that when anyone downloads the sca file later, they are build the Project in the studio.
    How would they typically download? Do they require NWDI ,
    Right now we dont have NWDI in place, but we want to do is parcel the applications such that the source code should be available at a later time for download.
    This is possible with .par files , but what about web dynpro?
    Thanks,
    Deb

    If you are not using NWDI use the _comp file.

  • How to display source code of a webpage in Safari 7.0?

    Hello. I'm unable to find how we used to once enable developing tools in Safari Preferences or simply CMD + ALT + A to display the source code of a webpage. Now I've no clue how to display source code of a webpage in Safari 7.0 on Mac OS X Mavericks. Help.

    Hi gss2,
    Make sure you are not under the Apple icon but under Safari>Preferences>Advanced. All the way at the bottom check the box that says: "Show Develop menu in menu bar."
    Now go back to the page you want to get the source code for, right click on it and choose Inspect Element. Hope this helps.
    Cheers,
    LURDS LLC

  • Database source code control or version management

    Hi all,
    I work in a data warehouse development project, where database schema changes form majority of development work. As a development DBA I look after ensuring that all the database schema changes are version controlled properly.
    We currently use CVS as a source code control system. We can use CVS well enough where stored procedures, functions and packages are involved. But when it comes to table definitions, we are finding use of CVS bothersome.
    Hence I would like to know, which tool are you using for version control of schema changes. Any links to best practices on DB version control would be much appreciated.

    I think Oracle have introduced something in 11g for version control. Also you can use third party Software like ERWIN. You can also explore Oracle Data Modelling software which is Beta currently.
    Regards

  • Source Code Control - Check in problems

    Some of my vi's have been marked as "Server copy has changed" and some have even been marked with "both local and server copies have changed". When this is the case I cannot find any way to check in my VI without getting an error. Looking for a work around - help.

    kh,
    Which version of LabVIEW are you using? Built-in SCC have been rewritten from 6.0 to 6.1 and there are different issues related to each version.
    With 6.0 I have encoutered a bug that wrongly checked most of my VIs as "local copy has changed" as soon as they are in memory with panel closed. I worked with NI Support and we found no workaround. Unfortunately, this behavior stayed even when the VIs were upgraded in 6.1 so that my problem was a dead end. I switched with great success to CVS, another source code control software.
    I do not use 6.1 but if you do, make a search on NI's site and you'll find hits that address a SCC bug. If I remember correctly, checking out a VI, making a small change and checking it in again often solved the problem.
    G
    ood luck.
    LabVIEW, C'est LabVIEW

  • How to use the custom control ?

    Hi Friends,
    plz help to use of  custom control in screen painter ?
    and how to use the custom control ?
    Thanking you.
    Regards,
    Subash.

    HI,
    Screen Elements
    A screen can contain a wide variety of elements, either for displaying field contents, or for allowing the user to interact with the program (for example, filling out input fields or choosing pushbutton functions). You use the Screen Painter to arrange elements on the screen.
    You can use the following elements:
    ·        Text fields
    Display elements, which cannot be changed either by the user or by the ABAP program.
    ·        Input/output fields and templates
    Used to display data from the ABAP program or for entering data on the screen. Linked to screen fields.
    ·        Dropdown list boxes
    Special input/output fields that allow users to choose one entry from a fixed list of possible entries.
    ·        Checkbox elements
    Special input/output fields that the user can either select (value ‘X’) or deselect (value SPACE). Checkbox elements can be linked with function codes.
    ·        Radio button elements
    Special input/output fields that are combined into groups. Within a radio button group, only a single button can be selected at any one time. When the user selects one button, all of the others are automatically deselected. Radio button elements can be linked with function codes.
    ·        Pushbuttons
    Elements on the screen that trigger the PAI event of the screen flow logic when chosen by the user. There is a function code attached to each pushbutton, which is passed to the ABAP program when it is chosen.
    ·        Frame
    Pure display elements that group together elements on the screen, such as radio button groups.
    ·        Subscreens
    Area on the screen in which you can place another screen.
    ·        Table controls
    Tabular input/output fields.
    ·        Tabstrip controls
    Areas on the screen in which you can switch between various pages.
    ·        Custom Controls
    Areas on the screen in which you can display controls. Controls are software components of the presentation server.
    ·        Status icons
    Display elements, indicating the status of the application program.
    ·        OK field
    Every screen has a twenty-character OK_CODE field (also known as the function code field) that is not displayed directly on the screen. User actions that trigger the PAI event also place the corresponding function code into this field, from where it is passed to the ABAP program. You can also use the command field in the standard toolbar to enter the OK field. To be able to use the OK field, you need to assign a name to it.
    All screen elements have a set of attributes, some of which are set automatically, others of which have to be specified in the Screen Painter. They determine things such as the layout of the screen elements on the screen. You can set the attributes of screen elements in the Screen Painter - either for a single element, or using the element list, which lists all of the elements belonging to the current screen. Some of the attributes that you set statically in the Screen Painter can be overwritten dynamically in the ABAP program.
    with regards,
    sowjanyagosala

Maybe you are looking for

  • Help on reading from and writing to a file !!!!!!!!!!!!!!!!

    hi there anyone can help me on how to write and read from a file? how can i read one string at a time instead of a char. thank you.

  • DVD-R or + R for DL?

    Hi - what is the best format to use for iDVD that is most compartible with most DVD players? keep in mind that I have to use a dual layer since my video is 2 hours 30 minutes. DVD-R DL? DVD+R DL? thanks

  • SSH LDAP Authentication

    Hi Forum, Could you please help me , I installed latest patch cluster on Solaris 10 and after that somehow SSH/LDAP is not authentication users, before installing patchset everything was working fine. OS: Solaris 10 Patch Cluster: 20th Jan 2010 uname

  • Moved photo library to external, space on internal drive did not change.

    At the end of each year I like to move the current iPhoto library to an external hard drive to save space. The library get retitled Library 2007, Library 2008, etc. I do this to save space on my hard drive. My trusty iMac has only 80 gig hd (but that

  • Applet is not loading in firefox for java

    every time i am facing the problem in java, if i install also it says Java is not installed for your browser. Kindly help me out .