Raptor and Version Control

Here are some discussion points for use of Raptor with version control.
Assumptions/Terminology.
Roles:
Developer, Tester, Production DBA.
Each developer has their own database or schema to work with.
Database code is PL/SQL and DDL
Client code is everything else including sql scripts.
VC stands for generic version control. I may slip into CVS speak, but ideally this is product neutral.
Scenario 1: New developer on existing project.
1 Check out sources
Obviously need to define a VC repository connection in Raptor
Probably also need to define filesystem directory to check out to. Conceivably raptor could do this under the covers but if the source code is a mixture of database code and client code this isn't possible.
2 Run sources against database to create schema objects
This would probably be a manual job within raptor but a nice feature would be a tool to work out the dependencies and run everything in the right order.
3 Edit-save-compile-edit objects in the database
At this stage the database code is out of sync with the filesystem and the VC. Since the definitive version is in VC the filesystem is irrelevant so it would make sense to save the object back to the filesystem when you click the save/compile button.
If VC isn't active this is obviously a bad idea since the filesystem version is the backup.
4 Create new object in database.
The new object needs to be immediately saved to the filesystem and added to VC(but not committed). The create dialog should ask for a filename as well as object name.
5 Commit changes to VC
What gets committed? All the database code in the schema of the current connection? All the database code which is known to CVS (which should include new ones created at step 4)? What about client code? Is there a need for a project to which objects can be added manually or automatically.
There may be clashes between this developer's changes and anothers.
Need to be able to compare current database with current cvs and merge in changes before commiting. The merged changes need to be immediately applied to the database.
6 Whoops forgot something, edit object on filesystem but don't check in.
7 Next day, try to edit same object in the database.
We now have a 3-way discrepancy between vc, filesystem and database. Raptor needs to allow diff/merge between database and filesystem as well as between database and VC.
Scenario 2: New Project
1 Developer creates some database code
edit-save-compile is entirely within the database at this stage and no VC is involved. At some point the developer has to define a vc repository and directory. Raptor needs to be able to create a new repository or module (cvs import for example) either at this stage or the first time code is saved.
There could be an option to make VC compulsory so that whenever a developer creates an object, the relevant VC actions are taken.
2 This scenario merges into scenario 1.
Scenario 3: Tester begins new testing cycle
Scenario 4: DBA implements new code in production database.
1     User checks out latest code from CVS
2     User runs code against database to create schema objects.
This is very straight forward. I am not even sure that this should involve raptor, it should all be done by scripts in sqlplus. The one raptor involvement could be reconcilation of the objects in the test database with the VC repository.
A few other thoughts.
I haven't thought about multi-schema development, ie making changes to more than one schema at a time. Should a VC repository be associated with a particular connection?
I haven't thought about managing 'create table' vs 'alter table'. A tool which generated an alter table from the different between db and vc or between 2 vc revisions would be useful.
All checkout/export/diff actions should be against labels/tags/branches as well as the tip.
Filenames and formats.
There should be preferences to allow the user to specify file extensions and other naming conventions (eg upper/lower case). I use the following for ddl files
table_name.tbl -- create table
table_name.con -- constraints for table
table_name.idx -- indexes for table
view_name.vue
sequence_name.seq
Table DDL
Currently table ddl as generated from raptor includes storage details. Not all of this is relevant in the development process and could cause spurious differences in version control.
I also like my constrains in a separate file from the table ddl.
PL/SQL Templates
The ability to define basic package and procedure templates with VC keywords etc in place. New | Procedure etc would use these templates
Message was edited by:
smitjb

Thanks for the detailed use cases. We can use this message to track Version control feature requests.
We do want to provide this support in future releases.
Donal

Similar Messages

  • Application size in terms of pages and performance and Version Control

    Currently I'm looking into the best way to version control our APEX applications. From other threads, it seems it's an area that leaves much to be desired. We are on the verge distributing a large APEX project commercially but I cannot find a suitable versioning method to support bug fixes and new development happening at the same time to the same set of applications. I just hope everyone out there realises versioning is a vital area of the development process and VOTES for it in the V3 poll.
    Anyway, enough of the my whinging. I did have a brain wave (quite rare !). What would the drawback be to have only 1 or 2 pages per application. This would allow a developer to always import the application at the start of work (ie from versioning software such as VSS or PVCS) and then export it at the end back into say PVCS. The application has everything self contained and correct versions etc.
    This would allow more developers to work on different areas at the same time as opposed to having many pages in the one application where developers could step on each others toes etc. I've considered importing/exporting pages but the fact you cannot lock shared objects means there is a possibility that if many developers are working on the same application someone will change something that affects pages other than their own. It would also be a nightmare to tie up different versions of of pages, shared objects, applications etc. Would there a performance problem with this method ? Incidentally, why can't TABS be shared/subscribed across applications. It means they have to be created separately in each application whereas things like Nav Bars and Templates can be shared across applications.
    Currently, my thoughts are that: bug fixing for a production release has to be in a separate stream (apex installation) from say new development work for the same set of applications BUT what this means is that the bug fixes have also to be manually applied in the new development stream - which is a considerable overhead (ie twice the work).
    Thanks for hearing me out - assuming you survived to the end !
    Any encouraging comments would be appreciated !

    Wim,
    I don't entirely understand the behavior. There should be little/no difference between the two cases. I'm assuming you have no indexes, which isn't recommended for such large containers anyway. Can you make your document set available to me so I can see if I can reproduce the behavior and look at it more closely? A single container, or dbxml_dump of a container is sufficient (both compress well).
    Contact me directly at george dot feinberg at you know where.
    George

  • Report Builder RDF, XML, REP and Version Control

    I'm looking to convert our existing RDF reports to XML format to better support version control and have a few questions.
    - Are there any issues with converting these RDF files to XML and developing them going forward?
    - When it's time to deploy to the server we'll convert them to RDF or REP. Any issues?
    - This question was asked before, [Thread: Oracle Reports Builder - RDF vs XML|https://forums.oracle.com/forums/thread.jspa?threadID=721959], but that was over 3 years ago. Have the issues been resolved?
    - Is anyone currently following the workflow I've outlined with success?
    Couple of links of interest regarding this topic.
    [Tuning Oracle Reports - 20.5.1 Paper Layout|http://download.oracle.com/docs/html/B14048_02/pbr_tune.htm#i1007252]
    [Running Report Requests - 13.3 Deploying Your Reports|http://download.oracle.com/docs/html/B14048_02/pbr_run.htm#i1008764]
    My Oracle Report Builder Version Info (Help -> About)
    Report Builder 10.1.2.0.2
    ORACLE Server Release 10.1.0.4.2
    Oracle Procedure Builder 10.1.2.0.2
    Oracle ORACLE PL/SQL V10.1.0.4.2 - Production
    Oracle CORE     10.1.0.4.0     Production
    Oracle Tools Integration Services 10.1.2.0.2
    Oracle Tools Common Area 10.1.2.0.2
    Oracle Toolkit 2 for Windows 32-bit platforms 10.1.2.0.2
    Resource Object Store 10.1.2.0.2
    Oracle Help 10.1.2.0.2
    Oracle Sqlmgr 10.1.2.0.2
    Oracle Query Builder 10.1.2.0.2 - Production
    PL/SQL Editor (c) WinMain Software (www.winmain.com), v1.0 (Production)
    Oracle ZRC 10.1.2.0.2
    Oracle XML Developers Kit 10.1.0.4.2 - Production
    Oracle Virtual Graphics System 10.1.2.0.2
    Oracle Image 10.1.2.0.2
    Oracle Multimedia Widget 10.1.2.0.2
    Oracle Tools GUI Utilities 10.1.2.0.2
    Edited by: 896352 on Nov 9, 2011 2:35 PM

    Hi Michael,
    Per my understanding that you want to find a solution for version control when you design the report using the Report Builder 3.0, right?
    As you know that Report Builder is a tool which can only work on one single file instead of a project , so the current version of Report Builder doesn't have these capabilities. You can submit a feature request about it on the  Microsoft UserVoice site
    here: 
    http://visualstudio.uservoice.com/forums/121579-visual-studio/category/53187-sql-bi-tools-srs-ssis-ssas-
    Generally, visual Studio Team System and Visual Source Safe integrate with the Visual Studio/BIDS shell and third-party source control solutions like SVN managed from the file system play well with version control. So I would suggest you to consider use
    them instead.
    In conclusion, one possible workaround for you is that you can save all .rdl files in third part tool’s(TFS) workspace folder for version control purpose (check in, check out with the Windows Shell Extension), and you can use Report Builder to edit these
    report files. Then use Report Builder to deploy the .rdl file to Report Server.
    More details information about the version control for your reference:
    https://sqlserverbiblog.wordpress.com/tag/ssrs-version-control/ 
    Similar thread for your reference:
    https://social.msdn.microsoft.com/Forums/en-US/939b3a90-067d-4593-b456-76533c9d60ce/sync-ssrs-visual-studio-project-with-ssrs-server-alm?forum=sqlreportingservices
    https://social.msdn.microsoft.com/Forums/sqlserver/en-US/1ad0db30-7fd8-4007-9731-ec8f2f44605f/report-format-rdl-version-control?forum=sqlreportingservices
    If you still have any question, please feel free to ask.
    Regards
    Vicky Liu

  • Development backup and version control questions

    Two question I want to ask as an Oracle XE beginner:
    1.How to backup my work (database objects and application pages) each day?
    2.What is the best practice for version control for the Oracle XE development projects? Does anyone use CVS?
    Thank you.

    Two question I want to ask as an Oracle XE beginner:
    1.How to backup my work (database objects and
    application pages) each day?Take a look at the backup script in the product directory.
    C.

  • Vivado and version control

    > Why can't we just have a text-based project file (and one that isn't touched every time you open the tools!) which holds all of the various tools settings, and pointers to the source tree (which should ALWAYS be separate from the build tools project directory) and the constraint files (which should be considered source files)?
    Amen, brother!

    bassman,
    If I had to ridicule all the tools that I use that don't adequately support relative paths I would never get to do any engineering!  :)  Although to be fair, in the last few years things have improved significantly for most of the other tools that i use.  
    My comment about the absolute vs. relative paths was more of a issue when I was trying to keep the project files under version control.  At the time it seemed like if I had source files outside of the project folder the tools used a absolute path which resulted in portability issues.  This has all been resolved for the most part with this hybrid tcl project mentioned earlier in the thread.  I do keep the source files outside of the actual generated Vivado project folder.  There is still the issue of where to keep ip, but for the time being I am just keeping that within a project.  In an ideal world this could all be kept in a single repository shared across all projects..., but in the past we always seemed to run into issues when we try to do this.  However, it is something that we will probably revisit sometime soon, especially with how ip is managed with Vivado.
    So far this approach seems to work pretty well but is definitely still a work in progress.  Below is the readme.txt that I created and keep in my project folder that describes how I am currently managing projects with Vivado (which is pretty much the same as described earlier in this thread).
    Project folder structure:
    <_top_level_project_folder>
       <src>  folder containing all hdl and constraint files/folders. (keep under svn)
       <ip>   folder containing all ip used in this project. (keep under svn)
              Note: some of these may be projects that MAY also follow this directory structure.
       <proj> vivado project folder generated by running mk_proj.tcl (NOT under svn)
       <sdk>  folder for sdk export (hw folder + more as needed under svn)
       mk_prj.tcl Tcl script to create a project in <proj> subfolder. (keep under svn)
       mk_bd.tcl Tcl script to create new bd within project. (keep under svn)
    Instructions for creating project from scratch:
    1) start vivado_tcl console and change into project_folder directory
    2) delete <proj> folder contents (make a cleanup script for this someday)
    3) run >source mk_proj.tcl
    4) go to <proj> folder and open newly created project
       (Note: you may need to make sure project is targeting the correct part!)
    5) at tcl console in project run:
       >source mk_bd.tcl
    6) regenerate output products for bd design
    7) create wrapper for bd design (this should be something instantiated by HDL already in the design)
    Instructions for updating the tcl files:
    1) inside project run the following
       >write_project_tcl mk_prj_new.tcl
    2) best to compare this to the previous tcl and modify as necessary.
       The bd related stuff should probably be removed from the tcl script?
    3) run the following:
       >write_bd_tcl mk_bd_new.tcl
    4) this file should be ok to just overwrite the existing mk_bd.tcl file
    5) do a quick check to make sure project can be regenerated from scratch
    Other Stuff:
    It is useful to add a shortcut to the vivado tcl shell in the project folder.
    Also, change the properties so that the shell starts in this folder.
     

  • Application Express and Version Control

    We are using Clear Case for our versioning. We are looking at Application Express for our simple screens(rest is in java/struts). Our only concern with application express is integrating it into our current version control methods.
    How much effort is involved in exporting the schemas and checking them into clear case?
    also, we will have multiple people developing html db forms. How complicated does this integration get?

    Hi User....
    My team uses Microsoft Source Safe for version APEX control.
    We export the Application as well and the schema DDL to text files and then check them into SourceSafe. We carefully label the check-ins with appropriate version numbers. The version numbers are also added to Page 0 so we know what version we are running. This work reasonably well in APEX 2.0. I believe that it will be even easier in APEX 2.2.
    If you have multiple developers working on a single APEX application, create a special user ID that is used for only locking pages. This trick prevents your developers from making accidental changes to a perfectly debugged page. The locking ID is under the control of the project manager or the team lead. It is also handy for controlling the check-in-out process for individual pages or groups of pages.
    I hope this helps.
    Cheers,
    Patrick Cimolini

  • RoboHelp6 and Version Control on TFS - How to add, delete or rename folders

    When under Version Control what is the proper method of renaming a file or folder? What is the proper method of deleting or adding a folder under Version Control?
    Bob (No relation to John)

    With RSC, I'd recommend performing these procedures from RH. I don't know if you get that same tight coupling with TFS, though.
    G

  • ASK: Forms Server deploy strategie and version controlling...

    hi:
    I would like to ask people around how could i have a good forms deploy strategie that would allow me to upgrade forms fmx versions even if users where connected to forms server.
    I have used hearbeat option to disconnect ifbweb60 processes, but without success. That processes just stop/end when i close all IE windows of the user that's connected to that process and not when i close that single forms browser window. May be the heartbeat is working wrongly and "thinks" that the window still open... i dont know...
    How "you" users around the world deploy your forms? how you controll and upgrade them ? do you need that all users should be disconnected from forms server to upgrade ?
    thankx in advance...
    ricardo

    oops to get old versions of jre have to use:
    https://java.sun.com/products/archive/

  • OWB Process Flow - How is the best  version control tool ??

    HI all,
    I just start work with OWB and I have a question to know how is the best way to do something.
    Imagine the scenario below:
    If I have 2 or more requests for example:
    Request 1: Create a Dimension City.
    Request 2: Create a Dimension Products.
    I Have ONE process flow and i need put my changes inside. This is my problem.
    In my scenario I don't know what Request goes to Prod First.
    If I put the Request 1 and Request 2 in my PROCESS FLOW, maybe I need change is someone decide change MY REQUEST PRIORITY.
    There is something in OWB to "control the version or changes" ?? For a mapping I export the MDL and commit on SVN, but I dont know haw can i do with the process flow.
    Something to agree multiples peoples work in different mappings and a SAME PROCESS FLOW ??
    What is best way to work with process flow and version control.
    What are the best practices when it comes to version control?
    Thanks.

    Amit,
    Are you really doing this in 10.1.3.x and not 11g?
    At any rate, I don't see how #2 and #3 relate whatsoever to your choice of a version control system. OK, maybe in #2 if there is some "maintenance" activity to be done against the version control server. Subversion is the open source alternative that you listed there and is pretty commonly used. If your company is already using one of the mentioned tools, why change? About the only thing I'd mention is to advise you NOT to use CVS for well documented reasons (JDev does support it) - if you would have picked CVS otherwise, choose Subversion. As far as question #1 - I've only used Subversion (well, I did use CVS for a while) with JDeveloper, so I can say it was "effective enough for me." In 10.1.3.x, I also used the external svn tools for doing lots of things like merging and so forth; in 11g, the support is much much better.
    Best,
    John

  • Source Configuration Management / Version Control

    I was wondering what the Forte raving masses out there are doing about Source
    Configuration Management and Version Control type of issues?
    Have you been able to implement or "skunk work" a packaged product with your
    Forte development environment?
    Our shop consists of WindowsNT Forte developers coding for predominantly
    Windows95 clients and a HP UNIX Central Server. At this time we currently use a
    home grown "system" to handle Source Configuration Management and Version
    Control issues. We are now looking to see if there is a better way to do this.
    We've identified several Industry Standard packages (SCCS, CVS, Microsoft
    SourceSafe etc.) and still haven't found anything very useful.
    What I am seeing is that all of the packages so far have direct hooks in C++,
    Visual Basic etc.
    I have yet to see something with Forte hooks.
    Kelsey PetrychynSaskTel Forte Technical Analyst
    ITM - Technology Solutions - Distributed Computing (OTC)
    Tel (306) 777 - 4906, Fax (306) 359 - 0857
    Internet:[email protected]
    Quality is not job 1. It is the only job!
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    Kindly specify the email address to apply to for the mentioned job

  • Version Control In Discoverer 10g - Apps with PVCS

    Hello,
    I am using Discoverer 10g with Oracle Apps and PVCS is being used in the project for version control. How to Do version control for Discoverer Workbooks with PVCS.
    Please elaborate with an example.
    Thank You.

    You can export the workbooks and version control the exported .eex file. You could do the same for Business Areas if desired.
    Regards,
    Steve.

  • Version control for databases, schemas, objects

    Dear All,
    I'm looking for a designer tool with version control abilities. I don't need to have many types of models, if it's able to do ER and version control, plus it has a command line interface then it's fine. (I need to automate everything, so installing schemas with one click or with one command shouldn't be a problem.) The funny thing is that I've already built such environments with SVN and VSS, but now I need a reliable product with such features. (I don't like Designer, so that one is out of scope.) One more thing: it has to be able to store parameters of objects for example: PCTFREE, PCTUSED, TABLESPACE, etc.
    I'm looking forwrad to your help.
    Franky

    Released in April 2008, Oracle SQL Developer 1.5 is the "Version Control" release, as it includes integration with open source version control products, CVS and Subversion.Supporting the version control is a File Browser to browse and read files stored in the file system. You can open and edit these files from within SQL Developer.
    http://www.oracle.com/technology/products/database/sql_developer/files/what_is_sqldev15.html

  • Oracle Service Bus Configurations version control and deployment automation

    Hi,
    Currently we have OSB10gR3 installed and we use the web based sbconsole to create projects and proxy services. It's all working well and good!!
    We are at the state where we need to think about source control, migration of artifacts from dev to test and to prod.
    I'm looking for pointers to version control the artifacts of OSB projects, what could be version controlled (no binaries) and how do we extract those artifacts?
    How do we customize those artifacts while migrating to different environments in an automated fashion?
    Please point me to best practices and gotchas that we should be aware of while dealing with deploying OSB proejcts from test to Prod.
    Thanks in Advance!!

    After reading the threads mentioned by Deba, I'm able to get this all worked out with SBConsole itself. Experts, please review my approach below and let me know if I have overlooked anything.
    Simple advantage I see in using sbconsole is that it requires less maintenance, i.e. avoids rolling out another IDE (Eclipse -Workshop plug-in) to IT developers and at the same time provides the functionality that we are looking for. Currently, JDeveloper is our primary IDE, so we thought it's best to wait till OSB development gets integrated into JDev.
    This is the deployment workflow which worked for us,
    Developer:
    1)Develops Proxy services using SBconsole in Dev environment.
    2)Creates sbconfig.jar by using the export functionality available in System Administration link in sbconsole
    3)Checks-in ALL the files present in the above jar into version control under the proxy service project name
    4) Creates customization file using the customization file link in System Administration and modifies the value for each environment i.e. creates two files test_customfille, prod_customfile
    5)Checks-in the customization files into version control under the same proxy service project
    Promotion to Test and Prod
    1) From the source control, service proxy is built (actually the jar file of all files including the custom file is created)
    2) SCP proxy_sbconfig.jar file to Test or Prod box
    3) Follow the steps mentioned in Auto deploy of ALSB/OSB artifacts - Proxy, WSDL and webservices...
    4) Depending on the server, test or prod, pick the right customization file and deploy using ANT.
    Thanks!!

  • Best practice for version control B2B, ESB and BPEL

    Hello,
    we are setting up a new system using B2B, ESB and BPEL. The development team is more experienced working with PL/SQL, Oracle Workflow and we are worried that Jdeveloper generates changes to the source files during development and that we might have problems with the version control.
    Is there any best practice for setting up version control for these systems? Do we need to take anything in particular into consideration when setting up the projects?
    We are using Serena Dimensions 9.1 for version control with the add-on in Jdeveloper.
    Thanks in advance!

    I believe JDeveloper has a plugin for Dimensions.
    I havent used it but to get it, go to tools (It may be help I don't have JDeveloper on this machine to confirm) check for updates.
    If you select the thrid party check box - next, you will see an entry for dimentions.
    Configure the connection and develop as you would any other project.
    cheers
    James

  • PO Version and output control - EC scenario

    Hi
    I need a help/suggession in below issue.
    System: SRM 4.0, SP14. Ext Classic scenario
    Issue: When closing the open POs in the system i.e checking flag "Confirmation not expected" and "invoice not expected" system creating a change version and the new output is being sent to vendor.
    Requirement: These changes are essentailly to close the open PO logically and it should not be creating a new version and sent to vendor. but the change history to be recorded for business analysis.
    For the above requirement, I was thinking to use the BADI  BBP_VERSION_CONTROL to control the version creation by passing the above two fields as parameters.. i.e for these two fields if at all any change then version should not be created and sent to vendor
    When I try to de bug the standard PO change process, system had never called the above said BADI in change process. System only calling the above badi only in creation process. Which sounds odd for me because the purpose of version control is to track the changes but the controlling BADI never gets called while change process.
    Can anybody help me or suggest me any other way of controling the output and version?
    Thanks
    Kiran

    Hi Kiran,
    You referred the right BADI BBP_VERSION_CONTROL to control / over write standard version control settings.
    I believe the BADI documentation shows clearly that - this BADI is called every time the document is saved.
    When you look at Method documentation, it clearly says that you can use BBP_PO_GETDETAIL function module to get the latest details of P.O change version using change version GUID.
    In that you can check for details whether the 'No further confirmations expected' and 'No further Invocies expected' check boxes were checked or not so that the version creation can be restricted.
    If the BADI implementation is active then definitely system will stop when an external debugger is set up.
    Please check this with the help of your ABAP guy and let us know in case of any further clarifications.
    Regards,
    Teja

Maybe you are looking for