Fix diff view for files in change edit
If a change edit is viewed in the change screen and the change screen is not in edit mode, then clicking on any file in the file list results in a not found screen. This is because the client makes requests to the server where 'edit' is used as revision and the server cannot resolve this revision. Other edit-related requests use '0' as revision for change edits and those succeed. Fix this by supporting 'edit' as revision for change edits. Also document '0' and 'edit' as possible values for revision-id. Change-Id: If93894b330e0c7942a94a532eca84a73a84b06f5 Signed-off-by: Edwin Kempin <ekempin@google.com>
This commit is contained in:
@@ -4237,6 +4237,7 @@ This can be:
|
||||
* an abbreviated commit ID that uniquely identifies one revision of the
|
||||
change ("674ac754"), at least 4 digits are required
|
||||
* a legacy numeric patch number ("1" for first patch set of the change)
|
||||
* "0" or the literal `edit` for a change edit
|
||||
|
||||
[[json-entities]]
|
||||
== JSON Entities
|
||||
|
@@ -147,6 +147,17 @@ public class ChangeEditIT extends AbstractDaemonTest {
|
||||
db.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseEditRevision() throws Exception {
|
||||
assertThat(modifier.createEdit(change, ps)).isEqualTo(RefUpdate.Result.NEW);
|
||||
|
||||
// check that '0' is parsed as edit revision
|
||||
gApi.changes().id(change.getChangeId()).revision(0).comments();
|
||||
|
||||
// check that 'edit' is parsed as edit revision
|
||||
gApi.changes().id(change.getChangeId()).revision("edit").comments();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void deleteEdit() throws Exception {
|
||||
assertThat(modifier.createEdit(change, ps)).isEqualTo(RefUpdate.Result.NEW);
|
||||
|
@@ -104,7 +104,7 @@ public class Revisions implements ChildCollection<ChangeResource, RevisionResour
|
||||
|
||||
private List<RevisionResource> find(ChangeResource change, String id)
|
||||
throws OrmException, IOException, AuthException {
|
||||
if (id.equals("0")) {
|
||||
if (id.equals("0") || id.equals("edit")) {
|
||||
return loadEdit(change, null);
|
||||
} else if (id.length() < 6 && id.matches("^[1-9][0-9]{0,4}$")) {
|
||||
// Legacy patch set number syntax.
|
||||
|
Reference in New Issue
Block a user