Has anyone seen the complaint The file “<file>” (revision <revision>) was not found in the repository
when using the ReviewBoard GUI?
E.g. I get
The file "agent/src/com/cloud/agent/resource/HypervResource.java" (revision 8b8e89d) was not found in the repository
when uploading a diff file created with git format-patch
.
However, that file is part of my diff, and was never in the git repo referenced by my patch.
The background is that I created a patch for the master branch. E.g.
$ git format-patch origin/master --stdout > ../hyperV-plugin.patch
The patch itself describes the creation of the file, an applies index 8b8e89d, as show below.
1.7.9
From 13f9c118c724afb52b0694de539b4e1b3c38e7f7 Mon Sep 17 00:00:00 2001
From: "U-CC-SVR11\\Administrator" <Administrator@CC-SVR11.(none)>
Date: Thu, 15 Nov 2012 19:19:08 +0000
Subject: [PATCH 07/96] Starting point for ServerResource for Hyper-V is DummyResource.
---
.../com/cloud/agent/resource/HypervResource.java | 227
++++++++++++++++++++
1 files changed, 227 insertions(+), 0 deletions(-) create mode 100755 agent/src/com/cloud/agent/resource/HypervResource.java
diff --git a/agent/src/com/cloud/agent/resource/HypervResource.java
b/agent/src/com/cloud/agent/resource/HypervResource.java
new file mode 100755
index 0000000..8b8e89d
--- /dev/null
+++ b/agent/src/com/cloud/agent/resource/HypervResource.java
@@ -0,0 +1,227 @@
+// Licensed to the Apache Software Foundation (ASF) under one // or
+more contributor license agreements. See the NOTICE file //
+distributed with this work for additional information // regarding
+copyright ownership. The ASF licenses this file // to you under the
+Apache License, Version 2.0 (the // "License"); you may not use this
+file except in compliance // with the License. You may obtain a copy
+of the License at
Later, the file index changes when the file is edited. E.g.
1.7.9
From fef4e3f291264224ed1430b3dff1e49bea7930c9 Mon Sep 17 00:00:00 2001
From: "U-CC-SVR11\\Administrator" <Administrator@CC-SVR11.(none)>
Date: Mon, 19 Nov 2012 15:41:26 +0000
Subject: [PATCH 09/96] Add min messages for host to register with the management server when it starts up.
---
.../com/cloud/agent/resource/HypervResource.java | 200
++++++++++++++++++-
1 files changed, 189 insertions(+), 11 deletions(-)
diff --git a/agent/src/com/cloud/agent/resource/HypervResource.java
b/agent/src/com/cloud/agent/resource/HypervResource.java
index 8b8e89d..e810ce4 100755
--- a/agent/src/com/cloud/agent/resource/HypervResource.java
+++ b/agent/src/com/cloud/agent/resource/HypervResource.java
@@ -20,14 +20,15 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;
+import java.util.Set;
import java.util.UUID;
I figured out the answer before I got a chance to hit submit on the above question. Since the answer is not obvious, I will post it here:
For a multi-commit patch, create via 'post-review' and not the ReviewBoard GUI.
The problem is with adding a diff file that aggregates a bunch of patches. In my case, I've ~97 commits. Generating a patch for each commit git format-patch -s master
gives you 97 different patches to review, which is unmanageable. Apache suggests dumping the patches into a single file with git format-patch master --stdout > ~/patch-name.patch
(See Contributing to Apache CloudStack as a Non-Committer) Unfortunately, this causes problems when one patch is dependent on another.
To avoid these issues, submit the commits as a single patch via the post-review
command in RBTools (Review Board Tools, see install instructions. After installing RBTools, verify that your local git repo's origin/master is tracking the target for your code merge. E.g.
$ git remote -v
origin https://git-wip-us.apache.org/repos/asf/incubator-cloudstack.git (fetch)
origin https://git-wip-us.apache.org/repos/asf/incubator-cloudstack.git (push)
Also, set the target Review Board. E.g. to set for a repo, use the following command in the repo's root folder.
git config reviewboard.url https://reviews.apache.org
From the root of your local git repo, simply call post-review
. It will gross up the changes between HEAD in the local repo and origin/master, create a review, and return the URL. You then flesh out the comments/summary/group using a browser.
Enjoy!