Well, as I was shutting down various apps, all of a sudden OASIS-SVN started seeing files to export. This could be that it was one of the apps (possibly my Splashtop which had an active session open) or simply that the memory was getting a bit bogged down. This also could have been the case due to my browser having LOTS of tabs open on it and that was one of the things I also shut down.
Anyway, now I can export so the export screen looks like this after I hit CTRL-A on my keyboard to select all objects that could be exported:
After clicking OK, the process completes and I have a resulting folder of files that looks like this at the root of my working copy:
And then like this inside the source folder:
And the magic there is done. Now if I choose the import button from the OASIS-SVN ribbon, OR right click on an object in Access and choose the OASIS Import operation it will import the file and recreate the object based on that file.
Next I will use TortoiseSVN to commit the entire folder. Once I’m done committing the whole thing, I can use the OASIS-SVN TortoiseSVN menu to do commits and updates, but it’s important to note it will only do that to the source folder, not the root folder. If I make any changes there, I should commit them this way:
Here is the dialog:
At this point I am going to tell the repository to ignore changes to the FormAuditor.accdb file because that will change every time I open the file. There is no point in committing this binary file. However, I did make a backup of it with 7zip and I am going to version that. I don’t typically make a new one every time I commit, but occasionally there are issues with opening a blank database and importing all the files into it and not everything imports correctly. I don’t see this happen often, but if that is the case it is good to have backups of the binary file at important points in development.
To ignore the changes to the accdb file, I can right click on it and tell it to add the file to the ignore list:
This will make it disappear and not pay attention to any changes to that file. And after clicking OK, I get a nice notification of it adding all the files and making a new revision in the repository:
Now I can go to my desktop, and checkout the repository there to make a working copy of the root folder. When I’m working on my laptop, I can save all my changes and export them and commit them using the OASIS-SVN menus. When I switch back to the desktop I can then run an Update command on the repository and Import the changed objects also using the OASIS-SVN menus.
I am now ready to work on the database on either my laptop or my desktop. If I had another computer, I would create another working copy there and do the same thing.
Some of the benefits of just me storing changes in a repository like this are:
- I can look at each object that changed by looking at the file in the SVN log and I can compare it to the last revision to see single or multple sets of changes I’ve made just to the text of that object.
- I can search for the last time I committed a particular file / object
- I can quickly update the working copy to a previous revision and import the files from that revision to get the database back to the way it was in that revision.
There are additional benefits as you start working with more people. One must understand how all this works though. You need good processes in place to benefit from using a repository. There are multiple gotchas to watch out for. In my case, I have been using SVN for a long time for multiple projects and with multiple users so I am familiar enough and have developed my own process in using it.
Feel free to share with me how you use backups, or if you are more interested in articles like this one in the future. Really. Feel free to share anything that’s on your mind. Just hit that Reply button. Or shoot me an email if you’re reading this on the web.