Да, он живёт в образе, и к этому стоит привыкнуть, а не бороться (мне это по-прежнему очень нравится, хотя признаю, делиться таким кодом сложнее, чем хотелось бы). Классы и скомпилированные методы - это объекты в образе. Их исходный текст лежит в двух файлах рядом, .sources для базовой системы и .changes для всего, что сохранено потом, по порядку, и каждый метод указывает на своё место. Поэтому .changes и читается как дневник.
Для git в Pharo есть Iceberg. В нём добавляете репозиторий, кладёте в него свой пакет и коммитите из того же окна. Пакет записывается обычным текстом, по файлу на класс, так что диффы выглядят как обычный исходный код. Свежий образ получает код обратно, если клонировать репозиторий в Iceberg и загрузить пакет.
Так что образ - это верстак, а репозиторий - запись. Файл .image никто не коммитит, тут вы угадали.
Переведено с английского·Показать оригиналYes, it lives in the image, and that's the part worth getting used to rather than fighting (I still find it lovely, though I'll admit it makes sharing harder than it should be). Classes and compiled methods are objects in the image. Their source text sits in two files next to it, .sources for the base system and .changes for everything saved since, appended in order, with each method pointing at its own spot. That's why .changes reads like a diary.
For git, Pharo comes with Iceberg. You add a repository in it, add your package to that repository, and commit from the same window. The package gets written out as plain text, one file per class, so diffs look like ordinary source. A fresh image gets the code back by cloning in Iceberg and loading the package.
So the image is your workbench and the repository is the record. Nobody commits the .image file, you guessed right.