lib git: Clear git-bin cache after sync

This commit is contained in:
Hylke Bons 2012-06-29 21:43:49 +01:00
parent 865525dee2
commit 91fdb44445
2 changed files with 24 additions and 3 deletions

View file

@ -81,6 +81,9 @@ namespace SparkleLib.Git {
this.use_git_bin = true;
}
this.use_git_bin = true; // TODO: remove
TargetFolder = target_folder;
RemoteUrl = uri;
}
@ -328,8 +331,8 @@ namespace SparkleLib.Git {
{
string [] settings = new string [] {
"core.bigFileThreshold 8g",
"config filter.bin.clean \"git bin clean %f\"",
"config filter.bin.smudge \"git bin smudge\"",
"filter.bin.clean \"git bin clean %f\"",
"filter.bin.smudge \"git bin smudge\"",
"git-bin.chunkSize 1m",
"git-bin.s3bucket \"your bucket name\"",
"git-bin.s3key \"your key\"",

View file

@ -274,7 +274,13 @@ namespace SparkleLib.Git {
UpdateSizes ();
ChangeSets = GetChangeSets ();
return (git.ExitCode == 0);
if (git.ExitCode == 0) {
ClearCache ();
return true;
} else {
return false;
}
}
@ -341,6 +347,7 @@ namespace SparkleLib.Git {
);
ChangeSets = GetChangeSets ();
ClearCache ();
return true;
@ -780,6 +787,17 @@ namespace SparkleLib.Git {
}
private void ClearCache ()
{
if (!this.use_git_bin)
return;
SparkleGitBin git_bin = new SparkleGitBin (LocalPath, "clear -f");
git_bin.Start ();
git_bin.WaitForExit ();
}
// Git doesn't track empty directories, so this method
// fills them all with a hidden empty file.
//