public string[] GetTempFiles(GitTarget target, GitRevision from, GitRevision to, bool withProgress) { if (target == null) throw new ArgumentNullException("target"); else if (from == null) throw new ArgumentNullException("from"); else if (to == null) throw new ArgumentNullException("to"); string f1 = GetTempFile(target, from, withProgress); if (f1 == null) return null; // Canceled string f2 = GetTempFile(target, to, withProgress); if (string.IsNullOrEmpty(f1) || string.IsNullOrEmpty(f2)) return null; string[] files = new string[] { f1, f2 }; foreach (string f in files) { if (File.Exists(f)) File.SetAttributes(f, FileAttributes.ReadOnly); } return files; }
public string GetTitle(GitTarget target, GitRevision revision) { if (target == null) throw new ArgumentNullException("target"); if (revision == null) throw new ArgumentNullException("revision"); return GetTitle(target.FileName, revision); }
public string GetTempFile(GitTarget target, GitRevision revision, bool withProgress) { if (target == null) throw new ArgumentNullException("target"); else if (revision == null) throw new ArgumentNullException("revision"); string file = GetTempPath(target.FileName, revision); bool unrelated = false; ProgressRunnerResult r = GetService<IProgressRunner>().RunModal("Getting file", delegate(object sender, ProgressWorkerArgs aa) { GitWriteArgs wa = new GitWriteArgs(); wa.Revision = revision; using (Stream s = File.Create(file)) aa.Client.Write(target, s, wa); }); if (!r.Succeeded || unrelated) return null; // User canceled if (File.Exists(file)) File.SetAttributes(file, FileAttributes.ReadOnly); // A readonly file does not allow editting from many diff tools return file; }