loading up the forgejo repo on tangled to test page performance
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request 'git-grep: skip binary files' (#4927) from yoctozepto/forgejo:git-grep-skip-binary into forgejo

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/4927
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Reviewed-by: Shiny Nematoda <snematoda@noreply.codeberg.org>

Gusted d2184dd9 44002a63

+27 -1
+2 -1
modules/git/grep.go
··· 63 63 2^@10^@repo: go-gitea/gitea 64 64 */ 65 65 var results []*GrepResult 66 + // -I skips binary files 66 67 cmd := NewCommand(ctx, "grep", 67 - "--null", "--break", "--heading", "--column", 68 + "-I", "--null", "--break", "--heading", "--column", 68 69 "--fixed-strings", "--line-number", "--ignore-case", "--full-name") 69 70 cmd.AddOptionValues("--context", fmt.Sprint(opts.ContextLineNumber)) 70 71 if opts.MatchesPerFile > 0 {
+25
modules/git/grep_test.go
··· 98 98 assert.Empty(t, res) 99 99 } 100 100 101 + func TestGrepNoBinary(t *testing.T) { 102 + tmpDir := t.TempDir() 103 + 104 + err := InitRepository(DefaultContext, tmpDir, false, Sha1ObjectFormat.Name()) 105 + require.NoError(t, err) 106 + 107 + gitRepo, err := openRepositoryWithDefaultContext(tmpDir) 108 + require.NoError(t, err) 109 + defer gitRepo.Close() 110 + 111 + require.NoError(t, os.WriteFile(path.Join(tmpDir, "BINARY"), []byte("I AM BINARY\n\x00\nYOU WON'T SEE ME"), 0o666)) 112 + require.NoError(t, os.WriteFile(path.Join(tmpDir, "TEXT"), []byte("I AM NOT BINARY\nYOU WILL SEE ME"), 0o666)) 113 + 114 + err = AddChanges(tmpDir, true) 115 + require.NoError(t, err) 116 + 117 + err = CommitChanges(tmpDir, CommitChangesOptions{Message: "Binary and text files"}) 118 + require.NoError(t, err) 119 + 120 + res, err := GrepSearch(context.Background(), gitRepo, "BINARY", GrepOptions{}) 121 + require.NoError(t, err) 122 + assert.Len(t, res, 1) 123 + assert.Equal(t, "TEXT", res[0].Filename) 124 + } 125 + 101 126 func TestGrepLongFiles(t *testing.T) { 102 127 tmpDir := t.TempDir() 103 128