Releases: joyfullservice/msaccess-vcs-addin
Releases · joyfullservice/msaccess-vcs-addin
v3.3.0: Significant updates
Summary
This release incorporates a large number of updates, fixes, and enhancements that have been in development over the past several months. With over 170 commits, I will not attempt to detail all of them here, but touch on a few of the main changes. Special thanks to @hecon5, @Tanarri, and @Indigo744 for their contributions in this release!
Enhancements
- Faster Performance We have now implemented an index-based system to track changes to the database objects using the local
vcs-index.json
file. This allows us to store modified dates and even content hashes to avoid having to export objects that are identical to the last export. This has been implemented on some of the main objects like forms, reports, and queries, so most users will probably see a performance improvement when using the Fast Save option. - Improved Print Settings Export Print settings are now exported only when they are different from the default settings of the current default printer. This helps avoid source changes that do not reflect an actual change in the database objects.
- Better Error Handling New error handling functions have been implemented in several areas, showing output both on the main screen and in the log file.
- Reorganized Source Files Large code modules have been divided into smaller ones with more specific focuses. This helps developers to more quickly identify issues and provides a more logical organization to the project.
- Expose API to Other Projects Some users were interested in calling the VCS functions from their own projects, so so an API class now creates an interface for calling some of the main functions from outside projects.
- Improved Security The add-in is now installed in its own dedicated installation folder, so you no longer need to trust the Microsoft Access Addins folder, which may contain other projects/addins.
- Installer GUI The message box has been replaced with a more user-friendly installation form with a couple additional options to consider when installing the add-in.
- Testing Database The companion testing database
Testing.accdb
can now easily be built from source. New objects and test methods can be added there to ensure ongoing compatibility with various types of database objects.
Bug Fixes
Numerous bug fixes are also included in this release.
Other Changes
- PLEASE NOTE: Formats for a number of source files have changed, so you may see a large number of changed files the first time you run an export from the updated add-in.
- Additional Files to Ignore in VCS Please review the
.gitignore
file in this project to see some additional log and index files you will probably want to ignore in your projects before committing to your version control system.
v3.2.2: New options for saved printer settings
Enhancements
- Added customizable options in the user interface where you can select which of 20 different printer settings you would like saved with report definitions. Most users will appreciate the common ones like page orientation and paper size, but some may also want to save other more advanced settings like duplexing or media type. e292423
- For those doing development work on this add-in, the
Deploy
function has now been updated to both update the installed version, and export a copy of the source code in a single step. d05744a
Bug Fixes
v3.2.1: Progress bar and bug fixes
Enhancements
- The user interface now displays a progress bar instead of the spinning clock for longer-running operations. This speeds up the performance of the export, and gives users a more standard visual indication of progress. 54df6ad
- Added a link on the main form to open the log file after completing an export or build. 0aa183e
Bug Fixes
- Fixed an issue with Fast Save when exporting linked table definitions. 6e9b9b5
- Added missing
VerifyPath
calls before exporting to ensure that the folder path exists. #84, f0743c1, 1526539 - Corrected item counts when building from source. 2ec44ff
- Resolved a minor issue with the log file output. 46b3838
v3.2.0: Print Settings and Faster Performance
Enhancements
- Saved print settings are now restored to reports when the database is built from source. Not only does this include basic settings like page orientation and paper size, but even more advanced settings like paper tray and form names. The print settings are stored in human-readable text in JSON files, then converted to binary blocks and added back to the source files just before import. This approach is WAY faster than opening each report in design view and setting these values through the object model. Special thanks to @Indigo744 for his help and encouragement in getting this implemented.
- Redesigned sanitize function for even faster performance. In my testing I was getting as much as 10X increase in speed when processing large files. (Also due in part to a faster file reading technique.) d88ea89
- Improved performance when reading large export files. (Such as reports with embedded images.) By reading the file in 128K chunks, instead of all at once, the internal memory allocation is done much more efficiently. 5f2f89d
- Added a performance logging class to monitor the speed of the export/import processes and related functions. This was a key building block to identifying and improving performance bottlenecks. Performance reports are now included at the end of
Export.log
andImport.log
. b0c9221, 3dcd7d1, 9e79c11. Thanks to @mmzmusicnotes in #81 for highlighting the need for better performance monitoring when dealing with very large databases.
Example performance report
-------------------------------------
PERFORMANCE REPORTS
-------------------------------------
Object Type Count Seconds
-------------------------------------
themes 1 0.02
VB project 1 0.00
vbe references 9 0.03
shared images 3 0.03
db properties 56 0.13
tables 66 0.88
queries 52 2.08
forms 177 9.54
macros 2 0.03
modules 29 0.86
reports 32 8.51
doc properties 1 0.00
nav pane groups 1 0.02
-------------------------------------
TOTALS: 430 22.12
-------------------------------------
Operations Count Seconds
-------------------------------------
Console Updates 21 1.35
Extract Theme 1 0.00
Clear Orphaned 7 1.01
Write to Disk 384 2.98
Save Table SQL 66 0.13
Unicode Check 381 0.38
App.SaveAsText() 292 10.25
Delete File 523 0.09
Read File 295 1.08
Sanitize File 263 2.46
Save Query SQL 52 0.21
Increment Progress 5 0.30
Read File DevMode 32 0.16
Other Operations 4.18
- Added an option to restore the original SQL when importing queries. Some queries, such as those containing a subquery, were not correctly imported into the new database. Most users won't encounter this issue, but if they do, it can be solved by turning on this option. #76 28fb606, 28c2bae
- Remove non-essential references when building a database from source. #72, 753d4df
- Improved version compatibility with GUID references, setting version based on Microsoft Access version. #72, ece0208
- Added Unicode support for table data import using tab-delimited format. #71, bd7cf2d
- Add-in now offers to reinstall when opening the same version number as the installed version. #78
Bug Fixes
- Truncate displayed text at 20,000 characters on form console display. #77, bd92f7a
- Use double-quotes and brackets to avoid issues with non-standard table and field names. #83, 3be47c3, 456f0dd
- Fixed null value issue with TDF table data import. #64, 20fd9fb
- ImportXML does not support URL encoded file names. f9f2c20
- Other minor bug fixes. 040b5d2, 5a08277, 58bc331, 6d3a4aa, b7cfe2b
Other Changes
PrtMip
blocks are no longer included in Form export files. (They are for print margin details, and this is now stored in the JSON file and restored on import.)
v3.1.67: Improved Unicode Support
Enhancements
- Extensive rework of Unicode support for files and paths, including support for accented characters (ISO-8859-1). 38e8391, 1599141, 14ab81e, 507c461, fab09f0, d3dc101, ea44044, #60
- Added option to extract the source files from exported themes. (False by default) Most users won't need to export the embedded theme source files unless they are customizing the theme and wish to track those changes in VCS. 68934ed
- Turned off encryption for this project, since we are now using relative paths for everything contained in the project. e5fff53
Bug Fixes
- If encryption is being used, verify that we can successfully decrypt the project files before building from source. ae651b0
- Fixed redundant list of export formats. 09760af
- Corrected issue in folder iteration. 6aff96b
- Allow saving of VCS options before first export. 62a6832
- Handle IMEX specs with no name. 56f7a18
- Resolve some path verification issues. ee75541, b1731d1
- Gracefully handle missing
MSysResources
table in older file formats. 4c2b5ed - Resolve errors when checking indexes on linked tables that point to non-existent files. eb8a8f9, ff4c8f2
- Add error handling to TableDataMacro export. 8e3fa17
- Resolve an issue in this project that was causing some file corruption on deployment. 568c12c
v3.1.56: Fix table data export
Enhancements
- Added support for relative paths in database library references. ffe3375
- Check for presence of legacy modules used in the original
timabell
fork of this project. e8e8067, #57 - When developing this add-in, you can now
Deploy
updates without incrementing the version number. (Helpful for testing changes to the code base.) 3d5a732
Bug Fixes
v3.1.55: Network drive support
v3.1.54: Improve custom export paths
Bug Fixes
- Finish functionality for custom export paths. You can now use both absolute and relative export paths saved at the project level. #53 , #55 , 0a02de5
- Check to see if database is open before accessing properties. 0490c09, cee3032
- Fix export of mixed Unicode content from ADP projects. dadf500
Other Changes
- Encryption is now turned off by default. This should make it easier for new users just getting started with Version Control in Microsoft Access. 587699a
v3.1.51: Bug Fixes
v3.1.49: Theme Support
Enhancements
- Added a new option where you can choose whether to encrypt, remove, or leave potentially sensitive data when exporting to source. bb96cf0
- Only update JSON files when the actual content changes. (Ignores header changes like when VCS is updated to a new build version.) This helps reduce the number of changed files in the development cycle. 77abcdc
- Efficiency improvements in the exporting of print settings which allows us to read print settings directly from the export file, rather than having to open the form/report in design view. This makes the exporting of reports much faster. 61a483e
- Export/Import of Office Themes are now supported! 3f15102 Thanks, Casper for your help on theme support!
Bug Fixes
- Fix sanitize function where blank lines could cause missing information in export files, sometimes causing import to fail. 824e185
- Check for existing unique index on linked table before attempting to create one. 841d06e
- Fix issue where certain table attributes could not be assigned on linked tables. a4c5eba
- Remove unused document properties in new database when building from source. dae8712