diff --git a/SparkleLib/Git/SparkleFetcherGit.cs b/SparkleLib/Git/SparkleFetcherGit.cs index 94755d02..a81264d0 100755 --- a/SparkleLib/Git/SparkleFetcherGit.cs +++ b/SparkleLib/Git/SparkleFetcherGit.cs @@ -338,7 +338,8 @@ namespace SparkleLib.Git { "core.packedGitWindowSize 128m", "pack.deltaCacheSize 128m", "pack.packSizeLimit 128m", - "pack.windowMemory 128m" + "pack.windowMemory 128m", + "push.default matching" }; foreach (string setting in settings) { diff --git a/SparkleLib/Git/SparkleRepoGit.cs b/SparkleLib/Git/SparkleRepoGit.cs index 75e9a6ed..961604fa 100644 --- a/SparkleLib/Git/SparkleRepoGit.cs +++ b/SparkleLib/Git/SparkleRepoGit.cs @@ -163,7 +163,7 @@ namespace SparkleLib.Git { string remote_revision = output.Substring (0, 40); - if (!remote_revision.StartsWith (current_revision)) { + if (!string.IsNullOrEmpty (remote_revision) && !remote_revision.StartsWith (current_revision)) { SparkleLogger.LogInfo ("Git", Name + " | Remote changes found, local: " + current_revision + ", remote: " + remote_revision); diff --git a/SparkleLib/SparkleRepoBase.cs b/SparkleLib/SparkleRepoBase.cs index 9349ac9c..d00216d6 100755 --- a/SparkleLib/SparkleRepoBase.cs +++ b/SparkleLib/SparkleRepoBase.cs @@ -227,7 +227,7 @@ namespace SparkleLib { } lock (this.buffer_lock) { - if (IsBuffering || !HasLocalChanges) + if (IsBuffering || this.is_syncing || !HasLocalChanges) return; IsBuffering = true;