Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hpi-swa/metacello-git
Git support in Monticello. Deprecated: Use https://github.com/hpi-swa/Squot instead.
https://github.com/hpi-swa/metacello-git
deprecated
Last synced: about 1 month ago
JSON representation
Git support in Monticello. Deprecated: Use https://github.com/hpi-swa/Squot instead.
- Host: GitHub
- URL: https://github.com/hpi-swa/metacello-git
- Owner: hpi-swa
- License: mit
- Created: 2014-06-09T20:00:13.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2017-01-12T14:07:17.000Z (about 8 years ago)
- Last Synced: 2024-11-07T11:44:06.347Z (3 months ago)
- Topics: deprecated
- Language: Smalltalk
- Homepage:
- Size: 70.3 KB
- Stars: 7
- Watchers: 8
- Forks: 5
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Git Support in Monticello
This project extends [Squeak](http://www.squeak.org)'s code versioning tool *Monticello* to support git repositories.
It builds upon [filetree](https://github.com/dalehenrich/filetree), which allows for exporting source code from the Squeak image into the file system.
Then, other tools may operate on that content such as regular git tool do.
This project uses [OSProcess](http://www.squeaksource.com/OSProcess.html) to call the host's git implementation for clone, commit, and push code.At the moment, it supports Linux and Windows systems by reusing the host's environment variables to find the git implementation.
Authentication (HTTPS, SSH) is handled by git, not us.We have chosen the package name *Metacello-Git* to tie on [Metacello](https://github.com/dalehenrich/metacello-work)'s extensions for Monticello.
##How to Install
1. Get [Squeak 4.6 or later](http://www.squeak.org) with a recent [CogVM](http://www.mirandabanda.org/files/Cog/VM/) for your operating system.
2. If not already integrated, load [Metacello](https://github.com/dalehenrich/metacello-work). Learn how it [works](https://github.com/dalehenrich/metacello-work/blob/master/docs/MetacelloUserGuide.md).
3. Finally, load the project into your Squeak image using Metacello:```Smalltalk
Metacello new
baseline: 'MetacelloGit';
repository: 'github://hpi-swa/metacello-git:master/repository';
load.
```## Monticello Repositories
There are three different repositories that exploit different stages of git functionality:
- **MCGitRepository** just commits into a local repository.
- **MCRemoteGitRepository** commits *and* pushes new contents.
- **MCGitHubRepository2** forks the repository if there are no access permissions. Then commits and pushes new contents.All replicate the Monticello *commit message* for git to avoid having to re-type it.
All *pull* the current contents before writing the new contents into the file system.
**Thanks to the way Monticello works, there will be a push for each commit.**## Clone
When adding a new repository to Monticello, it will be cloned into the *package-cache* directory of Squeak.
For the code, a *repository* directory is assumed and will be created if not existing.## Merge
If the *pull* delivers new contents, we make use of Monticello's merging tools.
At the moment, we assume that the *pull* in front of a *commit* and *push* will be sufficient to avoid conflicts.## MCZ (Monticello Zip)
There will be still copies of the *Monticello Zip Files* in the package cache repository.
The corresponding file name will be added to git commit messages.