Get Your Git On, IBM i
August 8, 2016 Alex Woodie
Git has officially come to IBM i. Last week, IBM released a program temporary fix (PTF) that includes binaries for an IBM i version of the popular open source change management tool that was announced as part of IBM i 7.3 earlier this year. Along with Git, IBM also released a PTF for Orion, a new Web-based IDE that works with Git and can be used to code free-form RPG from a tablet.
There’s been a lot of talk about Git in the IBM i community since it was first revealed to be coming to the platform with the launch of IBM i 7.3 way back in March. Last week, the way for an IBM i version of Git officially ended when IBM delivered PTF SI61060. See the Git page on developerWorks for more information on the PTF.
If you’re not familiar with it, Git is a distributed version control system first released 11 years ago by Linux creator Linus Torvalds, who was frustrated with another distributed version control system called BitKeeper. As an open source project (BitKeeper was proprietary), Torvalds developed Git to be scalable enough to enable his large and distributed team of Linux developers to work on the project without the version control system getting in the way.
Git has become a huge success since it was first released. That’s due to part to the success of repositories like GitHub, which allows developers to store their code in an open manner, often as part of an open source software project. Now that Git support has come to IBM i, it is expected to gain more traction in the midrange too.
IBM i professionals who are accustomed to using centralized change management systems, such as CVS or one of the many proprietary tools available from third-party vendors, may find Git’s decentralized approach odd at first. Instead of keeping just a delta of the changes in a local library and keeping the full repository in a centralized server, Git allows the whole development history to be stored in each client, albeit in a super-compressed state.
Git’s decentralized approach brings several advantages to development teams, according to Edmund Reinhardt, the architect for Rational on IBM i.
For starters, having everything stored in a distributed fashion helps to prevent problems that arise over the need to manage a slew of directories and sub-directories. If you wanted to quickly add some external code to a project you’re working on, perhaps from an open source project, “as soon as you touch those subdirectories, then the whole source control is messed up,” Reinhardt says in a recent YouTube video with IBM technical writer James Littlejohn.
The distributed nature of Git also eliminates a central point of failure. “If the central server goes down, that’s okay,” Reinhardt says. “If James and I are working and my stuff gets blown away, then James has a copy of everything up until the last time things were delivered or pushed.”
Speed is another advantage over most other source control systems, he says. “Git, counterintuitively, is faster because it . . . has a complete copy for every version,” Reinhardt says. “It uses compression intelligently to actually not take more space. So the space can actually be an improvement, and the speed is definitely an improvement.”
Because Git enables every developer to have a full copy of the code, the developers can work when they’re disconnected from the network. “I can work on plane and use full source control without having to make any network calls, which makes it easier to work when disconnected, and it also makes the speed much faster because there’s no network calls,” Reinhardt says.
Git users who are part of a development team are encouraged to synchronize their work with others, or “push” out updates, on a frequent basis. While Git can work in a decentralized manner, many development teams use a central repository, such as GitHub, which is free.
IBM i shops that don’t want to share source code with the world can pay for a private Git repository, or they can store the repository themselves. This is where IBM’s support for Git comes in. “Of course, the most reliable server of all that you have in your shop is your IBM i, so it would make sense to have your Git repository on the IBM i, where the disk space is managed and backed up and so on,” Reinhardt says.
IBM i developers can use Git with Rational Developer for i (RDi), the main integrated development environment (IDE) used for creating applications for IBM i. The integration with RDi is through the Git Team Provider, Reinhardt says.
Enter the ORION
While RDi may see some of the Git action, there’s another IDE that will likely see most of it: Orion.
Selected by IBM to be Option 8 in the 5733-OPS project, IBM recently shipped the Orion binaries with PTF number SI60170. See the Orion page on developerWorks for more info on how to get Option 8 and Orion.
But now, Orion also includes more basic support for other languages that are used on IBM i, including PHP, Python, and free-form RPG. “It’s a very powerful, no compromise editor for those native Web languages, and for the other languages we have highlighting,” Reinhardt says.
So why would an IBM i professional want to use Orion when they can use a more powerful IDE like RDI? Reinhardt has an answer for you. “You can now edit RPG in a browser,” he says. “It doesn’t matter what device you’re on . . . . It can work with a tablet or a phone. James and I have had the pleasure of editing RPG on a tablet.”
If the idea of editing free form RPG in a Web browser running on your iPad or Android tablet has your interest piqued, then you’re only a few short clicks from making it happen. However, while Orion is available from the open Web, you’ll need to get the IBM version if you want to edit RPG in a tablet. “It’s only the IBM i version of Orion that has . . . free form RPG highlighting. That’s the advantage of getting the IBM i version,” Reinhardt says.