> On 6 Oct 2017, at 20:08, Esteban Lorenzano <[email protected]> wrote:
> 
> 
>> On 6 Oct 2017, at 20:05, Stephane Ducasse <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Hi esteban
>> 
>> I did not find the script that you mentioned.
> 
> the one for filetree to tonel?
> 
> https://github.com/pharo-vcs/tonel/blob/master/MigrateFromFileTree.md 
> <https://github.com/pharo-vcs/tonel/blob/master/MigrateFromFileTree.md>
> 
> I will copy here:
> 
> locationDir := 'path/to/your/repo' asFileReference.
> subDir := 'your-source-dir-or-empty'.
> sourceDir := locationDir.
> subDir 
>       ifNotNil: [
>               subDirWithDelim := subDir, '/'. 
>               sourceDir := sourceDir / subDir ]
>       ifNil: [
>               subDirWithDelim := '' ].
> 
> repo := IceRepositoryCreator new 
>       location: locationDir;
>       subdirectory: subDir;
>       createRepository.
> 
> "branch if you want to perform the migration on separated place (you can 
> later do a PR)"
> repo createBranch: 'migrate-sources-to-tonel'.
> 
> commit := repo branch lastCommit.
> repo savedPackages do: [ :each | | filetreePackage |
>       TonelWriter fileOut: (commit versionFor: each) on: sourceDir.
>       filetreePackage := IceLibgitFiletreeWriter directoryNameFor: each.
>       (sourceDir / filetreePackage) ensureDeleteAll.
>        repo addFilesToIndex: { 
>               subDirWithDelim, (IceLibgitTonelWriter directoryNameFor: each).
>               subDirWithDelim, (IceLibgitFiletreeWriter directoryNameFor: 
> each). } ].
> 
> repo addProperties: (IceRepositoryProperties fromDictionary: { #format -> 
> #tonel } asDictionary).
> 
> repo 
>       commitIndexWithMessage: 'sources migrated' 
>       andParents: { commit }.
>       
> repo push.
> 
> 

but beware, to use 0.6 on Pharo7, better wait until integration (next week): 
update is not trivial because pharo project comes with some IceMCVersionInfo 
inside that will become obsolete, etc., etc., etc.

Esteban

> 
>> 
>> Stef
>> 
>> On Fri, Oct 6, 2017 at 7:18 PM, Esteban Lorenzano <[email protected] 
>> <mailto:[email protected]>> wrote:
>>> Hi all,
>>> 
>>> I released Iceberg version 0.6. It includes a lot of small tweaks and fixes,
>>> but the most important inclusion is tonel file format which aims to replace
>>> file tree.
>>> 
>>> What is Tonel? (https://github.com/pharo-vcs/tonel 
>>> <https://github.com/pharo-vcs/tonel>)
>>> Tonel is a file-per-class file format for monticello repositories. It’s
>>> purpose is to reduce the amount of files touched each operation, make the IO
>>> faster an compact the repositories database.
>>> It has also as an objective to offer an “easy-to-read” format, so people
>>> wanting to understand a chunk of code will recognise it easily.
>>> For testing, I migrated several of my projects to Tonel and I’ve been using
>>> it, you can see some as examples:
>>> 
>>> https://github.com/estebanlm/MUDClient 
>>> <https://github.com/estebanlm/MUDClient>
>>> https://github.com/estebanlm/pharo-tonel (this was just an example and it
>>> has some minimal errors already fixed)
>>> 
>>> We plan to migrate Pharo development to tonel to address some problems we
>>> have:
>>> 
>>> - since it has to read/write a lot of files, IO operations are slow
>>> - and even much more slow in Windows
>>> - Windows also has a problem with longpaths.
>>> 
>>> Iceberg 0.6 will be integrated to Pharo7 soon :)
>>> To update Pharo 6.1, there are instructions in the readme:
>>> https://github.com/pharo-vcs/iceberg/blob/master/README.md
>>> now, if you wan to migrate your projects to Tonel (from FileTree), here is a
>>> script you can use:
>>> https://github.com/pharo-vcs/tonel/blob/master/MigrateFromFileTree.md
>>> 
>>> btw, tonel is independent of Iceberg and can be used with plain Monticello
>>> (but it is a metadaless format, history will reside on git, not on
>>> monticello).
>>> 
>>> cheers,
>>> Esteban
>> 
> 

Reply via email to