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,17 +5,18 @@ 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)
{
Args = "add .";
}
else
{
var builder = new StringBuilder(); var builder = new StringBuilder();
builder.Append("add --"); builder.Append("add --");
foreach (var c in changes) foreach (var c in changes)
@ -28,4 +29,3 @@ namespace SourceGit.Commands
} }
} }
} }
}

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();