mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-05-21 12:15:00 +00:00
refactor<*>: rewrite all with AvaloniaUI
This commit is contained in:
parent
0136904612
commit
2a62596999
521 changed files with 19780 additions and 23244 deletions
|
@ -1,68 +1,49 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
||||
namespace SourceGit.Commands {
|
||||
/// <summary>
|
||||
/// 单个贮藏相关操作
|
||||
/// </summary>
|
||||
public class Stash : Command {
|
||||
|
||||
public Stash(string repo) {
|
||||
Cwd = repo;
|
||||
WorkingDirectory = repo;
|
||||
Context = repo;
|
||||
}
|
||||
|
||||
public bool Push(List<Models.Change> changes, string message, bool bFull) {
|
||||
if (bFull) {
|
||||
var needAdd = new List<string>();
|
||||
foreach (var c in changes) {
|
||||
if (c.WorkTree == Models.Change.Status.Added || c.WorkTree == Models.Change.Status.Untracked) {
|
||||
needAdd.Add(c.Path);
|
||||
if (needAdd.Count > 10) {
|
||||
new Add(Cwd, needAdd).Exec();
|
||||
needAdd.Clear();
|
||||
}
|
||||
public bool Push(string message) {
|
||||
Args = $"stash push -m \"{message}\"";
|
||||
return Exec();
|
||||
}
|
||||
|
||||
public bool Push(List<Models.Change> changes, string message) {
|
||||
var temp = Path.GetTempFileName();
|
||||
var stream = new FileStream(temp, FileMode.Create);
|
||||
var writer = new StreamWriter(stream);
|
||||
|
||||
var needAdd = new List<Models.Change>();
|
||||
foreach (var c in changes) {
|
||||
writer.WriteLine(c.Path);
|
||||
|
||||
if (c.WorkTree == Models.ChangeState.Added || c.WorkTree == Models.ChangeState.Untracked) {
|
||||
needAdd.Add(c);
|
||||
if (needAdd.Count > 10) {
|
||||
new Add(WorkingDirectory, needAdd).Exec();
|
||||
needAdd.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (needAdd.Count > 0) {
|
||||
new Add(WorkingDirectory, needAdd).Exec();
|
||||
needAdd.Clear();
|
||||
}
|
||||
|
||||
if (needAdd.Count > 0) {
|
||||
new Add(Cwd, needAdd).Exec();
|
||||
needAdd.Clear();
|
||||
}
|
||||
writer.Flush();
|
||||
stream.Flush();
|
||||
writer.Close();
|
||||
stream.Close();
|
||||
|
||||
Args = $"stash push -m \"{message}\"";
|
||||
return Exec();
|
||||
} else {
|
||||
var temp = Path.GetTempFileName();
|
||||
var stream = new FileStream(temp, FileMode.Create);
|
||||
var writer = new StreamWriter(stream);
|
||||
|
||||
var needAdd = new List<string>();
|
||||
foreach (var c in changes) {
|
||||
writer.WriteLine(c.Path);
|
||||
|
||||
if (c.WorkTree == Models.Change.Status.Added || c.WorkTree == Models.Change.Status.Untracked) {
|
||||
needAdd.Add(c.Path);
|
||||
if (needAdd.Count > 10) {
|
||||
new Add(Cwd, needAdd).Exec();
|
||||
needAdd.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (needAdd.Count > 0) {
|
||||
new Add(Cwd, needAdd).Exec();
|
||||
needAdd.Clear();
|
||||
}
|
||||
|
||||
writer.Flush();
|
||||
stream.Flush();
|
||||
writer.Close();
|
||||
stream.Close();
|
||||
|
||||
Args = $"stash push -m \"{message}\" --pathspec-from-file=\"{temp}\"";
|
||||
var succ = Exec();
|
||||
File.Delete(temp);
|
||||
return succ;
|
||||
}
|
||||
Args = $"stash push -m \"{message}\" --pathspec-from-file=\"{temp}\"";
|
||||
var succ = Exec();
|
||||
File.Delete(temp);
|
||||
return succ;
|
||||
}
|
||||
|
||||
public bool Apply(string name) {
|
||||
|
@ -79,5 +60,10 @@ namespace SourceGit.Commands {
|
|||
Args = $"stash drop -q {name}";
|
||||
return Exec();
|
||||
}
|
||||
|
||||
public bool Clear() {
|
||||
Args = "stash clear";
|
||||
return Exec();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue