Thierry, it work like a charm.

This is what I call an express super support service.��

Thank you!!

2018-04-05 12:28 GMT+00:00 Thierry Goubier <thierry.goubier@gmail.com>:
Hi Rapha��l,

I've pushed a fix on the first count (ConfigurationOfGitFileTree
refers to the stable pharo6.0 branch) and I've
added a fix on the pharo6.0_dev branch (which is an almost complete
rewrite of the metadata-less filetree
write, with probably significant performance gains).

Just tell me if it works for you.

Thierry

2018-04-05 14:03 GMT+02:00 Thierry Goubier <thierry.goubier@gmail.com>:
> Hi Rapha��l,
>
> I'll have a look and change the branch to be the pharo6.0 (and non
> _dev for now).
>
> Regards,
>
> Thierry
>
> 2018-04-05 11:58 GMT+02:00 Rafael Luque <rafael.luque.leiva@gmail.com>:
>> Hello all,
>>
>> I'm getting the below error each time a try to commit changes in Traits in a
>> project that uses GitFileTree and Pharo 6.0.
>>
>> I've noticed that ConfigurationOfGitFileTree loads (for Pharo 6.0) FileTree
>> from:
>>
>> github://dalehenrich/filetree:pharo6.0_dev/repository/
>>
>> If I update to use the "pharo6.0" branch instead of "pharo6.0_dev" then I
>> can commit the changes without error.
>>
>> By the way, should not the "stable" version of GitFileTree depends on an
>> stable branch of FileTree, instead of the development branch?
>>
>> This is the stack trace of the error I get:
>>
>> =====
>>
>> UndefinedObject(Object)>>doesNotUnderstand: #select:thenCollect:
>> MCTraitDefinition(MCClassDefinition)>>selectVariables:
>> MCTraitDefinition(MCClassDefinition)>>instVarNames
>> MCGitFileTreeWriter>>buildClassDefinition:
>> MCGitFileTreeWriter>>writeClassDefinition:in:
>> [ :each |
>> self
>> writeClassDefinition: each
>> in: aPackagePath , '/' , each className , '.class' ] in
>> MCGitFileTreeWriter>>writeClassDefinitions:in:
>> OrderedCollection>>do:
>> MCGitFileTreeWriter>>writeClassDefinitions:in:
>> [ :job |
>> job title: 'Building snapshot'.
>> orderedDefinitions := MCDependencySorter
>> sortItems: aSnapshot definitions.
>> job progress: 0.1.
>> classDefinitions := orderedDefinitions
>> select: [ :e | e isKindOf: MCClassDefinition ].
>> traitDefinitions := orderedDefinitions
>> select: [ :e |
>> (e isKindOf: MCTraitDefinition)
>> or: [ e isKindOf: MCClassTraitDefinition ] ].
>> classAndTraitNames := (classDefinitions , traitDefinitions
>> collect: [ :e | e className ]) asSet.
>> job progress: 0.2.
>> methodDefinitions := orderedDefinitions
>> select: [ :e |
>> (e isKindOf: MCMethodDefinition)
>> and: [ classAndTraitNames includes: e className ] ].
>> extensionMethodDefinitions := orderedDefinitions
>> select: [ :e |
>> (e isKindOf: MCMethodDefinition)
>> and: [ (classAndTraitNames includes: e className) not ] ].
>> organization := orderedDefinitions
>> select: [ :e | e isKindOf: MCOrganizationDefinition ].
>> extensionClasses := (extensionMethodDefinitions
>> collect: [ :e | e className ]) asSet.
>> job progress: 0.3.
>> self outputFileDelete: aPackagePath.
>> self writePackageGitPropertiesIn: aPackagePath.
>> self writeOrganization: organization in: aPackagePath.
>> job progress: 0.4.
>> self writeClassDefinitions: classDefinitions in: aPackagePath.
>> self writeTraitDefinitions: traitDefinitions in: aPackagePath.
>> job progress: 0.5.
>> self writeMethodDefinitions: methodDefinitions in: aPackagePath.
>> job progress: 0.6.
>> self writeExtensionClassDefinitions: extensionClasses in: aPackagePath.
>> self
>> writeExtensionMethodDefinitions: extensionMethodDefinitions
>> in: aPackagePath.
>> job progress: 0.7.
>> self writeInitializers: methodDefinitions in: aPackagePath ] in
>> MCGitFileTreeWriter>>writeSnapshot:in:
>> BlockClosure>>cull:
>> [ ^ block cull: self ] in [ self prepareForRunning.
>> CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
>> [ activeProcess psValueAt: index put: anObject.
>> aBlock value ] in CurrentJob(DynamicVariable)>>value:during:
>> BlockClosure>>ensure:
>> CurrentJob(DynamicVariable)>>value:during:
>> CurrentJob class(DynamicVariable class)>>value:during:
>> [ self prepareForRunning.
>> CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
>> BlockClosure>>ensure:
>> Job>>run
>> MCGitFileTreeWriter>>writeSnapshot:in:
>> [ :each |
>> | packageDir |
>> packageDir := subDirectoryString , each package name , '.package'.
>> aWriter writeSnapshot: each snapshot in: packageDir.
>> aWriter
>> outputFileModify: packageDir , '/monticello.meta/package'
>> with: '(name ''' , each package name , ''')'.
>> aWriter writeDependencies: each dependencies in: packageDir ] in
>> MCGitFileTreeWriter class>>fileOutAll:on:
>> OrderedCollection>>do:
>> MCGitFileTreeWriter class>>fileOutAll:on:
>> MCFileTreeGitRepository>>fiStoreVersions:
>> MCFileTreeGitRepository>>fiStoreVersion:
>> MCFileTreeGitRepository>>basicStoreVersion:
>> MCFileTreeGitRepository(MCRepository)>>storeVersion:
>> MCFileTreeGitRepository(MCFileBasedRepository)>>storeVersion:
>> MCWorkingCopyBrowser>>storeVersion:in:
>> [ self
>> storeVersion: newVersion in: aRepository;
>> storeDependencies: newVersion in: aRepository ] in [ [ self
>> storeVersion: newVersion in: aRepository;
>> storeDependencies: newVersion in: aRepository ]
>> ensure: [ (MCVersionInspector new version: newVersion) show ] ] in
>> MCWorkingCopyBrowser>>basicSaveVersionIn:
>> BlockClosure>>ensure:
>> [ [ self
>> storeVersion: newVersion in: aRepository;
>> storeDependencies: newVersion in: aRepository ]
>> ensure: [ (MCVersionInspector new version: newVersion) show ] ] in
>> MCWorkingCopyBrowser>>basicSaveVersionIn:
>> BlockClosure>>ensure:
>> CursorWithMask(Cursor)>>showWhile:
>> MCWorkingCopyBrowser>>basicSaveVersionIn:
>> [ self basicSaveVersionIn: self repository ] in
>> MCWorkingCopyBrowser>>saveVersion
>> [ self value.
>> Processor terminateActive ] in BlockClosure>>newProcess
>>
>>
>> ====
>>
>> Thank you in advance.
>>
>>
>>