Parse Change.Ids out of meta refs
This allows visible meta refs in VisibleRefFilter. Change-Id: Ia7a0a0027109a85204882c8a69b03292a29ece92
This commit is contained in:
@@ -136,11 +136,11 @@ public final class Change {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
int ce = nextNonDigit(ref, cs);
|
int ce = nextNonDigit(ref, cs);
|
||||||
int patchSetId = PatchSet.Id.fromRef(ref, ce);
|
if (ref.substring(ce).equals(RefNames.META_SUFFIX)
|
||||||
if (patchSetId < 0) {
|
|| PatchSet.Id.fromRef(ref, ce) >= 0) {
|
||||||
return null;
|
return new Change.Id(Integer.parseInt(ref.substring(cs, ce)));
|
||||||
}
|
}
|
||||||
return new Change.Id(Integer.parseInt(ref.substring(cs, ce)));
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int startIndex(String ref) {
|
static int startIndex(String ref) {
|
||||||
|
@@ -45,6 +45,9 @@ public class RefNames {
|
|||||||
*/
|
*/
|
||||||
public static final String REFS_CACHE_AUTOMERGE = "refs/cache-automerge/";
|
public static final String REFS_CACHE_AUTOMERGE = "refs/cache-automerge/";
|
||||||
|
|
||||||
|
/** Suffix of a meta ref in the notedb. */
|
||||||
|
public static final String META_SUFFIX = "/meta";
|
||||||
|
|
||||||
public static String refsUsers(Account.Id accountId) {
|
public static String refsUsers(Account.Id accountId) {
|
||||||
StringBuilder r = new StringBuilder();
|
StringBuilder r = new StringBuilder();
|
||||||
r.append(REFS_USER);
|
r.append(REFS_USER);
|
||||||
|
@@ -21,16 +21,18 @@ import org.junit.Test;
|
|||||||
|
|
||||||
public class ChangeTest {
|
public class ChangeTest {
|
||||||
@Test
|
@Test
|
||||||
public void parseRefNames() {
|
public void parseInvalidRefNames() {
|
||||||
assertRef(1, "refs/changes/01/1/1");
|
|
||||||
assertRef(1234, "refs/changes/34/1234/56");
|
|
||||||
|
|
||||||
// Not even close.
|
|
||||||
assertNotRef(null);
|
assertNotRef(null);
|
||||||
assertNotRef("");
|
assertNotRef("");
|
||||||
assertNotRef("01/1/1");
|
assertNotRef("01/1/1");
|
||||||
assertNotRef("HEAD");
|
assertNotRef("HEAD");
|
||||||
assertNotRef("refs/tags/v1");
|
assertNotRef("refs/tags/v1");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void parsePatchSetRefNames() {
|
||||||
|
assertRef(1, "refs/changes/01/1/1");
|
||||||
|
assertRef(1234, "refs/changes/34/1234/56");
|
||||||
|
|
||||||
// Invalid characters.
|
// Invalid characters.
|
||||||
assertNotRef("refs/changes/0x/1/1");
|
assertNotRef("refs/changes/0x/1/1");
|
||||||
@@ -60,6 +62,16 @@ public class ChangeTest {
|
|||||||
assertNotRef("refs/changes/34/1234foo");
|
assertNotRef("refs/changes/34/1234foo");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void parseChangeMetaRefNames() {
|
||||||
|
assertRef(1, "refs/changes/01/1/meta");
|
||||||
|
assertRef(1234, "refs/changes/34/1234/meta");
|
||||||
|
|
||||||
|
assertNotRef("refs/changes/01/1/met");
|
||||||
|
assertNotRef("refs/changes/01/1/META");
|
||||||
|
assertNotRef("refs/changes/01/1/1/meta");
|
||||||
|
}
|
||||||
|
|
||||||
private static void assertRef(int changeId, String refName) {
|
private static void assertRef(int changeId, String refName) {
|
||||||
assertEquals(new Change.Id(changeId), Change.Id.fromRef(refName));
|
assertEquals(new Change.Id(changeId), Change.Id.fromRef(refName));
|
||||||
}
|
}
|
||||||
|
@@ -39,7 +39,7 @@ public class ChangeNoteUtil {
|
|||||||
r.append(m);
|
r.append(m);
|
||||||
r.append('/');
|
r.append('/');
|
||||||
r.append(n);
|
r.append(n);
|
||||||
r.append("/meta");
|
r.append(RefNames.META_SUFFIX);
|
||||||
return r.toString();
|
return r.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user