summaryrefslogtreecommitdiffstats
path: root/modules/git/pipeline/namerev.go
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2019-10-28 18:31:55 +0000
committerGitHub <noreply@github.com>2019-10-28 18:31:55 +0000
commit5e6a008fba9a85c9a5319d93c1e52e183211a342 (patch)
tree1da9197537ea37a338838b52e479697f44a046ea /modules/git/pipeline/namerev.go
parentaf8957bc4ce78613fe03cb1abc6c961dd67ff344 (diff)
downloadgitea-5e6a008fba9a85c9a5319d93c1e52e183211a342.tar.gz
gitea-5e6a008fba9a85c9a5319d93c1e52e183211a342.zip
Add basic repository lfs management (#7199)
This PR adds basic repository LFS management UI including the ability to find all possible pointers within the repository. Locks are not managed at present but would be addable through some simple additions. * Add basic repository lfs management * add auto-associate function * Add functionality to find commits with this lfs file * Add link to find commits on the lfs file view * Adjust commit view to state the likely branch causing the commit * Only read Oid from database
Diffstat (limited to 'modules/git/pipeline/namerev.go')
-rw-r--r--modules/git/pipeline/namerev.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/modules/git/pipeline/namerev.go b/modules/git/pipeline/namerev.go
new file mode 100644
index 0000000000..eebb53b0ca
--- /dev/null
+++ b/modules/git/pipeline/namerev.go
@@ -0,0 +1,28 @@
+// Copyright 2019 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package pipeline
+
+import (
+ "bytes"
+ "fmt"
+ "io"
+ "strings"
+ "sync"
+
+ "code.gitea.io/gitea/modules/git"
+)
+
+// NameRevStdin runs name-rev --stdin
+func NameRevStdin(shasToNameReader *io.PipeReader, nameRevStdinWriter *io.PipeWriter, wg *sync.WaitGroup, tmpBasePath string) {
+ defer wg.Done()
+ defer shasToNameReader.Close()
+ defer nameRevStdinWriter.Close()
+
+ stderr := new(bytes.Buffer)
+ var errbuf strings.Builder
+ if err := git.NewCommand("name-rev", "--stdin", "--name-only", "--always").RunInDirFullPipeline(tmpBasePath, nameRevStdinWriter, stderr, shasToNameReader); err != nil {
+ _ = shasToNameReader.CloseWithError(fmt.Errorf("git name-rev [%s]: %v - %s", tmpBasePath, err, errbuf.String()))
+ }
+}