Thank you both for the details! Haha, I understand if you prefere to be on your own for the bindings (at least while it's still in construction). Thierry, If you need some feedback for the merge conflict resolution, I'll be glad to help. Just ask :) Max, I don't know how is your master thesis schedule organized but if you're interested, we can maybe try to allocate a summer of code with the libgit2 integration? Cheers, Francois On Mon, Apr 28, 2014 at 11:08 AM, Max Leske <maxleske@gmail.com> wrote:
On 28.04.2014, at 10:42, François Stephany <tulipe.moutarde@gmail.com> wrote:
Sounds *really* good!
Do you have a time goal for this integration (even rough estimate)? Sorry if this sound stupid but are we far from an integration with, say, the "Changes" tool?
If you need some help somewhere (money or manpower), I'm sure there are quite a few people interesting in donating for this (Ta Mère is).
Itâs on the way but we still have some way to go. Iâll be off the grid for the next 4 weeks and after that Iâll have to prepare for my exams. Still, I hope that I can show a prototype for using github around mid June (Iâm pessimistic on purpose here). BTW: push and fetch via SSH / HTTPS already work (but you donât want to see the codeâ¦).
Iâm glad youâre so enthusiastic but itâs a complex project and I donât want to rush it (itâs also part of my masterâs thesis btw).
Iâm posting updates from time to time with âFileSystem-Git update Xâ or similar in the subject if you want to follow. Thereâs also a dedicated mailing list: smalltalk-git@googlegroups.com
To answer your questions: - no, there is no concrete plan other than âships with Pharo4â (I hopeâ¦) - tool integration should be pretty straight forward once the bindings work. But I really canât give you a date.
As soon as thereâs stuff that can be easily partitioned into workable chunks Iâll take to the mailing list. But I want to do the bindinds first, preferably on my own (requires a lot of special knowledge about git / libgit2 / NativeBoost). But thanks for the offer anyway. Much appreciated!
Cheers, Max
On Sat, Apr 26, 2014 at 7:32 PM, GOUBIER Thierry <thierry.goubier@cea.fr>wrote:
Hi François,
with gitfiletree://, there isn't any real place describing a multi-developper workflow because it is designed to work along existing workflows... as much as possible.
In short, you work like you used to do in git, and gitfiletree ensures that the commit are properly made, that you have access to your development history (your true development history: the git one), and that pushes and pulls are made as painless as possible.
After, you just manage your git the way you like it. Branches, merging, one branch per developper, whatever: gitfiletree:// will ensure that what you see inside Pharo is what you have done in git, and that what you do in Pharo is properly committed to git.
Now, the bad thing: git merge conflicts :( When merging packages under git, some files will regularly(allways :() conflict: the version history of the package and the method properties. Whatever way you resolve those conflicts, gitfiletree:// will cope because it never reads them, but, still, having conflicts in git isn't cool.
We have a better integration coming, through Max Leske work on integrating libgit to Pharo, and we will be able to solve some of the issues above ;)
Thierry
------------------------------ *De :* Pharo-dev [pharo-dev-bounces@lists.pharo.org] de la part de François Stephany [tulipe.moutarde@gmail.com]
*Envoyé :* samedi 26 avril 2014 19:06 *à :* Pharo Development List *Objet :* Re: [Pharo-dev] Fast way to load package form github
I'm a bit lost of what is currently possible to do with git in Pharo. Is there a place where you describe your workflow in a multi-developer environment?
We currently use git flow[1] for our iOS, Android and Rails apps. We would love to use the same for Pharo. What we are doing now is using a filetree repository under a src/ directory sitting next to the image. We use versionner to save all our packages in the filetree tree and then we `git commit/push`.
It was working fine while I was alone but we are now two developers working on this and I do not feel confident about this flow; merging filetree tree in CLI doesn't sound like a good idea. probably not be practical.
The second developer is working on this since yesterday so we haven't yet decided how we gonna handle this.
I would love to hear from people working with git and Pharo.
[1] http://nvie.com/posts/a-successful-git-branching-model/
On Sat, Apr 26, 2014 at 4:46 PM, GOUBIER Thierry <thierry.goubier@cea.fr>wrote:
Yuri,
pure filetree will only allow you access to the latest version (HEAD) of the repository (and will only match if you load that precise version number as stored in the package metadata or if you don't specify a version number). You have to change the commit ID (and branch) via git clone, git checkout and git checkout -b before.
github:// urls may be able to select a specific commit ID, but I don't know how. You can select the branch, however. Again, if you specify a version number for your package with a github:// url, the metadata of your package has to agree with you or it will refuse to load (you are able to see only the latest version of the package).
gitfiletree:// urls allows you to select the branch and any version visible in the git history. Read-only gitfiletree:// urls reduce the git history to one commit, so all versions are listed as .1. (Note that gitfiletree:// urls with https are read-only).
That said, if you found a way to refer a specific commit via github://, I'd really like to know how :)
Thierry ________________________________________ De : Pharo-dev [pharo-dev-bounces@lists.pharo.org] de la part de Yuriy Tymchuk [yuriy.tymchuk@me.com] Envoyé : samedi 26 avril 2014 12:11 à : Pharo Development List Objet : Re: [Pharo-dev] Fast way to load package form github
Do you know how to specify versions with pure filetree? I know that I can specify commit SHA or branch in URL, but can I somehow redefine version for a version definition?
Uko
On 26 Apr 2014, at 11:06, GOUBIER Thierry <thierry.goubier@cea.fr> wrote:
Yuri,
I think the best would be a github:// url in a configuration.
Shortest is something like:
Gofer new url: 'http://smalltalkhub.com/mc/Yuri/ProjectOfYuri/main/'; configurationOf: 'ProjectOfYuri'; loadStable
(with the github:// url inside ConfigurationOfProjectOfYuri)
Note that I have added back https access to github in gitfiletree, but, still, it implies OSProcess and git command line access (but no need to register on github.com)
Thierry ________________________________________ De : Pharo-dev [pharo-dev-bounces@lists.pharo.org] de la part de Yuriy Tymchuk [yuriy.tymchuk@me.com] Envoyé : samedi 26 avril 2014 09:34 à : Pharo Development List Objet : Re: [Pharo-dev] Fast way to load package form github
Yes, but this requires user to clone the repository, this is not as fast as just Gofer with Monticello. I know that there is a support for github:// URIs in Metacello, but as far as I remember they donât work in Gofer.
Uko
On 26 Apr 2014, at 09:25, Sven Van Caekenberghe <sven@stfx.eu> wrote:
Gofer with a filetree:// URL as package ?
Using the Monticello UI Tool you can just add a repo, select filetree as type and load any package.
On 26 Apr 2014, at 09:21, Yuriy Tymchuk <yuriy.tymchuk@me.com> wrote:
Hi guys, sorry if there was already this question, but is there a fast way to load a package from github (saved with filetree)? Iâm looking for some way to tell people: execute âthisâ and you will have my package in your image.
Cheers Uko