Просмотр исходного кода

Now deleting all files before writing snapshot to disk.

Winston Li 12 лет назад
Родитель
Сommit
3bbef6f066

+ 2 - 0
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/GitDirectoryContents.java

@@ -3,6 +3,7 @@ package uk.ac.ic.wlgitbridge.writelatex.filestore;
 import uk.ac.ic.wlgitbridge.bridge.WritableRepositoryContents;
 import uk.ac.ic.wlgitbridge.writelatex.api.request.exception.FailedConnectionException;
 import uk.ac.ic.wlgitbridge.writelatex.filestore.node.FileNode;
+import uk.ac.ic.wlgitbridge.writelatex.filestore.store.WLFileStore;
 import uk.ac.ic.wlgitbridge.writelatex.model.Snapshot;
 
 import java.io.File;
@@ -30,6 +31,7 @@ public class GitDirectoryContents implements WritableRepositoryContents {
 
     @Override
     public void write() throws IOException, FailedConnectionException {
+        WLFileStore.deleteInDirectoryApartFrom(gitDirectory, ".git");
         for (FileNode fileNode : fileNodes) {
             fileNode.writeToDisk(gitDirectory);
         }

+ 11 - 0
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/filestore/store/WLFileStore.java

@@ -41,6 +41,17 @@ public class WLFileStore {
         }
     }
 
+    public static void deleteInDirectoryApartFrom(File directory, String apartFrom) {
+        for (File file : directory.listFiles()) {
+            if (!file.getName().equals(apartFrom)) {
+                if (file.isDirectory()) {
+                    deleteInDirectory(file);
+                }
+                file.delete();
+            }
+        }
+    }
+
     public List<WritableRepositoryContents> updateForProject(WLProject project) throws FailedConnectionException,
                                                                                        InvalidProjectException {
         SortedSet<Snapshot> snapshots = project.fetchNewSnapshots();