On Mon, Feb 18, 2019 at 1:19 AM Tim Mackinnon <tim@testit.works> wrote:
> Hey Ben - I’m not sure that this actually does the same thing. I just > tried it now, and it resulted in an extra merge in my forked repo - as I > think this effectively pulls down from upstream into pharo and then if you > have any differences in your local image copy they might cause some changes > which then you would push back into your fork origin. > > If you just want a verbatim copy in your fork - you have to resort the > command line? > Ah! well merging may do two things: - create a merge commit (in case of diverging history) - do a fast forward (just update your branch) The thing is that you want to **undo** your changes before merging, otherwise you'll have a dangling commit there that you did not want :). You cannot do that from Iceberg's UI right now, you can do it from any expression evaluator: "Rough equivalent of reset --hard HEAD~1" repository branch commit: repository branch commit parent. But even then, Iceberg does not (yet) implement push --force, because we never found a useful use case (other than bad practices) to it. This is important: if you have made changes to your repository, then "making a verbatim copy" means to undo your changes. Even from the command line, what you may want to do is: move to another branch, remove your "to-sync" branch, fetch from origin, checkout origin/"to-sync", push force to your fork. But you may lose your changes... > I’m still mulling this over - as would you then pull from your upstream > fork and still get the same differences that you would then apply? I’m not > sure now - but if the idea was just to get yourself back into a consistent > state - Its not clear to me how you can get all 3 copies saying the same > thing in pharo? > > Tim > > On 16 Feb 2019, at 06:19, Ben Coman <b...@openinworld.com> wrote: > > > > On Sat, 16 Feb 2019 at 02:06, Tim Mackinnon <tim@testit.works> wrote: > >> Hi guys - I’ve spent a few hours scratching my head trying to understand >> why some of my Pull Requests to a project I had forked kept showing my >> previous commits when I thought I was all caught up. >> >> It suddenly dawned on me, that when I had forked, and then done some work >> and then submitted a PR, and then applied it upstream that my fork is now >> no longer in sync with its upstream counterpart. >> >> Having not done this in ages, it took me a while to then realise I have >> to do some git stuff to get it back in sync e.g. (and I think I’ve got this >> right) >> >> git fetch upstream (or whatever name you gave it) >> Git checkout master >> Git merge upstream/master >> >> So I guess my question is - wouldn’t it be helpful if this was a command >> in Iceberg? It seems quite common to fork a project (I think this is still >> recommended for pharo itself isn’t it?) - and then at some point you need >> to catchup with that origin again? Or am I missing something? I guess lots >> of stuff can go wrong - but if it does - you’d still get the same problems >> on the command line. It just seems that for normal situations - it would be >> handy to run this straight in Pharo. >> > > I'm not fully-conversant with Iceberg, but if I guess right... > in Iceberg, right-click a repo and open its "Repository" window. > In the top-right click the "Add remote" button, to add the upstream repo. > That button is a bit hidden there. It might be nice to have it as a menu > item on "Remotes" in the first pane. > Then click the <Merge> button, then select the upstream master branch and > you should be up to date. > > cheers -ben > > > -- Guille Polito Research Engineer Centre de Recherche en Informatique, Signal et Automatique de Lille CRIStAL - UMR 9189 French National Center for Scientific Research - *http://www.cnrs.fr <http://www.cnrs.fr>* *Web:* *http://guillep.github.io* <http://guillep.github.io> *Phone: *+33 06 52 70 66 13