What is the workflow for initiating collaboration? #405
-
Let me start off by saying I am an experienced developer myself (over 25 years, about 10 with git, svn, vss, etc before that), so any who answer should not be afraid to be technical! I am evaluating this addin for a situation where some non-technical users will be collaborating on "development" in a shared Access DB. I have looked through the docs and done some experimentation, but I would just like a quick walkthrough on how this should be setup on both machines from nearly scratch. Assume a "normal" development situation for collaboration as follows:
The first two steps are no problem. Step 2 proved a little problematic because exporting the database with the plugin caused it to create a new directory rather than asking where to put the files, which of course meant they were not put in the directory already initialized and setup with the remote repo. I've since found the "export folder" setting which I can presumably use to remedy this. Step 4 was even more problematic. Clearly I did something wrong here. After cloning the project, I couldn't find an easy way to recreate the database from it. The ribbon hiding the "add-ins" dropdown is, of course, unavailable until you already have a database file opened. So I created a blank database just to run the addin import and it was apparently successful, but again I was caught off guard by the fact that it just created it in the same path and with the same name as it had on machine A, which was on the user's desktop. This strikes me as a "major" problem, because that path may not be accessible during real usage. It only existed and was accessible in this case because the account I am using on both VMs is the same. If I'd been logged on machine A as Alice and machine B as Bob, machine B would have failed to create In any case, after the import, the repo showed some changes and the database was empty. No forms, no queries, no data, no nothing. The vcs-index.json file is changed, and the local version has an entirely empty Assistance is appreciated! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 15 replies
-
Hi Allen, I think I am probably long overdue for creating a video tutorial that can walk new users through this exact scenario. 😄 This is precisely what the add-in is designed to do, to streamline the process of multiple developers working on the same database project and collaborating through a VCS repository. Here is the process I would recommend for the most basic out-of-the-box usage with minimal setup and configuration. (Actually quite similar to what you described above.) Initial Setup
By default, it will export the source to a subfolder in the same location as the database. It will also add the default Client Setup (Other Developers)
At this point you will now have a fully functioning clone of the database created by the first developer. You can open the database from the GitHub folder and continue development on the database objects. Committing Changes
The changes are now available to the other developers via the GitHub repository. Loading Changes from Others
Since the database is already open at step 3, it knows where the source files are and builds the database without having to select the source folder each time. That's the basic workflow in a multi-developer scenario. How you manage the flow of the changes is entirely up to you and what works best in your environment. Some people prefer having each developer work on their own branch, and use branch merging to bring changes across. Others take the simpler approach of just working on a single branch and coordinating with each other so both developers are not working on the same areas of the database at the same time. The nice thing about managing all the changes and merging at the source level is that you can utilize conflict resolution tools like VS Code to work through issues where something was changed by both developers. After resolving the changes in the source, you can rebuild from source and have a build that matches whatever version you are working with at the source level. Of course there are limits in how much overlap you can have between developers. Don't expect to have two developers making changes to the same form layout and expect to merge those changes together as source files. 😄 For non-technical users, I think the concept I would try to emphasize is that exporting source files is creating a set of instructions on how to build the database, based on the modifications they make through the user interface. It is important that they export their own changes before bringing in the changes from others. (This way they will see the conflicts in GitHub Desktop, or whatever client they are using.) A few notes for you to keep in mind from a technical side:
Regarding some of your specific questions, let me touch on a couple things...
I hope that helps! Again, hopefully I will be able to put together some tutorial videos in the future to give people a quick jump-start on the process when using the add-in for the first time. Adam |
Beta Was this translation helpful? Give feedback.
Hi Allen,
I think I am probably long overdue for creating a video tutorial that can walk new users through this exact scenario. 😄 This is precisely what the add-in is designed to do, to streamline the process of multiple developers working on the same database project and collaborating through a VCS repository.
Here is the process I would recommend for the most basic out-of-the-box usage with minimal setup and configuration. (Actually quite similar to what you described above.)
Initial Setup