Don't check conflicting ref names when deleting refs
The Schema_167 migration was very slow on our production data with about 30K user refs and about 20K groups. This was caused by scanning for all refs when deleting a ref during migration When deleting a ref we do not need to check for the conflicting refs name and can thus avoid the expensive scan for all refs. Change-Id: I1168bd192fa9c3c8c0791641ef063955d03f35ec
This commit is contained in:
@@ -119,6 +119,7 @@ public class RefUpdateUtil {
|
|||||||
public static void deleteChecked(Repository repo, String refName) throws IOException {
|
public static void deleteChecked(Repository repo, String refName) throws IOException {
|
||||||
RefUpdate ru = repo.updateRef(refName);
|
RefUpdate ru = repo.updateRef(refName);
|
||||||
ru.setForceUpdate(true);
|
ru.setForceUpdate(true);
|
||||||
|
ru.setCheckConflicting(false);
|
||||||
switch (ru.delete()) {
|
switch (ru.delete()) {
|
||||||
case FORCED:
|
case FORCED:
|
||||||
// Ref was deleted.
|
// Ref was deleted.
|
||||||
|
Reference in New Issue
Block a user