Skip to content

Instantly share code, notes, and snippets.

View dalehenrich's full-sized avatar

Dale Henrichs dalehenrich

View GitHub Profile
@dalehenrich
dalehenrich / mac2foos.st
Created February 23, 2012 22:05
mac to foos and back
Metacello new
project: 'Metacello';
repository: 'filetree:///opt/git/metacello/repository/';
load.
MetacelloFileTreeConstructor writeJsonFor:'/opt/git/metacello/repository/metacello/Metacello'.
"current target ... make sure that loadedProjects looks right ... getting nil versions in some cases, so it needs work"
Metacello resetLoadedProjects.
@dalehenrich
dalehenrich / overview.md
Created February 24, 2012 19:16
Project overview (starts as email message to Sebastian Sastre)

The project is aimed at making it possible for Smalltalkers to use git/svn/mercurial for project/source version control. There is special emphasis on git and github because github provides distributed repositories and and number of very useful features that enhance the development process.

I started this project when I recently realized that it wasn't as hard to do this as I had thought in the past...

Right now the project is based on Metacello, where I am adding a scripting API to Metacello, like Gofer, but aimed at project level operations not package level operations.

Here's a list of sample Metacello scripting API expressions [1].

Here's the directory structure that I'm proposing to be used for Smalltalk projects[2].

@dalehenrich
dalehenrich / whybotherwithgit.md
Created February 27, 2012 04:11
Why bother with git at all?

Philippe,

You are not a party pooper ... these are exactly the kinds of questions I'm looking for They are excellent questions.

I'm going to highlight several of your points and then answer:

"keeping the Monticello and git metadata in sync. For example since it's still Monticello there has to be all the Monticello metadata which is laying around in "strange" files ... makes it quite unlikely that you can edit the source with a

@dalehenrich
dalehenrich / setupPharo14Sample.st
Created March 2, 2012 19:27
Replace repositoryGroups for workingCopies with filetree: equivalent
"cd to a likely spot on disk and run the following at a shell prompt (after installing git):
git clone -b develop https://github.com/Phariverse/PharoCore.git
then set pharoCoreRepoPath below to path to repository directory inside PharoCore git repository.
Finally run the expressions in this workspace to connect your image up to the correct repositories.
"
| pharoCoreRepoPath metacelloRepository filetreeRepository
@dalehenrich
dalehenrich / cleanUpDefaultRepositoryGroup.st
Created March 2, 2012 22:40
get rid of repositories that aren't in the given list of repostiroy descriptions.
"run this to remove cruft before saving image for download"
| standardRepos |
standardRepos := #('http://ss3.gemstone.com/ss/Pharo14' 'http://ss3.gemstone.com/ss/FileTree'
'http://www.squeaksource.com/OSProcess' 'http://seaside.gemstone.com/ss/metacello' ).
MCRepositoryGroup default repositories do: [:repo |
(standardRepos includes: repo description)
ifFalse: [ MCRepositoryGroup default removeRepository: repo ]].
@dalehenrich
dalehenrich / plan.md
Created March 9, 2012 17:44
Metacello project plan

##Phase 1 ###FileTree basic functionality ###Metacello basic Metacello scripting API functional

  • load projects on github and in local git repositories
  • load standard mcz configurations
@dalehenrich
dalehenrich / bootstrap.st
Created March 12, 2012 20:30
Bootstrapping FileTree support into Pharo image
"Note that these instructions apply to Phase1 ... not yet alpha, so take care:)
Assuming Pharo 1.3"
"Bootstrap filetree code"
Gofer new
url: 'http://ss3.gemstone.com/ss/FileTree';
package: 'ConfigurationOfFileTree';
load.
((Smalltalk at: #ConfigurationOfFileTree) project version: '1.0') load.
@dalehenrich
dalehenrich / MCFileTreeJsonParser.st
Created April 1, 2012 18:52
simple JSON parser
'From Pharo1.3 of 16 June 2011 [Latest update: #13315] on 23 March 2012 at 9:24:50 am'!
Object subclass: #MCFileTreeJsonParser
instanceVariableNames: 'stream'
classVariableNames: ''
poolDictionaries: ''
category: 'MonticelloFileTree-Core'!
!MCFileTreeJsonParser methodsFor: 'adding' stamp: 'dkh 3/1/2012 16:36:43'!
addProperty: anAssociation to: anObject
"Add the property anAssociation described with key and value to anObject. Subclasses might want to refine this implementation."