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.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?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.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