From fee792f5ee8c59fadda65a55d00d0adba4a040ea Mon Sep 17 00:00:00 2001 From: Winston Li Date: Sat, 21 Feb 2015 23:46:32 +0000 Subject: [PATCH] In-place diffs during push snapshot creation. --- .../bridge/CandidateSnapshotCallback.java | 2 + ...rectoryContents.java => RawDirectory.java} | 4 +- .../uk/ac/ic/wlgitbridge/bridge/RawFile.java | 10 ++ .../bridge/WriteLatexDataSource.java | 3 +- .../{CandidateSnapshot.java => bullshit.java} | 2 +- .../git/handler/hook/WriteLatexPutHook.java | 9 +- .../wlgitbridge/git/util/FileDirectory.java | 24 ++++ .../git/util/FileDirectoryContents.java | 23 ---- .../git/util/RepositoryObjectTreeWalker.java | 21 +++- .../writelatex/CandidateSnapshot.java | 104 ++++++++++++++++++ .../wlgitbridge/writelatex/ServletFile.java | 32 ++++++ .../writelatex/WLDirectoryNodeSnapshot.java | 80 -------------- .../wlgitbridge/writelatex/WriteLatexAPI.java | 11 +- .../api/request/push/SnapshotPushRequest.java | 8 +- .../filestore/store/WLFileStore.java | 4 +- .../writelatex/model/DataStore.java | 19 ++-- .../writelatex/model/ResourceFetcher.java | 2 +- 17 files changed, 220 insertions(+), 138 deletions(-) rename services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/{RawDirectoryContents.java => RawDirectory.java} (52%) rename services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/{CandidateSnapshot.java => bullshit.java} (92%) create mode 100644 services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/util/FileDirectory.java delete mode 100644 services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/util/FileDirectoryContents.java create mode 100644 services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/CandidateSnapshot.java create mode 100644 services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/ServletFile.java delete mode 100644 services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/WLDirectoryNodeSnapshot.java diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/CandidateSnapshotCallback.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/CandidateSnapshotCallback.java index 9db45f19bc..d98ccf0f3d 100644 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/CandidateSnapshotCallback.java +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/CandidateSnapshotCallback.java @@ -1,5 +1,7 @@ package uk.ac.ic.wlgitbridge.bridge; +import uk.ac.ic.wlgitbridge.writelatex.CandidateSnapshot; + /** * Created by Winston on 16/11/14. */ diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/RawDirectoryContents.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/RawDirectory.java similarity index 52% rename from services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/RawDirectoryContents.java rename to services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/RawDirectory.java index 3d4a8f33a9..9a44f6b1df 100644 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/RawDirectoryContents.java +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/RawDirectory.java @@ -5,7 +5,7 @@ import java.util.Map; /** * Created by Winston on 16/11/14. */ -public interface RawDirectoryContents { +public interface RawDirectory { - public Map getFileContentsTable(); + public Map getFileTable(); } diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/RawFile.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/RawFile.java index 6678407775..00c1a5cc97 100644 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/RawFile.java +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/RawFile.java @@ -4,6 +4,7 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; +import java.util.Arrays; /** * Created by Winston on 16/11/14. @@ -22,4 +23,13 @@ public abstract class RawFile { out.close(); } + @Override + public boolean equals(Object obj) { + if (!(obj instanceof RawFile)) { + return false; + } + RawFile that = (RawFile) obj; + return getPath().equals(that.getPath()) && Arrays.equals(getContents(), that.getContents()); + } + } diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/WriteLatexDataSource.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/WriteLatexDataSource.java index 05dbfea247..60ec600d15 100644 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/WriteLatexDataSource.java +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/WriteLatexDataSource.java @@ -3,7 +3,6 @@ package uk.ac.ic.wlgitbridge.bridge; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.transport.ServiceMayNotContinueException; import uk.ac.ic.wlgitbridge.writelatex.api.request.exception.FailedConnectionException; -import uk.ac.ic.wlgitbridge.writelatex.api.request.getdoc.exception.InvalidProjectException; import uk.ac.ic.wlgitbridge.writelatex.api.request.push.exception.InvalidPostbackKeyException; import uk.ac.ic.wlgitbridge.writelatex.api.request.push.exception.SnapshotPostException; import uk.ac.ic.wlgitbridge.writelatex.api.request.push.exception.UnexpectedPostbackException; @@ -23,7 +22,7 @@ public interface WriteLatexDataSource { /* Called by request thread. */ public boolean repositoryExists(String projectName) throws ServiceMayNotContinueException; public List getWritableRepositories(String projectName, Repository repository) throws IOException, SnapshotPostException; - public void putDirectoryContentsToProjectWithName(String projectName, RawDirectoryContents directoryContents, String hostname) throws SnapshotPostException, IOException, FailedConnectionException; + public void putDirectoryContentsToProjectWithName(String projectName, RawDirectory directoryContents, RawDirectory oldDirectoryContents, String hostname) throws SnapshotPostException, IOException, FailedConnectionException; void checkPostbackKey(String projectName, String postbackKey) throws InvalidPostbackKeyException; diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/CandidateSnapshot.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/bullshit.java similarity index 92% rename from services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/CandidateSnapshot.java rename to services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/bullshit.java index d127f1072b..966741d635 100644 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/CandidateSnapshot.java +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/bullshit.java @@ -6,7 +6,7 @@ import uk.ac.ic.wlgitbridge.writelatex.filestore.node.WLDirectoryNode; /** * Created by Winston on 16/11/14. */ -public interface CandidateSnapshot { +public interface bullshit { public JsonElement getJsonRepresentation(); public int getPreviousVersionID(); diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/handler/hook/WriteLatexPutHook.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/handler/hook/WriteLatexPutHook.java index d8389e620c..c9bbc56bdf 100644 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/handler/hook/WriteLatexPutHook.java +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/handler/hook/WriteLatexPutHook.java @@ -5,7 +5,7 @@ import org.eclipse.jgit.transport.PreReceiveHook; import org.eclipse.jgit.transport.ReceiveCommand; import org.eclipse.jgit.transport.ReceiveCommand.Result; import org.eclipse.jgit.transport.ReceivePack; -import uk.ac.ic.wlgitbridge.bridge.RawDirectoryContents; +import uk.ac.ic.wlgitbridge.bridge.RawDirectory; import uk.ac.ic.wlgitbridge.bridge.WriteLatexDataSource; import uk.ac.ic.wlgitbridge.git.handler.hook.exception.ForcedPushException; import uk.ac.ic.wlgitbridge.git.handler.hook.exception.WrongBranchException; @@ -66,6 +66,7 @@ public class WriteLatexPutHook implements PreReceiveHook { writeLatexDataSource.putDirectoryContentsToProjectWithName(repository.getWorkTree().getName(), getPushedDirectoryContents(repository, receiveCommand), + getOldDirectoryContents(repository), hostname); } @@ -81,10 +82,14 @@ public class WriteLatexPutHook implements PreReceiveHook { } } - private RawDirectoryContents getPushedDirectoryContents(Repository repository, ReceiveCommand receiveCommand) throws IOException { + private RawDirectory getPushedDirectoryContents(Repository repository, ReceiveCommand receiveCommand) throws IOException { return new RepositoryObjectTreeWalker(repository, receiveCommand.getNewId()) .getDirectoryContents(); } + private RawDirectory getOldDirectoryContents(Repository repository) throws IOException { + return new RepositoryObjectTreeWalker(repository).getDirectoryContents(); + } + } diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/util/FileDirectory.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/util/FileDirectory.java new file mode 100644 index 0000000000..884dfc7776 --- /dev/null +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/util/FileDirectory.java @@ -0,0 +1,24 @@ +package uk.ac.ic.wlgitbridge.git.util; + +import uk.ac.ic.wlgitbridge.bridge.RawDirectory; +import uk.ac.ic.wlgitbridge.bridge.RawFile; + +import java.util.Map; + +/** + * Created by Winston on 16/11/14. + */ +public class FileDirectory implements RawDirectory { + + private final Map fileTable; + + public FileDirectory(Map fileTable) { + this.fileTable = fileTable; + } + + @Override + public Map getFileTable() { + return fileTable; + } + +} diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/util/FileDirectoryContents.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/util/FileDirectoryContents.java deleted file mode 100644 index 14618b202b..0000000000 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/util/FileDirectoryContents.java +++ /dev/null @@ -1,23 +0,0 @@ -package uk.ac.ic.wlgitbridge.git.util; - -import uk.ac.ic.wlgitbridge.bridge.RawDirectoryContents; - -import java.util.Map; - -/** - * Created by Winston on 16/11/14. - */ -public class FileDirectoryContents implements RawDirectoryContents { - - private final Map fileContentsTable; - - public FileDirectoryContents(Map fileContentsTable) { - this.fileContentsTable = fileContentsTable; - } - - @Override - public Map getFileContentsTable() { - return fileContentsTable; - } - -} diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/util/RepositoryObjectTreeWalker.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/util/RepositoryObjectTreeWalker.java index 80c6c72e63..60ef601a45 100644 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/util/RepositoryObjectTreeWalker.java +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/git/util/RepositoryObjectTreeWalker.java @@ -4,7 +4,9 @@ import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.revwalk.RevWalk; import org.eclipse.jgit.treewalk.TreeWalk; -import uk.ac.ic.wlgitbridge.bridge.RawDirectoryContents; +import uk.ac.ic.wlgitbridge.bridge.RawDirectory; +import uk.ac.ic.wlgitbridge.bridge.RawFile; +import uk.ac.ic.wlgitbridge.writelatex.filestore.RepositoryFile; import java.io.IOException; import java.util.HashMap; @@ -31,11 +33,14 @@ public class RepositoryObjectTreeWalker { this(repository, repository.resolve("HEAD~" + fromHead)); } - public RawDirectoryContents getDirectoryContents() throws IOException { - return new FileDirectoryContents(walkGitObjectTree()); + public RawDirectory getDirectoryContents() throws IOException { + return new FileDirectory(walkGitObjectTree()); } private TreeWalk initTreeWalk(Repository repository, ObjectId objectId) throws IOException { + if (objectId == null) { + return null; + } RevWalk walk = new RevWalk(repository); TreeWalk treeWalk = new TreeWalk(repository); treeWalk.addTree(walk.parseCommit(objectId).getTree()); @@ -43,10 +48,14 @@ public class RepositoryObjectTreeWalker { return treeWalk; } - private Map walkGitObjectTree() throws IOException { - Map fileContentsTable = new HashMap(); + private Map walkGitObjectTree() throws IOException { + Map fileContentsTable = new HashMap(); + if (treeWalk == null) { + return fileContentsTable; + } while (treeWalk.next()) { - fileContentsTable.put(treeWalk.getPathString(), repository.open(treeWalk.getObjectId(0)).getBytes()); + String path = treeWalk.getPathString(); + fileContentsTable.put(path, new RepositoryFile(path, repository.open(treeWalk.getObjectId(0)).getBytes())); } return fileContentsTable; } diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/CandidateSnapshot.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/CandidateSnapshot.java new file mode 100644 index 0000000000..e4872d91da --- /dev/null +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/CandidateSnapshot.java @@ -0,0 +1,104 @@ +package uk.ac.ic.wlgitbridge.writelatex; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import uk.ac.ic.wlgitbridge.bridge.RawDirectory; +import uk.ac.ic.wlgitbridge.bridge.RawFile; +import uk.ac.ic.wlgitbridge.util.Util; + +import java.io.File; +import java.io.IOException; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +/** + * Created by Winston on 16/11/14. + */ +public class CandidateSnapshot { + + private final String projectName; + private final int currentVersion; + private final List files; + + public CandidateSnapshot(String projectName, int currentVersion, RawDirectory directoryContents, RawDirectory oldDirectoryContents) { + this.projectName = projectName; + this.currentVersion = currentVersion; + files = diff(directoryContents, oldDirectoryContents); + } + + private List diff(RawDirectory directoryContents, RawDirectory oldDirectoryContents) { + List files = new LinkedList(); + Map fileTable = directoryContents.getFileTable(); + Map oldFileTable = oldDirectoryContents.getFileTable(); + for (Entry entry : fileTable.entrySet()) { + RawFile file = entry.getValue(); + files.add(new ServletFile(file, oldFileTable.get(file.getPath()))); + } + return files; + } + + public void writeServletFiles(File rootGitDirectory) throws IOException { + File directory = new File(rootGitDirectory, ".wlgb/atts/" + projectName); + for (ServletFile file : files) { + if (file.isChanged()) { + file.writeToDisk(directory); + } + } + } + + public JsonElement getJsonRepresentation(String postbackKey) { + String projectURL = Util.getPostbackURL() + projectName; + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("latestVerId", currentVersion); + jsonObject.add("files", getFilesAsJson(projectURL, postbackKey)); + jsonObject.addProperty("postbackUrl", projectURL + "/" + postbackKey + "/postback"); + return jsonObject; + } + + private JsonArray getFilesAsJson(String projectURL, String postbackKey) { + JsonArray filesArray = new JsonArray(); + for (ServletFile file : files) { + filesArray.add(getFileAsJson(file, projectURL, postbackKey)); + } + return filesArray; + } + + private JsonObject getFileAsJson(ServletFile file, String projectURL, String postbackKey) { + JsonObject jsonFile = new JsonObject(); + jsonFile.addProperty("name", file.getPath()); + if (file.isChanged()) { + jsonFile.addProperty("url", projectURL + "/" + file.getPath() + "?key=" + postbackKey); + } + return jsonFile; + } + + public String getProjectName() { + return projectName; + } + +// @Override +// public int getPreviousVersionID() { +// return previousVersionID; +// } +// +// @Override +// public String getProjectURL() { +// return projectURL; +// } +// +// @Override +// public void approveWithVersionID(int versionID) { +// callback.approveSnapshot(versionID, this); +// } +// + +// +// @Override +// public WLDirectoryNode getDirectoryNode() { +// return directoryNode; +// } + +} diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/ServletFile.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/ServletFile.java new file mode 100644 index 0000000000..43a2687df0 --- /dev/null +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/ServletFile.java @@ -0,0 +1,32 @@ +package uk.ac.ic.wlgitbridge.writelatex; + +import uk.ac.ic.wlgitbridge.bridge.RawFile; + +/** + * Created by Winston on 21/02/15. + */ +public class ServletFile extends RawFile { + + private final RawFile file; + private final boolean changed; + + public ServletFile(RawFile file, RawFile oldFile) { + this.file = file; + changed = equals(oldFile); + } + + @Override + public String getPath() { + return file.getPath(); + } + + @Override + public byte[] getContents() { + return file.getContents(); + } + + public boolean isChanged() { + return changed; + } + +} diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/WLDirectoryNodeSnapshot.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/WLDirectoryNodeSnapshot.java deleted file mode 100644 index 85feb3f035..0000000000 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/WLDirectoryNodeSnapshot.java +++ /dev/null @@ -1,80 +0,0 @@ -package uk.ac.ic.wlgitbridge.writelatex; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; - -/** - * Created by Winston on 16/11/14. - */ -public class WLDirectoryNodeSnapshot /*implements CandidateSnapshot*/ { - -// private final int previousVersionID; -// private final String projectName; -// private final String projectURL; -// private final WLDirectoryNode directoryNode; -// private final String postbackKey; -// private final CandidateSnapshotCallback callback; - -// public WLDirectoryNodeSnapshot(WLProject project, WLDirectoryNode directoryNode, String hostname, String postbackKey, CandidateSnapshotCallback callback) { -// previousVersionID = project.getLatestSnapshotID(); -// projectName = project.getName(); -// projectURL = Util.getPostbackURL() + projectName; -// -// this.directoryNode = directoryNode; -// this.postbackKey = postbackKey; -// this.callback = callback; -// } - -// @Override - public JsonElement getJsonRepresentation() { - JsonObject jsonObject = new JsonObject(); -// jsonObject.addProperty("latestVerId", previousVersionID); -// jsonObject.add("files", getFilesAsJson()); -// jsonObject.addProperty("postbackUrl", projectURL + "/" + postbackKey + "/postback"); - return jsonObject; - } - - private JsonArray getFilesAsJson() { - JsonArray filesArray = new JsonArray(); -// for (FileNode fileNode : directoryNode.getFileNodes()) { -// filesArray.add(getFileAsJson(fileNode)); -// } - return filesArray; - } - -// private JsonObject getFileAsJson(FileNode fileNode) { -// JsonObject file = new JsonObject(); -// file.addProperty("name", fileNode.getFilePath()); -// if (fileNode.isChanged()) { -// file.addProperty("url", projectURL + "/" + fileNode.getFilePath() + "?key=" + postbackKey); -// } -// return file; -// } - -// @Override -// public int getPreviousVersionID() { -// return previousVersionID; -// } -// -// @Override -// public String getProjectURL() { -// return projectURL; -// } -// -// @Override -// public void approveWithVersionID(int versionID) { -// callback.approveSnapshot(versionID, this); -// } -// -// @Override -// public String getProjectName() { -// return projectName; -// } -// -// @Override -// public WLDirectoryNode getDirectoryNode() { -// return directoryNode; -// } - -} diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/WriteLatexAPI.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/WriteLatexAPI.java index 823aa15b8c..8ba22ab577 100644 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/WriteLatexAPI.java +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/WriteLatexAPI.java @@ -2,8 +2,7 @@ package uk.ac.ic.wlgitbridge.writelatex; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.transport.ServiceMayNotContinueException; -import uk.ac.ic.wlgitbridge.bridge.CandidateSnapshot; -import uk.ac.ic.wlgitbridge.bridge.RawDirectoryContents; +import uk.ac.ic.wlgitbridge.bridge.RawDirectory; import uk.ac.ic.wlgitbridge.bridge.WritableRepositoryContents; import uk.ac.ic.wlgitbridge.bridge.WriteLatexDataSource; import uk.ac.ic.wlgitbridge.util.Util; @@ -72,17 +71,17 @@ public class WriteLatexAPI implements WriteLatexDataSource { } @Override - public void putDirectoryContentsToProjectWithName(String projectName, RawDirectoryContents directoryContents, String hostname) throws SnapshotPostException, IOException { + public void putDirectoryContentsToProjectWithName(String projectName, RawDirectory directoryContents, RawDirectory oldDirectoryContents, String hostname) throws SnapshotPostException, IOException { mainProjectLock.lockForProject(projectName); try { Util.sout("Pushing project: " + projectName); String postbackKey = postbackManager.makeKeyForProject(projectName); - CandidateSnapshot candidate = dataModel.createCandidateSnapshotFromProjectWithContents(projectName, directoryContents, hostname, postbackKey); - SnapshotPushRequest snapshotPushRequest = new SnapshotPushRequest(candidate); + CandidateSnapshot candidate = dataModel.createCandidateSnapshotFromProjectWithContents(projectName, directoryContents, oldDirectoryContents); + SnapshotPushRequest snapshotPushRequest = new SnapshotPushRequest(candidate, postbackKey); snapshotPushRequest.request(); SnapshotPushRequestResult result = snapshotPushRequest.getResult(); if (result.wasSuccessful()) { - candidate.approveWithVersionID(postbackManager.getVersionID(projectName)); + dataModel.approveSnapshot(postbackManager.getVersionID(projectName), candidate); } else { throw new OutOfDateException(); } diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/api/request/push/SnapshotPushRequest.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/api/request/push/SnapshotPushRequest.java index 967b46ba58..a91f280368 100644 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/api/request/push/SnapshotPushRequest.java +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/writelatex/api/request/push/SnapshotPushRequest.java @@ -1,7 +1,7 @@ package uk.ac.ic.wlgitbridge.writelatex.api.request.push; import com.google.gson.JsonElement; -import uk.ac.ic.wlgitbridge.bridge.CandidateSnapshot; +import uk.ac.ic.wlgitbridge.writelatex.CandidateSnapshot; import uk.ac.ic.wlgitbridge.writelatex.api.request.base.HTTPMethod; import uk.ac.ic.wlgitbridge.writelatex.api.request.base.SnapshotAPIRequest; import uk.ac.ic.wlgitbridge.writelatex.api.request.exception.FailedConnectionException; @@ -14,10 +14,12 @@ public class SnapshotPushRequest extends SnapshotAPIRequest