<< Click to Display Table of Contents >> Navigation: Versions > Version List |
V1.0.1 - 1.0.3 - 7/11/2019
V1.0.4 - 8/22/2019
Changed /tmp/git to /tmp/gittemp for GITCMD and GITQSH commands.
GITQSH will also build /tmp/gittemp now if not found. GITCMD does so already. All commands should now use /tmp/gittemp.
Resolved SRCFRMGIT issue. Was only parsing the first dir part of a multi-directory path causing issues with SRCFRMGIT import process.
Added SETLIBREPO command to set repo directory and enable git for SEU.
GITREPODIR data area added. Directory for git to use for library repo.
GITENABLED - *YES - Enable git for library. *NO - Don't enable git for library.
Added SETGBLUSR command to set global git user for each user. Must enter name and email address as parameters.
V1.0.5 - 8/22/2019
Modified SRCFRMGIT so *IFSFILEPARENT works if specified to set repo from repo IFS parent directory.
Resolved memory leak when calling GIT008R from SRCFRMGITC.
Added *IFSFILEPARENT option to GITCMD so we can easily determine repo name from a passed IFS file name if called from RDi
IFS file editing.
Also added FROMIFSFIL which will normally be *NONE unless we specify *FSFILEPARENT for the repo path. Then file is required.
Added SETCURREPO command to set current repo for user Added PDF template options file. QAUOOPTGIT in IFORGIT library.
V1.0.6 - 8/25/2019
Set STMFCCSID default to *PCASCII for the SRCTOSTMF command.
Added GITQRYTMP for doing adhoc SQL to OUTFILE.
Added GITQRYSRC to query list of source members and changes for selected library and all source files or selcted source file.
Added remove observability options if possible.
Added GITIFSSHR command to create NetServer IFS share.
Fixed SRCTOGIT to ignore empty members. Was causing a decimal data error. Made tweak to GIT004R to handle empty files by not trying to read the empty file member.
Added GITREPOSAV command to save repo to IFS based save file.
Added GITREPORST command to restore repo from IFS based save file.
Added LIBSRCEXP command to export all source from libraries. Ship source for LIBSRCEXP command so it can also be tweaked. Main reason to ship source was that a potential level check could possibly happen on temp file created by GITQRYSRC from LIBSRCEXP so customer can recompile LIBSRCEXP is there are issues.
Added Authority parm to SRCTOGIT. Chged default to *INDIR from *DFT. This should insure files get permissions based on dir permissions.
Changed AUTHORITY parm default to *INDIR for SRCTOSTMF command. This should insure files get permissions based on dir permissions.
V1.0.7 - 8/27/2019
Fixed GITIFSSHR build.
Added date range to GITQRYSRC and LIBSRCEXP commands to limit based on source change dates.
Also added special keywords for date range:
*ALL - Calc date of 1/1/1900 - 1/1/2099
*TODAY - Current date, *CURMONTH - Current month,
*YESTERDAY - Yesterday and today.
*LAST7, LAST14, *LAST30 for rolling dates.
Added *GITADD option to SRCTOGIT and LIBSRCEXP commands. This allows a fle to be added/staged to the commit list for a later commit. Good for bulk file operations where one commit might be done at the end of the process of staging a bunch of source members for commit.
V1.0.8 - 9/3/2019
Added PRELOADIDX parm to SETGBLUSR. You will want to set it to *FALSE to avoid the following error for each user:
"fatal: unable to create threaded lstat" when trying to export 1000+ members from a library to git. This command sets the preloadindex settings in the current users global git config file in: /home/user/.gitconfig git config --global core.preloadIndex false
Git defaults for preloadindex are typically = true.
By setting core.preloadindex = false then lstat error could disappear. You may just find that your git add and commit
process takes a little longer with lots of source members.
Added data area and command GITHOME to allow us to retrieve and modify the users HOME dir for Qshell calls made from bash.
Found a possible bug where the bash/ssh jobs report the HOME directory as /home/QSECOFR even though the job was started with another user.
If GITHOME is set to *YES-Dft then the home dir will always be retreived at runtime from the actual logged in user profile for the SRCFRMGIT and SRCTOGIT commands.
Both regular and license source now built from QTEMP to anonymize/obfuscate the source build locations. License pgm renames as well.
V1.0.9 - 10/6/2019
Added GITPATHUSE data area to allow us to use the GITPATH command to autoset the Qshell search path. Having a .profile file does not seem to get used unless doing a QSH interactive shell.When QSH is called to with a command the git command cannot be found. I recently removed the 5733OPS version of git which may have been masking the issue.
If GITPATHUSE is set to *YES-Dft then the GITPATH command will be run before calling git from SRCFRMGIT, SRCTOGIT, GITCMD and GITQSH commands. This sets the appropriate /QOpenSys/pkgs/bin path
Remove CHGJOB CCSID(37) from SETGBLUSR.
V1.0.10 - 11/8/2019
Resolved additional CHGJOB CCSID(37) handling.
Git commands should not require a CHGJOB so we needed a better option.
Created GITCCSID data area to determine if CHGJOB needed. Dft: *SAME which means no CHGJOB will be done on commands that use the data area.
Changed CCSID parm from 37 to *DTAARA as default for GITCMD command.
Added CCSID parm to GITQSH and defaulted it to *DTAARA.
Created GITUPG command to copy over settings on library upgrade.Run GITUPG against old library after upgrade to copy settings data and data areas to new iForGit library.
Added JPLTOOLS logic to GIT001R-GIT006R to handle AtSign replacements by using a CCSID 500 version of the AtSign and converting based on the job CCSID. This should make sure that headers format correctly with AtSign @ values on machines that are not using CCSID 37.
SETGBLUSR now checks to see if user home dir exists and is not blank. If either of these conditions are true, the command fails.
V1.0.11 - 11/14/2019
-Created &GITADDQT data area to hold file name delimiter for git add File names such as $$.cmd were causing git add errors. By default
the GITADDQT data area is set to single quote ' so that file names with spaces or special characters should succeed on a git add operation being performed by SRCTOGIT or SRCFRMGIT. Filename will get wrapped with the delimiter character on git add.
Default OPTION(*SET) for menu option 2:
2. Set Repo Data Areas for Library - SETLIBREPO
*SET should be the correct default because that's the core use of this menu option. *DSP can still be used when needed to view dtaara's
V1.0.12 - 11/14/2019
Updated LIBSRCEXP to not throw any errors if no members selected for export because of no members changes within selected data range. A more descriptive completion message is thrown on normal completion and if no members selected for export.
Updated GIT004R to be read-only. This will prevent CPF4128 errors if a source member is already open when being exported. Only last saved version of source member will be captured to git.
V1.0.12 - 11/24/2019
Added JPLTOOLS message file to library. Needed to prevent endless loop condition if bad data is contained in a source member causing GIT004R to halt. This is probably related to adding international character handling code.
V1.13 - 12/18/2019
Updated GIT004R to handle errors if source member has bad seq# or dates in the source data. This caused GIT004R to halt during
SRCTOGIT command because of a decimal data error on SRCSEQ and SRCDAT fields. Only found this because of bad data in a customers source member date and seq fields.
Example log info:
1 QILE IFORGIT GIT004R 0000002876 GIT004R
2 QILE IFORGIT GIT004R _QRNP_PEP_GIT004R
3 *DFTACTGRP IFORGIT SRCTOGITC 0000045200
40 12/14/19 01:47:21.268882 GIT004R IFORGIT *STMT
GIT004
From module . . . . . . . . : GIT004R
From procedure . . . . . . : GIT004R
Statement . . . . . . . . . : 2680
To module . . . . . . . . . : GIT004R
To procedure . . . . . . . : GIT004R
Statement . . . . . . . . . : 2680
To module . . . . . . . . . : GIT004R
To procedure . . . . . . . : GIT004R
Statement . . . . . . . . . : 2680
Changed PDM option GI to pass SRCTYPE('&T') to command instead of passing SRCTYPE(&T). If source type was blank, PDM was passing the default value of *SRCHDR to the command. This was causing an import failure for source members with no source type and no file extension in git repo because the process thought the file ext was *SRCHDR instead of blank. Only happens on members with no source type. This is probably a bug/feature in PDM that will not get fixed by IBM so we worked around it.
Changed SRCFRMSTMF TOMBR parameter to allow valuing an expression. This works in conjunction with above PDM *SRCHDR issue on SRCFRMGIT calls via the GI PDM option where PDM wasn't passing the source type if it was blanks.
Added GITTMPLIBC to create IFORGITTMP library to hold temporary members or other work files because QTEMP can be problematic git calls made from PASE/QSHELL spawn another job meaning there may be more than one QTEMP library and QTEMP does not cross processes so if outfiles get created they cannot be shared unless in a public library. Checks added to SRCTOGIT and SRCFRMGIT.
**Adding GITTMPLIB was added in anticipation of adding individual source member checkout from a git repository to a temporary library/file source member using the git checkout command. Coming soon....
Important: Changed the GITQRYSRC/LIBSRCEXP commands to select changed members based on field: last_change_timestamp field instead of using the last_source_update_timestamp field.
If a source member is copied in PDM or via CPYSRCF, the last_source_update_timestamp field does not accurately update until the source member gets edited. This can cause copied members to be missed by GITQRYSRC/LIBSRCEXP until actual changes are made to the source member. In PDM source members are often copied for backup purposes and we don't want to miss capturing those members to a git repository.
V1.14 - 1/25/2020
Updated SRCTOGIT command to NOT use the IFS file name as part of the commit comment if *DATEUSER is specified for the commit comment. This was causing commit errors if the member name contained a $ character which is a substitution variable in QSH/PASE.
Partial error in joblog:
Command ended normally with exit status 2.
Statement . . . . . . . . . : 358
Message . . . . : qsh: 001-0048 Syntax error on line 1: variabl
substitution not valid.
Prior to V1.14, if you use a commit message such as 'Commit 1/1/2020' where there is no $ in the message, the commit should not fail.
As long as your commit message does not have a $ in it, then your commits should always work as expected.
V1.15 - 2/11/2020
Resolved licensing issue if ASPGROUP is *NONE.
Added log *NO to all commands to result in smaller job logs.
V1.16 - 06/18/2020
Use BASE64R4MB instead of BASE64R4 for the base 64 service program name to avoid conflicts.
V1.17 - 03/08/2021
Removed usage of %char in LIBSRCEXP in prep for V7R1 back port.
Note: We will probably not complete a back port to V7R1.
V1.18 - 06/17/2022
Added IFSCOMMIT command for committing IFS repo changes via git. It's essentially a CL command wrapper over the following sequences:
cd /gitdir;git add .;git commit -m "Comment Specified on IFSCOMMIT"
V1.19 - 07/28/2022
Added --no-pager flag to git commands in SETGBLUSRC to prevent the following error that was happening because /QOpenSys/pkgs/bin was in the PASE_PATH environment var. May remove PASE_PATH env var in the future.
Note: In general all git commands on 5250 should possibly have the --no-pager flag
Error that occurs without --no-pager
WARNING: terminal is not fully functional
- (press RETURN)
Added GITQSHEXEC command from QSHONI library source V1.0.12 version of QSHEXEC command for running QShell/PASE commands.This is a more comprehensive QSH commmand than GITQSH and will replace GITQSH at some point.
Added standalone GIT command for running individual GIT commands against repos. This differs from the GITCMD command which runs using a selected library for library specific git commands.
V1.20 - 12/9/2022
Added SRCGITCMD CL command. The SRCGITCMD command can be used to view or check out old versions of a source member using the the SRCGITCMD CL command itself in a process or interactively as a PDM option or RDI user action. Supports git log, git blame, git diff, git show and git checkout of a single member by commit hash.