Git on z/OS
Using Git, the version control system common on other platforms, to manage mainframe source code.
Also written Git, mainframe Git, .gitattributes, zos-working-tree-encoding
Git is the version control system used by most of the software world. More and more mainframe teams keep their COBOL, JCL and other source in Git too, instead of only in a traditional source code manager.
Git runs on z/OS in Unix System Services, and on developers' own computers. Source is kept as files in a Git repository, not as members of a PDS. When it is time to build, a tool such as DBB copies the files into datasets and compiles them.
The main difference from other platforms is character encoding. Mainframe source is EBCDIC, while Git repositories are normally stored in UTF-8. A .gitattributes file in the repository tells Git how to convert each type of file, with settings such as zos-working-tree-encoding, so files are readable on both sides.
Git brings branches, pull requests and code review in the same form developers use elsewhere. It also brings the mainframe into the same pipelines and tools as the rest of the organisation, which is one of the main aims of many modernisation plans.
Where can I learn this hands-on?
Right here, at ZedBank. You take a junior job at a simulated bank and learn each part of the work by doing it, with Zed beside you. There's nothing to install.
Start at ZedBankRelated
- DBBIBM Dependency Based Build: a tool that builds mainframe programs from Git, working out which programs need rebuilding after a change.
- Source code managerA tool that stores mainframe source code, tracks every version, and moves changes through test stages to production in a controlled way.
- Unix System ServicesA full Unix environment built into z/OS, with a shell, directories and files alongside the traditional mainframe world.
- EBCDICThe character encoding mainframes use, where letters and numbers are stored as different byte values than on a laptop.
- CCSIDCoded character set identifier: a number that names which character encoding some data uses, so it can be converted correctly.
- ZoweOpen-source tools that let you work with z/OS from a laptop, an editor such as VS Code, or a script.