How can we help you today? How can we help you today?
Stuporman

Activity overview

Latest activity by Stuporman

Command Line from Mac and Linux using Mono
Would it be possible for you guys to add support for execution under Mono? From my own experiments, I think you just need to have the command line utility create registry entries if they're missing...
1 follower 1 comment 0 votes
Deployment Scripts
Hello, I don't know what the typical usage scenario is for Schema Compare, but I've been using it to synchronize a rather large number of databases that are extremely different from each other than...
1 follower 1 comment 0 votes
Let me provide a couple of use cases to clarify. Setup I have an existing project in a local git repository located at C:UsersStupormanmy-app. Within this repository is a directory called database which is currently a Schema Compare for Oracle scripts directory. I want Source Control for Oracle to take over management of that Schema Compare for Oracle scripts directory while allowing me to continue to use git as I did before because I am also tracking non-database source files in the same repository. Operation 1 I am working in my own sandbox database on a long-term project that has its own branch. I am asked to fix a bug in our maintenance branch. I commit what I've done so far so I don't lose the changes, but I do not want to push it because I am planning on amending that commit later when I can finish the work I was doing. I then want to be able to switch to the maintenance branch and have Source Control for Oracle update my database to reflect that branch in one step. Currently, this would involve issuing 'git checkout maintenance' at git bash or using Source Tree or some other git wrapper to change the repository to reflect the maintenance branch. Then, I must open Schema Compare for Oracle and load the correct project to perform the comparison and then deploy the changes to the sandbox database. If Source Control for Oracle either wrapped or responded to the 'git checkout maintenance' and automagically did the compare and deployment of changes to the sandbox when the 'git checkout' completed, that could save loads of time and hassle as well as reduce the potential for error on the part of the developers. In this scenario, there is potential danger surrounding changes that have not been brought from the sandbox to the local repository. If the user forgets to commit the changes before switching branches and the changes exist only in the database, then git will not be able to recognize that there are uncommitted changes and will proceed to enable Source Control for Oracle to overwrite those changes with the new branch. Git refuses to checkout until uncommitted changes have been dealt with either by committing, removing, or stashing those changes. For this reason, Source Control for Oracle should synchronize changes from the database into the local repository before performing any git operations. By doing it this way, you do not have to worry about tracking those sorts of things yourself since git will do it for us. Technical Implementation I am a big proponent of the DRY principle. I have my own derivative companion principle called DRAEE which stands for Don't Repeat Anyone Else Either. If I were engineering git integration with something like Source Control for Oracle, I would be making liberal use of git hooks (http://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) and Oracle Continuous Query Notification (http://docs.oracle.com/cd/E11882_01/app ... m#ADFNS018). In particular, on setup with the repository, I'd latch on to the scripts directory and register a post-checkout hook in the git repository that would update the database from the repository after a successful checkout. I'd also setup a CQN callback to update the repository whenever one of the relevant schema objects has been updated in the database. At that point, the users can minimize the application to the System Tray and never worry about it again since it would operate in the background to keep everything synchronized. This also means that users can continue using git on the command line or from the GitHub app or Source Tree or whatever they want which in turn means you don't have to reimplement all the stuff that they've done a reasonably good job of implementing while still providing tremendous value for end users. They support what they're good at, and you support what you're good at, so I can support what I'm good at. / comments
Let me provide a couple of use cases to clarify. Setup I have an existing project in a local git repository located at C:UsersStupormanmy-app. Within this repository is a directory called database ...
0 votes