Our team has been working our way into the Git world. One of our big client projects is now 100% git while the other is still on Subversion for another month or so. (I’m getting by with git-svn, the gateway drug on that). We’ve had pretty much nothing but success with Git for quite some time, but recently this repository started to get chaotic, which has eaten up time… which isn’t conducive to productivity.
So, I wanted to share a quick lesson that we learned today after scratching our head for a while. It’s important that you avoid having a branch on a remote repository that shares the name of a tag in your local and/or remote repository.
It’s bad mojo to have a tag and branch share the same name. Things that you’d expect to just work... don’t. This was causing us to see warnings and errors like the following, which we weren’t really sure what to make of it.
“warning: refname ‘staging’ is ambiguous.
“error: src refspec staging matches more than one.”
This started about two weeks ago when we started a few new remote branches: staging and design. It seemed to be going okay but we managed to muck up things when we merged those two together and some of us were having success fetching/pulling/pushing to staging and others were having to specify
:heads/staging and couldn’t have a local branch named staging. Needless to say, it was causing some problems and slowing us down.
This afternoon, we finally noticed in the GitHub interface that there was a tag named
staging. Hmm… interesting. We verified this by using
git:(master): git show-ref | grep staging 6a18119ca9.... refs/heads/staging 82caa5f121.... refs/remotes/origin/staging 6a18119ca9.... refs/tags/staging
Notice the tag reference at the end? After asking in #git, we were able to remove the tag with the following:
git tag -d staging
Then we needed to remove the reference of
staging on Github with
git push origin :staging. (we got rid of the remote branch temporarily as well so that we could clean this up).
The next step was to push our local branch back out to the remote branch
git push origin staging:staging.... and now we’re back in business with a simple:
git checkout --track -b staging origin/staging
Anyhow, if you end up having those warnings/errors above, you might take a look at git-show-ref to see what is in your local repository as this could be causing you some unnecessary headaches.
Kudos to Allison for taking the time to really read and digest the git documentation, which helped us figure this shit out. :-)
Since we’re still learning to get around through things like this, if you have any more insight into this issue, feel free to help educate us a bit by sharing your wisdom in response to this post. :-)
Are you using PostgreSQL? EnterpriseDB want’s to hear your story at Postgres Rocks
Alex Malinovich decided to take some time this afternoon to write a Ubiquity command for RubyURL using the new RubyURL API. You can take a look at Alex’s Ubiquity code for RubyURL. He’s taking advantage of the JSON support that I added to RubyURL this weekend and JQuery. Be sure to read Alex’s blog post, which includes a screencast! =)
Also! We added this to RubyURL so that if you have Ubiquity installed, you’ll be presented with the following the next time you visit: http://rubyurl.com.
I’m sure that most of you heard the news that Google is releasing a new web browser named Chrome. Their comic for the announcement was very refreshing and entertaining read. Granted… nobody that I know has seen it (as of today)...
For me, I’m really interested in seeing what they’ve done to hopefully improve some of the short-comings of the user experience through their interaction design process. For example, tabs containing their own url/search fields sounds refreshing (I really dislike the hierarchy currently). Also, I’m really looking forward to their dashboard-like default page.
From a web development standpoint, it definitely raises questions about what we’ll be able to do in the coming year(s).
What are your initial thoughts on this? Discuss…
Update: Gary came across this amusing quote from a response by a representative at Microsoft.
“The browser landscape is highly competitive, but people will choose Internet Explorer 8 for the way it puts the services they want right at their fingertips … and, more than any other browsing technology, puts them in control of their personal data on-line,” Hachamovitch said. (read article on CNN)
I’m really not sure what that even means. Don’t we already have our online services at our fingertips? I suspect CNN interviewed the wrong person.. because this person said nothing.
Update #2: Only a PC version available… OSX / Linux are in development. Oh well…