Patch Set 1:

If we do it as proposed, all usages of DirCacheCheckout need to changed in this way.
Alternatively the DirCacheCheckout constructor could changed in the following way: 


	public DirCacheCheckout(Repository repo, ObjectId headCommitTree,
			DirCache dc, ObjectId mergeCommitTree) throws IOException {
		this(repo, headCommitTree, dc, mergeCommitTree, null);
		try {
			this.workingTree = new FileTreeIterator(repo);
		} catch (RuntimeException e) {
			dc.unlock();
			throw e;
		}
	}