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