LPARAMETERS toUpdateInfo LOCAL lcNote, ; lcRegisterWithThor ****************************************************** ********** Git-Hg Utilities Version History ********** ****************************************************** TEXT TO lcNote NOSHOW The Git-Hg Utilities ease the process of working with VFP's binary files when using Git or Mercurial as the source control provider, as well as making it easier to work with .PJX projects which contain files from multiple Git or Mercurial repositories. See the tool home page for more information. These utilities require the Thor repository, FoxBin2Prg, Git for Windows or Mercurial for Windows, and the Windows Scripting Host. ==== Change History ==== 2018.05.18 - Combine the "Add Git-Hg Beta to Check for Updates" and "Remove Git-Hg Beta from Check for Updates" tools into a single tool called "Add/Remove Remove Git-Hg Beta in Check for Updates". This tool prompts you to add the beta to the My Updates folder if it doesn't exist, and prompts you to remove it when it does exist. - Remove the "Populate DBF from DB2" tool from Thor. This was located under the "Applications > FoxBin2Prg" menu. This tool is no longer relevant since FoxBin2Prg added the option "DBF_Conversion_Support: 8". - Update the code that closes and reopens projects to support the VFPX Project Explorer. When one or more solutions are open in Project Explorer, the Git-Hg utilities will use the Project Explorer interface to close and reopen those projects, so that Project Explorer does not shut down after a Git-Hg process. - Redirect all links for this utility to GitHub. - Update VFPX project links to the GitHub locations. 2017.02.25 - The Git-Hg tools have been enhanced to support any repository that uses FoxBin2Prg text files, regardless of whether the VFP binary files are being tracked in the repository. -- In the "Post-checkout file synchronization" process, for any FoxBin2Prg text file whose VFP binaries are not being tracked in the same repository, FoxBin2Prg will be called to regenerate the binaries. -- In the "Prepare for Git-Hg commit" process, any FoxBin2Prg text files that are being tracked by the repository will be regenerated even if the VFP binaries are not being tracked. - The FoxBin2Prg progress bar is now being used to provide better feedback during FoxBin2Prg operations and other long processes. - The features of the "Post-checkout/update" process that regenerate the .MPR/.MPX files and recompile the .PRG files will now check if .MPR, .MPX, or .FXP files are committed to the repository before overwriting them. This change gives developers more flexibility regarding the types of files that are tracked in their repositories. - The "Post-checkout/update" and "Prepare for commit" processes now close all project manager files (.PJX) at the beginning of the process, and don't open the project files again until all processing is complete. This eliminates some issues where the project manager cannot find a file that hasn't been regenerated yet, as well as ensuring that a file is not held open by the project manager during processing. - Two new tools were added: "Add Git-Hg Beta to Check for Updates" will add a custom item to Thor's Check for Updates list, making it easy to install and try beta versions of the Git-Hg Utilities. "Remove Git-Hg Beta from Check for Updates" removes that custom item from the Check for Updates list, if you don't want it there anymore. 2016.09.07 - The "Post-checkout file synchronization" process has been enhanced. If a repository uses a timestamp file, then any of the files that are recompiled or regenerated by this tool (.FXP, .MPR/.MPX, .PJX/.PJT) will have their modification date and time set to match the timestamp of the main file (.PRG, .MNX, project text file). In addition, if a file to be recompiled/regenerated already has the same modification date and time as the timestamp of the main file, then that file will NOT be recompiled/regenerated. (Thanks to Eddie Caldwell for inspiring this) 2016.07.23 - Correct an issue where the modification date of a file that had just been edited could be reset to an earlier date during the "Prepare for Git commit" process. This could occur if the timestamp file somehow ended up with duplicate entries for a file in the repository. Duplicates are now removed when reading the file list from the timestamp file, and only the most recent timestamp is used for a duplicated file name. This fix also removes the duplicates when the timestamp file is updated. (Thanks to Eddie Caldwell) - Enhance the "Prepare for Git commit" process so that if there are multiple .PJ2 files being tracked in a repository (and the .PJX files are not being tracked), all of the .PJ2 files will be regenerated. Before, you had to run "Prepare for Git commit" with a specific .PJX file, and then only the .PJ2 file for that .PJX was regenerated. - Enhance all the utilities to support Mercurial repositories, and added an option to specify a different file name for the timestamp file in a Mercurial repository. 2015.11.20 - Correct a bug that caused an error in the "Save file timestamps" tool when a file that was being tracked in the repository has been deleted, but the deletion is not staged yet. (Thanks to Eddie Caldwell) - Correct a bug that caused an error in the "Restore file timestamps" tool when a file is referenced in the timestamp file, but is was deleted from the repository in a previous commit. (Thanks to Eddie Caldwell) 2015.10.12 - When a new primary VFP binary file is added to a repository, the "Prepare for Git commit" process will now ensure that any untracked files that belong with it will be added to the repository. For example, if a .SCX file is added, the .SCT and .SC2 files that go with it will be added for you. 2015.10.09 - Modify the list of repositories in a project to include totals for staged and unstaged changes, untracked files, and merge conflicts. - Add a tool which will create and populate a table from a FoxBin2Prg DB2 file created with the setting DBF_Conversion_Support: 4. - Update the ReadMe file (shown on the tool homepage) to document the new features, and include additional information about the Prepare for Git Commit tool. 2015.07.27 - Enhance the error handling for executing external commands to do a better job of collecting error info, eliminating a scenario where a blank error message was being generated. 2015.07.24 - Modify the recompile process for the post-checkout file synchronization to attempt to recompile all files in a repository, even after one of them fails to compile. - Update the error messaging for the recompile process to include the name of all the files that fail, and the name of the repository where the error occurs. 2015.07.09 - Correct a bug in the scope selection code that resulted in a VFP error if the form was cancelled. - Refactor to move the scope selection code to the main Git Utilities class so it can be shared by all the individual tools, rather than repeating it in every tool. 2015.07.08 - Make some minor changes for including this project in Thor's "Check for Updates" feature. 2015.06.10 - Enhance the post-checkout synch process to restore file timestamps, if applicable. - Modify the post-checkout synch tool to link to the Git Utilities options to more easily access the timestamp options. 2015.06.04 - Fix a bug in the "Prepare for Git commit" process which would fail to cleanup a binary file if the file extensions for a pair of binary files were not the same case (for example .vcx and .VCT). Only the primary file was being cleaned up in this scenario. - Add new features to the Git Utilities class to provide post-checkout file synchronization. - Add a new "Post-checkout file synchronization" tool which implements the corresponding features added to the Git utilities class. - Update the readme with information about the post-checkout tool. 2015.06.03 - Update to the ReadMe file to add a section on getting started with Git. - Add links to the tool home page on GitHub. 2015.05.12 - Initial public release of the Git Utilities. ENDTEXT ******************************************** ********** End of Version History ********** ******************************************** ADDPROPERTY( toUpdateInfo, 'Notes', lcNote ) WITH toUpdateInfo .ApplicationName = 'Git and Hg Utilities' .Component = 'No' .ToolName = 'Thor_Tool_ThorInternalRepository' .VersionNumber = 'v2018.05.18' .VersionDate = DATE(2018, 5, 18) .SourceFileUrl = 'https://raw.githubusercontent.com/mikepotjer/vfp-git-utils/master/ThorUpdater/GitUtils.zip' .LinkPrompt = 'Git/Hg Utilities for VFP Home Page' .Link = 'https://github.com/mikepotjer/vfp-git-utils' ENDWITH TEXT TO lcRegisterWithThor NOSHOW TEXTMERGE ERASE ( _SCREEN.cThorFolder + "\Tools\Thor_Tool_GitUtilities_AddBetaToCFU.prg" ) ERASE ( _SCREEN.cThorFolder + "\Tools\Thor_Tool_GitUtilities_RemoveBetaFromCFU.prg" ) ERASE ( _SCREEN.cThorFolder + "\Tools\Thor_Tool_FoxBin2Prg_DB2toDBF.prg" ) MESSAGEBOX('From the Thor Launcher, see "Applications -> Git-Hg Utilities"', 0 ,"Git-Hg Utilities installed", 5000) ENDTEXT ADDPROPERTY( toUpdateInfo, 'RegisterWithThor', lcRegisterWithThor ) EXECSCRIPT( _Screen.cThorDispatcher, 'Result=', toUpdateInfo ) RETURN toUpdateInfo