I’m going crazy!

Well, right after my manager told me I could go, we had another meeting, in which he learned he spoke too soon. So now I’m back in wonderland.
If the way things are going is any indication, I’ll know better about whether I can go home or not by mid-next week. Yeah, as in, the day before my flight. I can tell you that most of the software team will be working all day tomorrow and Sunday. I worked 12.5 hours today.
The plan is to have all the code changes finished by the end of this weekend so that we can do a merge on Monday morning and build something we can test on Monday afternoon, Tuesday, and Wednesday.
Meanwhile, in parallel, some of us have to try and figure out what our contractor did with the code that he delivered. Unfortunately, when his contract was negotiated, I wasn’t there. It’s waaaaaay too open-ended: he’s been WORKING FROM HOME (so we don’t get to find out what he’s working on on a regular basis), he has code for our ENTIRE APPLICATION (so the scope of his changes is not limited), he’s working from an OLD CHECKOUT (so the code he’s been working on may be incompatible with ours), he’s using HIS CVS TREE (so we’ve got to figure out where everything goes in ours by hand). Did I mention he’s delivering something like 1700 changes, most which probably won’t have any documentation? And that these changes need to be integrated into our codebase, built into a product, and tested before January 8th?
Did I mention that the software department in this 110-person company is five people, one of which doesn’t code (he’s our mathematical modeling department — he speaks matlab) and another of which is my manager (who codes (!) but has too much on his plate and who has been too busy working on the Linux area of our product to get up to speed with the Mac side of things)? Fucking joy.
Can somebody please calm me down?