feat(svn): add counting of untracked files; don't default to counting as "unmerged"

This commit is contained in:
Michael Carman 2022-12-25 13:12:09 -06:00 committed by Jan De Dobbeleer
parent 22f146e29e
commit d9f59272f2
2 changed files with 20 additions and 15 deletions

View file

@ -13,6 +13,8 @@ type SvnStatus struct {
func (s *SvnStatus) add(code string) { func (s *SvnStatus) add(code string) {
switch code { switch code {
case "?":
s.Untracked++
case "C": case "C":
s.Conflicted++ s.Conflicted++
case "D": case "D":
@ -21,10 +23,8 @@ func (s *SvnStatus) add(code string) {
s.Added++ s.Added++
case "M": case "M":
s.Modified++ s.Modified++
case "R": case "R", "!":
s.Moved++ s.Moved++
default:
s.Unmerged++
} }
} }

View file

@ -58,13 +58,14 @@ func TestSvnTemplateString(t *testing.T) {
}{ }{
{ {
Case: "Default template", Case: "Default template",
Expected: "\ue0a0trunk r2 +2 ~3 -7 >13 x5 !1", Expected: "\ue0a0trunk r2 ?9 +2 ~3 -7 >13 x5 !1",
Template: " \ue0a0{{.Branch}} r{{.BaseRev}} {{.Working.String}} ", Template: " \ue0a0{{.Branch}} r{{.BaseRev}} {{.Working.String}} ",
Svn: &Svn{ Svn: &Svn{
Branch: "trunk", Branch: "trunk",
BaseRev: 2, BaseRev: 2,
Working: &SvnStatus{ Working: &SvnStatus{
ScmStatus: ScmStatus{ ScmStatus: ScmStatus{
Untracked: 9,
Added: 2, Added: 2,
Conflicted: 1, Conflicted: 1,
Deleted: 7, Deleted: 7,
@ -175,23 +176,27 @@ func TestSetSvnStatus(t *testing.T) {
{ {
Case: "changed", Case: "changed",
StatusOutput: ` StatusOutput: `
! Untracked.File ? Untracked.File
! Missing.File
A FileHasBeen.Added A FileHasBeen.Added
D FileMarkedAs.Deleted D FileMarkedAs.Deleted
M Modified.File M Modified.File
C Conflicted.File
R Moved.File`, R Moved.File`,
ExpectedWorking: &SvnStatus{ScmStatus: ScmStatus{ ExpectedWorking: &SvnStatus{ScmStatus: ScmStatus{
Modified: 1, Modified: 1,
Added: 1, Added: 1,
Deleted: 1, Deleted: 1,
Unmerged: 1, Moved: 2,
Moved: 1, Untracked: 1,
Conflicted: 1,
}}, }},
RefOutput: "1133", RefOutput: "1133",
ExpectedRef: 1133, ExpectedRef: 1133,
BranchOutput: "^/trunk", BranchOutput: "^/trunk",
ExpectedBranch: "trunk", ExpectedBranch: "trunk",
ExpectedChanged: true, ExpectedChanged: true,
ExpectedConflicts: true,
}, },
{ {
Case: "conflict", Case: "conflict",