From b1c5fe3547698c5e43fac7da2bd38801e10d25fb Mon Sep 17 00:00:00 2001 From: Taylor Blau Date: Wed, 24 May 2017 16:38:08 -0600 Subject: [PATCH] git/rev_list_scanner: add --date-order --- git/rev_list_scanner.go | 8 ++++++++ git/rev_list_scanner_test.go | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/git/rev_list_scanner.go b/git/rev_list_scanner.go index 95436415..c333f274 100644 --- a/git/rev_list_scanner.go +++ b/git/rev_list_scanner.go @@ -37,6 +37,9 @@ const ( // results as given by git-rev-list(1) without any `---order` // argument given. By default: reverse chronological order. DefaultRevListOrder RevListOrder = iota + // DateRevListOrder gives the revisions such that no parents are shown + // before children, and otherwise in commit timestamp order. + DateRevListOrder ) // ScanRefsOptions is an "options" type that is used to configure a scan @@ -183,6 +186,11 @@ func revListArgs(l, r string, opt *ScanRefsOptions) (io.Reader, []string, error) var stdin io.Reader args := []string{"rev-list", "--objects"} + switch opt.Order { + case DateRevListOrder: + args = append(args, "--date-order") + } + switch opt.Mode { case ScanRefsMode: if opt.SkipDeletedBlobs { diff --git a/git/rev_list_scanner_test.go b/git/rev_list_scanner_test.go index 2114b17c..6033f87c 100644 --- a/git/rev_list_scanner_test.go +++ b/git/rev_list_scanner_test.go @@ -107,6 +107,13 @@ func TestRevListArgs(t *testing.T) { }, ExpectedErr: "unknown scan type: -1", }, + "scan date order": { + Left: "left", Right: "right", Opt: &ScanRefsOptions{ + Mode: ScanRefsMode, + Order: DateRevListOrder, + }, + ExpectedArgs: []string{"rev-list", "--objects", "--date-order", "--do-walk", "left", "right", "--"}, + }, } { t.Run(desc, c.Assert) }