corrected some bugs in repository creation

This commit is contained in:
knuthy 2014-10-04 18:26:16 +02:00
parent 57948768c0
commit 27ac841e6d
2 changed files with 14 additions and 27 deletions

View file

@ -156,15 +156,24 @@ public class PasswordStore extends Activity implements ToCloneOrNot.OnFragmentI
File localDir = new File(getFilesDir() + "/store/");
localDir.mkdir();
try {
PasswordRepository.createRepository(localDir);
// we take only the first key-id, we have to think about how to handle multiple keys, and why should we do that...
// also, for compatibility use short-version of the key-id
FileUtils.writeStringToFile(new File(localDir.getAbsolutePath() + "/.gpg-id"),
keyId.substring(keyId.length() - 8));
Git git = new Git(PasswordRepository.getRepository(new File("")));
GitAsyncTask tasks = new GitAsyncTask(this, false, false, CommitCommand.class);
tasks.execute(
git.add().addFilepattern("."),
git.commit().setMessage("[ANDROID PwdStore] Initialized store with keyID: " + keyId)
);
} catch (Exception e) {
e.printStackTrace();
localDir.delete();
return;
}
PasswordRepository.createRepository(localDir);
checkLocalRepository();
}

View file

@ -14,10 +14,8 @@ import org.eclipse.jgit.transport.URIish;
import java.io.File;
import java.io.FileFilter;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Set;
@ -34,7 +32,7 @@ public class PasswordRepository {
if (repository == null) {
FileRepositoryBuilder builder = new FileRepositoryBuilder();
try {
repository = builder.setGitDir(localDir)
repository = builder.setWorkTree(localDir)
.readEnvironment()
.findGitDir()
.build();
@ -54,31 +52,11 @@ public class PasswordRepository {
initialized = v;
}
public static void createRepository(File localDir) {
public static void createRepository(File localDir) throws Exception{
localDir.delete();
try {
// create the directory
Repository repository = FileRepositoryBuilder.create(new File(localDir, ".git"));
repository.create();
Git.init()
.setDirectory(localDir)
.call();
getRepository(localDir);
new Git(repository)
.branchCreate()
.setName("master")
.call();
initialized = true;
} catch (Exception e) {
e.printStackTrace();
return;
}
Git.init().setDirectory(localDir).call();
getRepository(localDir);
}
// TODO add remote edition later-on