Browse Source

Merge "Remove use of GitIndex to detect index changes"

stable-1.2
Robin Rosenberg 13 years ago committed by Code Review
parent
commit
a3d7056b45
  1. 31
      org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java

31
org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java

@ -56,6 +56,7 @@ import org.eclipse.jgit.JGitText;
import org.eclipse.jgit.errors.ConfigInvalidException; import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.events.ConfigChangedEvent; import org.eclipse.jgit.events.ConfigChangedEvent;
import org.eclipse.jgit.events.ConfigChangedListener; import org.eclipse.jgit.events.ConfigChangedListener;
import org.eclipse.jgit.events.IndexChangedEvent;
import org.eclipse.jgit.lib.BaseRepositoryBuilder; import org.eclipse.jgit.lib.BaseRepositoryBuilder;
import org.eclipse.jgit.lib.ConfigConstants; import org.eclipse.jgit.lib.ConfigConstants;
import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Constants;
@ -105,6 +106,8 @@ public class FileRepository extends Repository {
private final ObjectDirectory objectDatabase; private final ObjectDirectory objectDatabase;
private FileSnapshot snapshot;
/** /**
* Construct a representation of a Git repository. * Construct a representation of a Git repository.
* <p> * <p>
@ -187,6 +190,9 @@ public class FileRepository extends Repository {
repositoryFormatVersion)); repositoryFormatVersion));
} }
} }
if (!isBare())
snapshot = FileSnapshot.save(getIndexFile());
} }
private void loadSystemConfig() throws IOException { private void loadSystemConfig() throws IOException {
@ -371,15 +377,26 @@ public class FileRepository extends Repository {
objectDatabase.openPack(pack, idx); objectDatabase.openPack(pack, idx);
} }
/** @Override
* Force a scan for changed refs.
*
* @throws IOException
*/
public void scanForRepoChanges() throws IOException { public void scanForRepoChanges() throws IOException {
getAllRefs(); // This will look for changes to refs getAllRefs(); // This will look for changes to refs
if (!isBare()) detectIndexChanges();
getIndex(); // This will detect changes in the index }
/**
* Detect index changes.
*/
private void detectIndexChanges() {
if (isBare())
return;
File indexFile = getIndexFile();
if (snapshot == null)
snapshot = FileSnapshot.save(indexFile);
else if (snapshot.isModified(indexFile)) {
snapshot = FileSnapshot.save(indexFile);
fireEvent(new IndexChangedEvent());
}
} }
/** /**

Loading…
Cancel
Save