Handle changes in refs/meta When there is a change for review in branch other than refs/heads/ or refs/tags, they are presented with the refs/ prefix. This will cause branch location recorded incorrectly during import. Detect refs/ prefix instead of refs/heads prefix to fix this. refs/tags should be okay as it is processed somewhere else. Change-Id: I7a9b9a4f710398e52a89e21c64e76bcebaf3e1c6 Signed-off-by: Ardo Septama <aseptama@gmail.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java index 4f05b44..200d7cc 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
@@ -25,6 +25,7 @@ import com.google.gerrit.reviewdb.client.Branch; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Project; +import com.google.gerrit.reviewdb.client.RefNames; import com.google.gerrit.reviewdb.server.ReviewDb; import com.google.gerrit.server.Sequences; import com.google.gerrit.server.update.UpdateException; @@ -39,7 +40,6 @@ import com.google.inject.assistedinject.Assisted; import org.eclipse.jgit.errors.ConfigInvalidException; -import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.ProgressMonitor; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.revwalk.RevWalk; @@ -220,7 +220,7 @@ private Change findChange(ChangeInfo c) throws OrmException { List<Change> changes = ChangeData.asChanges( queryProvider.get().byBranchKey( - new Branch.NameKey(targetProject, fullName(c.branch)), + new Branch.NameKey(targetProject, RefNames.fullName(c.branch)), new Change.Key(c.changeId))); if (changes.isEmpty()) { return null; @@ -236,7 +236,7 @@ Change change = new Change(new Change.Key(c.changeId), changeId, accountUtil.resolveUser(api, c.owner), - new Branch.NameKey(targetProject, fullName(c.branch)), c.created); + new Branch.NameKey(targetProject, RefNames.fullName(c.branch)), c.created); change.setStatus(Change.Status.forChangeStatus(c.status)); change.setTopic(c.topic); change.setLastUpdatedOn(c.updated); @@ -252,11 +252,4 @@ } db.changes().upsert(Collections.singleton(change)); } - - private static String fullName(String branch) { - if (branch.startsWith(Constants.R_HEADS)) { - return branch; - } - return Constants.R_HEADS + branch; - } }