Comparing Git to traditional IBM i source control

As an IBM i developer, you're likely familiar with the traditional source control tools available on the platform, such as PDM (Programming Development Manager) and SEU (Source Entry Utility). These tools have served the IBM i community well for many years, but only really offer a technique for source maintenance.

Other third party tools like Aldon, Turnover and Change4i have traditionally filled the "version control" space.

The rise of modern version control systems like Git has introduced new possibilities for managing your IBM i application source code.

In this lesson, we'll explore the key differences between using Git and traditional IBM i source control tools on an IBM Power System.

Traditional IBM i Source Control

The traditional IBM i source control tools, PDM and RCS, are tightly integrated with the IBM i operating system and provide a set of commands and interfaces for managing source code. Some of the key characteristics of these tools include:

  1. IBM i-centric: PDM is designed specifically for the IBM i platform, with a focus on managing source code stored in IBM i source physical files.
  2. Centralized approach: These tools rely on a centralized repository, typically hosted on the IBM i system, where all source code changes are managed.
  3. Limited branching and merging: While PDM does not support even basic branching and merging capabilities, it does offer hooks for you to write a home-grown version of source control. This is never as agile as modern version control systems.
  4. IBM i-specific interfaces: Developers interact with PDM through IBM i-specific interfaces, such as the PDM menu system or CL commands.

Git for IBM i Source Control

In contrast, Git is a distributed version control system that has become the de facto standard for software development teams across industries. When using Git for your IBM i source code, the key differences include:

  • Platform-agnostic: Git is a cross-platform tool that can be used on a variety of operating systems, including IBM i, Windows, macOS, and Linux. This allows for greater flexibility in your development environment.
  • Distributed approach: Git uses a distributed architecture, where each developer has a complete copy of the repository on their local system. This enables more efficient collaboration and offline work.
  • Powerful branching and merging: Git's branching and merging capabilities are significantly more advanced than those of traditional IBM i source control tools, allowing for more complex development workflows.
  • Integration with modern tools: Git integrates well with a wide range of modern development tools and platforms, such as IDEs, build automation tools, and collaboration platforms.

Benefits of Using Git for IBM i Source Control

By adopting Git for your IBM i source control, you can enjoy several key benefits:

  • Improved version control and collaboration: Git's robust version control features and distributed nature enable better tracking of changes and collaboration among your development team.
  • Flexibility and modern tooling: The platform-agnostic nature of Git and its integration with modern tools allow you to leverage the same workflows and toolsets used by the broader software development community.
  • Streamlined development processes: Git's branching and merging capabilities make it easier to manage complex development workflows, such as feature branches, bug fixes, and releases.
  • Increased productivity and efficiency: By adopting Git, you can streamline your IBM i development processes, reduce the risk of errors, and improve the overall quality of your IBM i applications.

In summary, while traditional IBM i source control tools like PDM and RCS have served the IBM i community well, the adoption of Git can provide significant benefits for IBM i developers working on an IBM Power System. By understanding the key differences between these approaches and the advantages of using Git, you can make an informed decision about the best source control solution for your IBM i development needs.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
>