News from the git battle front :)


This is my weekly ChangeLog, from 26 June 2017 to 2 July 2017.
You can see it in a better format by going here:


29 June 2017:

*    … and I spent some time figuring out why windows users have a persistent error about access files.

We should always remember the windows path limitations (256) 🙂

Now, the workaround for this is to execute this in command line:

git config –system core.longpaths true

but of course, this is just a workaround because people using Iceberg could not hava installed a
command line git client. I will need to check in the future this 😦

*    I spent some time trying to get [Iceberg version dev-0.5](
to load properly (yesterday’s script is not working).

The reason is that +Metacello+ fails to upgrade packages from a baseline. And there is no way (at least
that I found) to force the upload.

So this is the updated script to test dev-0.5:

1. Download latest vm and image.

wget -O- | bash
wget -O- | bash # for linux systems

2. Execute this on your image

#(‘Iceberg-UI’ ‘Iceberg-Plugin’ ‘Iceberg-Metacello-Integration’ ‘Iceberg-Libgit’ ‘Iceberg’ ‘BaselineOfIceberg’
‘LibGit-Core’ ‘BaselineOfLibGit’)
do: [ :each | each asPackage removeFromSystem ].

Metacello new
baseline: ‘Iceberg’;
repository: ‘github://pharo-vcs/iceberg:dev-0.5’;

This should actually remove old iceberg version then install new one.

28 June 2017:

*    Ok, I get the VM to compile correctly with the new libgit2 version, and now +latest vm+ comes with
+libgit 0.25.1+ for both 32 and 64 bits versions.

I also made some minor fixes to +iceberg dev-0.5+ and it should be ready to test and release. This
version incorporates some important changes that will allow us to work with it to make changes to
Pharo itself (and that will be noticed on big projects):

* it has cherry-pick.
* it speeds up sincronization by introducing more precise comparisons instead making a “full scan”
* it keeps in sync branch on disk and branch on iceberg (before it was keeping them separately and it was very confusing)

To test it, you can execute:

wget -O- | bash
wget -O- | bash # on linux systems

then you will need to load version +dev-0.5+ :

Metacello new
baseline: ‘Iceberg’;
repository: ‘github://pharo-vcs/iceberg:dev-0.5’;
“And you will need to execute this… I will need to update the baseline with this,
now that I think :)”
LGitExternalStructure allSubclassesDo: #compileFields.

*    I finished ensuring [iceberg]( will work on 64 bits.

Now, I needed to make some fixes for UFFI, which I put in [case: 20198]( (it is imperative to include
this to be able to backport 0.5 into Pharo 6.0). Also, I will need to promote a new VM as stable.

I’m not sure I want to backport this into Pharo 6. I know I promised but complications are… more than
benefits, I think: You will need a new VM. People will not know that and they will download a P6 image
with the older VM and this will cause problems.

Maybe is better to move all this to P7?


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: