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