From cbfc5636e06b8bc3c1ad848d599b21d7c78ce619 Mon Sep 17 00:00:00 2001 From: --global Date: Tue, 4 Apr 2023 14:53:05 -0500 Subject: [PATCH] Revert "Revert rust scm usage (#4277)" This reverts commit 995aae2621a79b7dbc748773d3a8ac7711010665. --- cli/internal/scm/git_go.go | 3 +++ cli/internal/scm/git_rust.go | 28 ++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 cli/internal/scm/git_rust.go diff --git a/cli/internal/scm/git_go.go b/cli/internal/scm/git_go.go index f3decd8a5237e..1e5060895f0bc 100644 --- a/cli/internal/scm/git_go.go +++ b/cli/internal/scm/git_go.go @@ -1,3 +1,6 @@ +//go:build go || !rust +// +build go !rust + // Package scm abstracts operations on various tools like git // Currently, only git is supported. // diff --git a/cli/internal/scm/git_rust.go b/cli/internal/scm/git_rust.go new file mode 100644 index 0000000000000..7860b6bd48cd9 --- /dev/null +++ b/cli/internal/scm/git_rust.go @@ -0,0 +1,28 @@ +// Package scm abstracts operations on various tools like git +// Currently, only git is supported. +// +// Adapted from https://github.com/thought-machine/please/tree/master/src/scm +// Copyright Thought Machine, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +//go:build rust +// +build rust + +package scm + +import ( + "github.com/vercel/turbo/cli/internal/ffi" +) + +// git implements operations on a git repository. +type git struct { + repoRoot string +} + +// ChangedFiles returns a list of modified files since the given commit, optionally including untracked files. +func (g *git) ChangedFiles(fromCommit string, toCommit string, monorepoRoot string) ([]string, error) { + return ffi.ChangedFiles(g.repoRoot, monorepoRoot, fromCommit, toCommit) +} + +func (g *git) PreviousContent(fromCommit string, filePath string) ([]byte, error) { + return ffi.PreviousContent(g.repoRoot, fromCommit, filePath) +}