Migrate git LFS blob directory

This commit is contained in:
René Pfeuffer
2019-07-01 14:17:32 +02:00
parent cedf5019b0
commit 7db3350439
5 changed files with 133 additions and 5 deletions

View File

@@ -0,0 +1,43 @@
package sonia.scm.web.lfs;
import sonia.scm.migration.UpdateStep;
import sonia.scm.plugin.Extension;
import sonia.scm.update.BlobDirectoryAccess;
import sonia.scm.version.Version;
import javax.inject.Inject;
import java.nio.file.Path;
@Extension
public class LfsV1UpdateStep implements UpdateStep {
private final BlobDirectoryAccess blobDirectoryAccess;
@Inject
public LfsV1UpdateStep(BlobDirectoryAccess blobDirectoryAccess) {
this.blobDirectoryAccess = blobDirectoryAccess;
}
@Override
public void doUpdate() throws Exception {
blobDirectoryAccess.forBlobDirectories(
f -> {
Path v1Directory = f.getFileName();
String v1DirectoryName = v1Directory.toString();
if (v1DirectoryName.endsWith("-git-lfs")) {
blobDirectoryAccess.moveToRepositoryBlobStore(f, v1DirectoryName, v1DirectoryName.substring(0, v1DirectoryName.length() - "-git-lfs".length()));
}
}
);
}
@Override
public Version getTargetVersion() {
return Version.parse("2.0.0");
}
@Override
public String getAffectedDataType() {
return "sonia.scm.git.lfs";
}
}