Tag Archives: projects

Migrating Gitorious to Another Server, Part III

If you’ve read my earlier posts, you know that I’ve migrated our Gitorious instance to a new server. In the project, I had to update it from 2.3 to 3.0.

All of the projects and data appears, so far, to have migrated successfully. The latest issue, however, that I’ve run into is that not all the projects show up on the Projects index page. Since all the projects are supposed to be visible, this didn’t make sense.

The fix ended up being time consuming but fairly straightforward. I did a search in the database to find all of the projects, their slugs, and their owners:

SELECT id, title, slug, owner_id FROM projects;

For each project not appearing on the index page, I:

  • opened the project page:
    • [main site url]/[slug]
  • opened the Admin menu by clicking the Admin button
  • clicked Edit
  • saved the edit page (no changes necessary)

Voila! The project appeared on the index page.

One small gotcha: if the admin (the user I was logged in as) wasn’t the owner of the project, the Admin button wouldn’t appear. So I’d temporarily change the owner of the site to admin:

update projects set owner_id = 1 where id = [project id from table];

Once I’d saved the Edit page, I simply changed the owner back to the original, as seen in the original table.

On Time Projects

I find myself oftentimes trying to get developers to understand why it’s important to give a client a realistic date upon which to expect a release. I have heard the words that make me cringe: “But it will be ready when it’s ready. This is new stuff and we can’t predict what might happen along the way.” Try telling that to your client for whom your software is a necessary piece for their own software.

I think I’ve finally figured out a way to explain it……

I think every area of the country has the ‘backyard’ auto mechanic. The guy with several cars sitting around that haven’t been repaired since before you were born. But often those folks know more about cars than you can shake a stick at. In my area of the country, we have some of those that are actual businesses. And a few have been recommended to me as the best place to take my not-so-new cars.

When you take your car to a mechanic, it doesn’t halt your need for a vehicle. Especially in areas with poor public transportation. That means either having to rely on someone else to drive you places, or drive with you places, or it means renting a car.

Now the dilemma with the ‘backyard’ mechanic. They may be good. They may be less expensive than the other guy. But many times you don’t know when your car will be finished.

So you take the car in for what you hope is a straightforward repair. You ask the mechanic when it’ll be done and you get a general handwaving. So you make arrangements to hitch a ride, or, worse, you rent a car, to tide you over until your car is ready.

A week passes. Your car isn’t ready yet. Your told the parts have finally arrived, and you’ve moved up the priority list, so they should be working on your car again soon.

Another week passes. Your car isn’t ready yet. Something else came it that was more important than getting your car done.

Another week passes. You finally get your car back. Mind you, when you get it, it runs better than when you left it, because they’ve tweaked a few other things that had been annoying you that you hadn’t even mentioned.

But the fact remains that you were 3 weeks without your car, you were inconvenienced much longer than you expected to be, and you may, if you did end up renting a car, be out more than if you’d taken it to the ‘other guy’.

Now think about a software project. The developers tell you that, with design, development, code review, and testing, the project will take 8 weeks. 6 weeks rolls around and the coding isn’t done. They say it’ll be at least another week added on. 8 weeks passes and the coding is finally done and reviewed. But it’s not tested yet. Add another two weeks. 11 weeks passes. The software is finally delivered. It works great. But in the meantime, you’ve had your team sitting on their thumbs waiting for that functionality so they could get their part done. And your clients, to whom you’ve promised an end product, will now have to be told that it needs to come a month later. So your clients go somewhere else.

Kinda makes sense, huh?