Esteban - so I don't then understand why iceberg (usefully in my view) checks 
out more than the src directory, if it’s only focusing on the Pharo blob?

I’m guessing that by knowing where the src is, you are just committing that 
part of the tree with libgit?

Perhaps from a pragmatic first step you might consider letting us add a second 
safe resources directory that you could check in atomically as well (on the 
understanding all bets are off if it goes wrong?)

OR could we have a check in mode does all the add/remove operations and writes 
to disk but then let’s you drop to the command line/other tool to add any other 
files and do the final commit?

I just feel like you/we are so close to something that works a bit more broadly 
and embrace the wider world.?

Tim

Sent from my iPhone

> On 13 Jun 2018, at 21:28, Esteban Lorenzano <esteba...@gmail.com> wrote:
> 
> hi,
> 
> 
>> On 13 Jun 2018, at 16:50, Tim Mackinnon <tim@testit.works> wrote:
>> 
>> Hi - my second attempt at using Pharo with Git has proven very satisfying (I 
>> saw the potential in phase 1, but it was often difficult to understand what 
>> was happening and the workflow to use).
>> 
>> One thing that has come up a few times for me however - and its something 
>> that using git nicely highlights, there are many non-smalltalk assets in my 
>> project that don’t need to live in the image (like Seaside FileLibraries 
>> were trying to do) but do need to be versioned and be part of my project. 
>> Common examples are server config files, images and even the playground 
>> history files that are useful to pull up when on another computer.
>> 
>> It seems that while Iceberg does check out a full project, if I change any 
>> of the files outside of the src directory (like edit a .txt file using the 
>> crude Pharo file editor), those changes don’t get committed when I do a 
>> checkin? Is this on purpose? It makes the workflow a bit trickier to do an 
>> atomic commit of a piece of work - and I’m not clear whether this is a 
>> conscious thing, or an MVP thing (and it will come later).
> 
> workflow is tricker because you are expecting iceberg to talk with the local 
> working copy and to handle that WC.
> what happens in fact is different: iceberg treats the image as a working copy 
> itself (it has its own “stage” area) and what you have in disk is like a 
> separated WC. 
> 
> at least, this is the metaphor we are using now, because we cannot 
> realistically handle/control what is in disk since it can be anything. 
> So, instead having this picture in mind: 
> 
> Image -> Disk -> Git blob (database)
> 
> you need to have this other: 
> 
> Image \
>        Git blob (database)
> Disk    /
> 
> 
> you will see as soon as you change the mental image, your problems are gone ;)
> 
> cheers!
> Esteban
> 
> ps: diagram before is not exactly as it is since the image actually writes 
> into disk first, but this is an implementation detail we would like to remove 
> in the future, even.
> 
>> 
>> As mentioned above, I was also thinking it would be nice if I could checkin 
>> some of the play-xxxx/*.sh files to essentially keep some of that history 
>> synced between environments (or team members?).
>> 
>> It strikes me that this is the kind of thing that git integration should 
>> bring to us?
>> 
>> I can overlay my copy of IntelliJ on top of my local iceberg directory and 
>> then use it for checkins - but then I still have the atomic problem, as its 
>> only when I commit that tonel files are written out onto the file system for 
>> me to checkin along with any other assets I’ve changed. Does anyone else 
>> have a good workflow for this? What do you guys do?
>> 
>> Tim
> 
> 


Reply via email to