#221 feature
Sam Minnee

Rebase and merge support

Reported by Sam Minnee | November 5th, 2009 @ 01:20 AM

It would be great if GitX had merge and rebase support. Because GitX lets me interact with git with the changeset tree always in view, I find it the natural place for performing these kind of tree manipulations.

As a suggested UI, you could right click a branch and see a couple more options:

  • "rebase <current-branch-name> to have started forking from this branch" -> call "git rebase (branchname)"
  • "merge this branch into <current-branch-name>" -> call "git merge (branchname)"

By labelling the context-menu items to explicitly state which branch you are going to rebase or merge into, it reduces the chance of people making errors. To be even more explicit, you could label them like so:

  • "rebase <current-branch-name> to have started forking from <selected-branch-name>"
  • "merge <selected-branch-anme> into <current-branch-name>"

I'm not especially happy with the description given to rebase - "rebase my-feature to have started forking from master". It's a hard feature to describe, I suppose.

In additon, you could add a context-menu to every changeset - perhaps on the little circle:

  • "rebase <current-branch-name> to have started forking from this point: "

Comments and changes to this ticket

  • brotherbard

    brotherbard November 19th, 2009 @ 08:40 PM

    • Tag changed from request to merge, rebase, request

    I have a fork with rebase working (will add merge soon) at: http://github.com/brotherbard/gitx

    If you could, please test it out and let me know what you think.

    --Nathan Kinsinger (brotherbard)

  • Sam Minnee

    Sam Minnee November 19th, 2009 @ 09:32 PM

    That's great, brotherbard! Is there an existing binary available anywhere? Failing that, are there any build instructions for an X-Code n00b like me?

  • brotherbard

    brotherbard November 19th, 2009 @ 09:54 PM

    Sure: http://brotherbard.com/gitx/gitx.zip

    I also forgot to mention that it's 10.6 only for now.

  • Sam Minnee

    Sam Minnee November 19th, 2009 @ 09:59 PM

    Cheers for that; as it turned out the build was very easy to do myself, I should've given it a go before asking. :-$

    Your branch looks fantastic; I have half a mind to switch over to this as my primary copy of GitX! Do you think it's stable enough to do that, i.e., what is the risk of repository corruption?

    A few usability issues from my initial exploration:

    • The pull and push commands have no feedback to let you know that they have actually worked.
    • The rebase command had no feedback, I had to press Command-R to know that it had worked. It should refresh the view for you automatically, when it's done. It should also have some feedback.
    • You appear to have overloaded Command-R with a new function - add remote. It used to be refresh. That's really frustrating for existing users of GitX, especially since 'refresh' is such a commonly used action. Perhaps you want to use Option-Command-R for add remote, or something?

    Also a question: how does it handle rebase conflicts?

  • brotherbard

    brotherbard November 19th, 2009 @ 10:38 PM

    what is the risk of repository corruption?

    I use it myself, but so far I think I'm the only one. So no guarantees I'm afraid. However I do use all the high level commands (pull, push, rebase) instead of the lower level ones so there shouldn't be anything that a revet or reset can't fix.

    The pull and push commands have no feedback to let you know that they have actually worked.

    The rebase command had no feedback

    Both good points.

    It should refresh the view for you automatically, when it's done.

    I thought it did, I must have broken it somewhere. I'll try to figure out what's wrong.

    You appear to have overloaded Command-R

    You are correct, my mistake. There is a new option in the preferences for automatically refreshing every time the window is selected that was added by someone else. I've been using that (even though it still has a few problems) so I had forgotten about manual refresh. But cmd-R should be Refresh, I'll put it back.

    how does it handle rebase conflicts?

    Currently it will show a sheet with the output from git that explains where it failed (same as you would get from the command line). You then have to go to the command line and fix everything like normal. I have some ideas for making this a little easier but haven't had time to implement them.

    --Nathan Kinsinger (brotherbard)

  • Sam Minnee

    Sam Minnee November 19th, 2009 @ 11:50 PM

    Another bug:

    If you switch to a new branch within GitX, the "pull" and "push" buttons on the toolbar are still linked to the branch you were originally on.

    Here's a test case. Substitute mybranch for a branch that you actually have on a repository.

    • checkout branch mybranch on the commandline
    • start gitx
    • right click the master branch bubble on commit tree, and select 'checkout master'
    • click and hold pull

    Expected: "Pull to master from:"
    Actual: "Pull to mybranch from:"

    PS: It's it best if I just keep flagging bugs on this ticket as I test, or should organise the bugs differently? Should I use the issue tracker on your github environment, for example?

  • brotherbard

    brotherbard November 20th, 2009 @ 12:02 AM

    If you switch to a new branch within GitX, the "pull" and "push" buttons on the toolbar are still linked to the branch you were originally on.

    You're right, I'm not updating the menu's correctly.

    PS: It's it best if I just keep flagging bugs on this ticket as I test, or should organise the bugs differently? Should I use the issue tracker on your github environment, for example?

    I don't think it matters, I doubt that Pieter would mind if you enter them here (although I don't see a way to assign this ticket to me). But given that the bugs only effect my fork you can use the issue tracker on github or send emails to me directly.

    --Nathan Kinsinger (brotherbard)

  • Sam Minnee

    Sam Minnee November 20th, 2009 @ 01:00 AM

    I've loaded in my issues into http://github.com/brotherbard/gitx/issues

    I've set up my local environment so that I can quickly grab and build your github master, so I can re-test changes as you make them, and keep providing bug reports.

  • Dave Grijalva

    Dave Grijalva March 13th, 2010 @ 02:22 PM

    • State changed from “new” to “feature”
  • brotherbard

    brotherbard March 17th, 2010 @ 02:43 AM

    I have an updated branch with nicer merge, cherry-pick, and rebase support along with many other features at: http://github.com/brotherbard/gitx

    Look on the wiki page http://wiki.github.com/brotherbard/gitx/ for an updated screenshot.

    If you have the time this branch could use some testing and feedback.

  • marymiller

    marymiller February 18th, 2018 @ 05:15 PM

    Upon pressing OK, the panel reappears and keeps reappearing. .gitignore is the first file in the list so that's why it is mentioned here. This made me wonder wether this was a clock problem on the computer. Setting the time on the server to -1h does not help. BTW, gitx and git-gui work perfectly through sshfs on the same two machines (but, even though convenient, sshfs is not as fast as samba on a local network). kissanime watch anime online in HD

  • Emily12

    Emily12 May 28th, 2018 @ 10:48 AM

    Thank you for your post, I look for such article along time, today i find it finally.minion rush this post give me lots of advise it is very useful for me !

  • eelu

    eelu June 4th, 2018 @ 05:45 PM

    The easiest way to get GitX running is to uphourslocations.com download the binary release from the
    wiki. its power is in the 'gitx' binary

  • aliyahbrown

    aliyahbrown June 6th, 2018 @ 10:17 AM

    Thank you for your sharing. Thanks to this article I can learn more things hotmail sign in. Expand your knowledge and abilities. Actually the article is very practical.

  • joseph

    joseph June 27th, 2018 @ 08:23 AM

    It would be great if GitX had merge and rebase support. Because GitX lets me interact with git with the changeset tree always in view, I find it the natural place for performing these kind of tree manipulations.

    jcpenney associate kiosk

    jcpenney application login

    jcpenney asso

    jcpenney assoc kiosk

    jcpenney associate

    jcpenney associate comments

  • fedrik val

    fedrik val June 28th, 2018 @ 04:17 PM

    Your feedback helps the Dairy Queen restaurant to improve customer service. DQFan Survey is available on dqfansurvey.com. This is the official Dairy Queen restaurant review portal.

  • mensagem

    mensagem June 29th, 2018 @ 05:02 PM

    Hoje é dia de festejar o milagre de um amor verdadeiro, que restaurou o meu coração quebrado e sem esperança. Obrigado, meu amor!
    mensagem de anviersario para cunhada

  • mensajesde

    mensajesde July 10th, 2018 @ 11:12 AM

    Hasta aquí llegamos con este artículo sobre frases y mensajes de cumpleaños originales que hemos preparado con mucho cariño y dedicación. Esperamos que te hayan gustado y puedas felicitar por su cumpleaños a ese familiar, amigo o conocido que tanto quieres.Por último, recuerda que actualizamos la web constantemente con nuevas felicitaciones de cumpleaños, por lo que te recomendamos volver a visitarnos. ¡Hasta la próxima!
    Frases de cumpleaños para un papá

  • mensagemdcunhada

    mensagemdcunhada July 20th, 2018 @ 08:19 PM

    Você está olhando para baixar alguma coleção incrível de mensagem de aniversario para cunhada então você pousou o lugar correto onde ...

    Mensagem de aniversarion para cunhada
    Mensagem de aniversarion para cunhada

  • nflschedules

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

GitX is the nice-looking gitk clone for OS X

Pages