enhance: ignore untracked files when staging all changes with INCLUDE UNTRACKED FILES turned off (#577)

This commit is contained in:
leo 2024-10-20 18:32:05 +08:00
parent 7c253637fc
commit 45869c27b8
No known key found for this signature in database
2 changed files with 17 additions and 17 deletions

View file

@ -5,27 +5,27 @@ namespace SourceGit.Commands
{ {
public class Add : Command public class Add : Command
{ {
public Add(string repo, List<Models.Change> changes = null) public Add(string repo, bool includeUntracked)
{
WorkingDirectory = repo;
Context = repo;
Args = includeUntracked ? "add ." : "add -u .";
}
public Add(string repo, List<Models.Change> changes)
{ {
WorkingDirectory = repo; WorkingDirectory = repo;
Context = repo; Context = repo;
if (changes == null || changes.Count == 0) var builder = new StringBuilder();
builder.Append("add --");
foreach (var c in changes)
{ {
Args = "add ."; builder.Append(" \"");
} builder.Append(c.Path);
else builder.Append("\"");
{
var builder = new StringBuilder();
builder.Append("add --");
foreach (var c in changes)
{
builder.Append(" \"");
builder.Append(c.Path);
builder.Append("\"");
}
Args = builder.ToString();
} }
Args = builder.ToString();
} }
} }
} }

View file

@ -345,7 +345,7 @@ namespace SourceGit.ViewModels
_repo.SetWatcherEnabled(false); _repo.SetWatcherEnabled(false);
if (changes.Count == _unstaged.Count) if (changes.Count == _unstaged.Count)
{ {
await Task.Run(() => new Commands.Add(_repo.FullPath).Exec()); await Task.Run(() => new Commands.Add(_repo.FullPath, _repo.IncludeUntracked).Exec());
} }
else else
{ {
@ -1316,7 +1316,7 @@ namespace SourceGit.ViewModels
{ {
var succ = true; var succ = true;
if (autoStage && _unstaged.Count > 0) if (autoStage && _unstaged.Count > 0)
succ = new Commands.Add(_repo.FullPath).Exec(); succ = new Commands.Add(_repo.FullPath, _repo.IncludeUntracked).Exec();
if (succ) if (succ)
succ = new Commands.Commit(_repo.FullPath, _commitMessage, _useAmend).Exec(); succ = new Commands.Commit(_repo.FullPath, _commitMessage, _useAmend).Exec();