Skip to main content
Engineering LibreTexts

8: Sharing Code and Source Control

  • Page ID
    39618
    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    The consequence of programming in a world of live objects rather than with files and a text editor is that you have to do something explicit to export your program from your Pharo image. The old way of doing this is by creating a fileout or a change set, which are essentially encoded text files that can be imported into another system. The preferred way of sharing code in Pharo is to save packages and share them using a versioned repository on a server. Up to Pharo 50, this is done using a tool called Monticello, and is a much more powerful and effective way to work, especially when working in a team. In the future Pharo will officially offer support for Git and hosting on servers such as GitHub, BitBucket and more.

    We gave you a quick overview of Monticello, Pharo’s packaging tool, in Chapter : A First Application. However, Monticello has many more features than were discussed there. Because Monticello manages packages, before telling you more about Monticello, it’s important that we first explain exactly what a package is.


    This page titled 8: Sharing Code and Source Control is shared under a CC BY-SA 3.0 license and was authored, remixed, and/or curated by via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.