On Fri, Jul 22, 2016 at 09:14:25PM +0800, Ben Coman wrote: > On Fri, Jul 22, 2016 at 3:11 PM, Peter Uhnak <i.uh...@gmail.com> wrote: > > On Fri, Jul 22, 2016 at 11:55:46AM +0800, Ben Coman wrote: > >> I'm not sure what the roadmap is for git integration, but just a use case > >> that occurs to me while I work "a bit with git" for the first time from > >> Pharo. > >> > >> I install a project via a Baseline from git and makes a small improvement. > >> What is the easiest way to contribute back? I can't push back to the > >> personal repo I downloaded from, so the easiest thing would be a single > >> menu item to: > >> 1. Fork original repository > >> 2. Push current in-Image code to a new branch in that fork. > >> > >> Maybe even... > >> 3. Issue a pull request to the original repository. > > > > This is indeed the idiomatic way to contribute on GitHub. > > > > 1. fork > > 2. install _your fork_ with gitfiletree/remote git repo > > 3. make an improvement (you can use master branch, since it's your repo, > > but that's a detail) > > 4. issue a pull request > > That is how you do it if you *already* know you want to be contribute > to an application or package. But what if I was just planning to *use* > an application or package, only later I ended up tracing down a bug to > that application and fixed it. What is the *easiest* for me to push > to my personal github account from where I make the Pull Request. > Something like this [1] from within Pharo (disclaimer, I've not > performed these action before, I had to hunt a bit to find it as an > example)... >
This would depend a bit on how you installed the project to start with. If you installed it with gitfiletree/remote git repo, then you can follow what you've just posted, because it's the same. However if you installed it via the github:// protocol (or it was automatically pulled in via some other project's BaselineOf or ConfigurationOf), then it's a bit of pain, because you can't just pull in another project with the same baseline (Metacello it thinks it's a different project). Luckily, you should be able to explicitly permit the conflict: Metacello new baseline: 'MyProject'; repository: 'gitfiletree://wherever'; onConflict: [:ex | ex allow ]; load We should be documenting these things somewhere… Peter