First, by maintaining source code via IFS stream files i5/OS programmers can take advantages of mature open source SCM softwares (such as Subversion) directly. In many i5/OS shops, programmers used to store source code in the QSYS.LIB file system, aka, members of source physical files. While a SVN client depends on hierarchical file systems and stream files intensively. For example, a SVN client stores SVN control files in a hidden directory named .svn in the current working directory. This is obviously impossible in the three-layer structure (library/source PF/member) of the QSYS.LIB file system. Also existing SVN clients access source stream files (via C library routines or Java stream file APIs), while i5/OS source PF members are record files.
Second, storing source code in IFS stream files enables i5/OS programmer to utilize build tools migrated from other platforms to improve the efficieny of the building process. For example, the AIX make utility is avaible through the PASE enviroment. Furthermore, working with IFS source stream code through the PASE environment will bring extra bonus, stream files created in the PASE environment are in PC character sets (such as UTF-8) instead of EBCDIC. This fact is important for other SCM softwares that are migrated from common platforms. Since most common platform softwares are unware of IBM's EBCDIC encoding.
To maintain and build i5/OS HLL source code in stream files, we must conquer the following challenges:
And here's our solution:
Additionally, there is an article named A Fresh Approach to SCM that has covered several related topics including: