Hi gabriel I think so because this is important for many people. Stef On Fri, Oct 6, 2017 at 8:46 PM, Gabriel Cotelli <g.cotelli@gmail.com> wrote:
Will it be also integrated on Pharo 6.1?
On Fri, Oct 6, 2017 at 3:10 PM, Esteban Lorenzano <estebanlm@gmail.com> wrote:
On 6 Oct 2017, at 20:08, Esteban Lorenzano <estebanlm@gmail.com> wrote:
On 6 Oct 2017, at 20:05, Stephane Ducasse <stepharo.self@gmail.com> 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
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 <estebanlm@gmail.com> 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) 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/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