You don't need to be an 'investor' to invest in Singletrack: 6 days left: 95% of target - Find out more
Way, way OT, but there are plenty of software bods on here and I don't hang about on any IT forums (I'm guessing rants are frowned upon on stackoverflow?)
I've forked a repo I've done some work on, but the main repo has had some changes since my last updates were merged in. It's taken me over an hour to successfully update my fork with the code in the main repo - which involved manually editing URLs as the Github web GUI doesn't actually provide buttons to do it (I found some tutorials based on an older version of the GUI which did, which helped me work out what to do). Aaargh!
Is keeping your fork up to date with the main repo such an obscure thing to do that they don't think it necessary to provide a simple way to do this from the GUI? The irony being that the code in question is a client side web GUI extension (add ons for here) and it struck me that it wouldn't be that hard to write a similar Github extension to provide the missing button...
I think you have to do it by hand. At least that's what I've always done, and github's docs suggest the same:
https://help.github.com/articles/syncing-a-fork/
I guess to do what you want, it would need some way to do conflict resolution in the webpage.
EDIT: pathetic rant btw. Really, for a rant about git, you need to get something in there about Perforce....
as the docs explain, just have the upstream repo as a remote, git fetch and git merge in the changes??
Rachel
So I have to use the command line tool, when it should be possible to do something simple like this in the web GUI? A command line tool I don't actually have installed (and TBH whilst I do plenty of stuff on the command line, I really CBA doing VC with anything other than a GUI).
[quote=oldnpastit ]I guess to do what you want, it would need some way to do conflict resolution in the webpage.
Well it works fine if you hack the URLs as I eventually worked out - if there was a conflict it would flag it in the same way as when you're trying to do a merge in a way it lets you.
If you really don't like the command line tool, why not just use a guy client, like SourceTree? That will do what you ask.
Rachel
TBH, the command line client is absolutely amazing. I recently discovered the amazing --fixup argument to git commit for quickly patching up commits that are not at the tip. For example, to patch up HEAD^^^:
$ git commit --fixup HEAD^^^ foo.c
$ git rebase -i --autosquash HEAD^^^^
If you don't like command line git just download tortoisegit?
The vast majority of git users most likely use (or prefer) the command line tool for most stuff anyway, and that's part of the reason why there has historically been so few good gui clients.
Command line functionality will always stay ahead of gui client functionality, with the github web client perennially trailing - because so few users will ever use the web client for this kind of stuff, which means building that functionality out isn't going to be a priority.
For the record, I use [url= http://www.git-tower.com/ ]Git Tower[/url] daily. Mac only, though.
I'm using SmartGit, which I find works well with both Github and my local repositories - I did eventually realise it is possible to do what I want using that (handily it also allowed me to roll in another branch which Github web interface was also being awkward about). It's just that this seems such a basic bit of functionality that you'd think there might be a way to do it with a couple of clicks from the Web interface which is where I wasted my time - especially given it appears there used to be a fairly simple way which is what I eventually duplicated by URL hacking.
I do pretty much all system admin in a command shell in Linux (I've got servers with no graphical interface) so pretty used to that, but not really interested in learning another set of commands when a GUI works better - much easier to do file diffs for instance.