mirror of
https://gitcode.com/gitea/gitea.git
synced 2025-07-27 03:22:30 +08:00
Dump: add output format tar and output to stdout (#10376)
* Dump: Use mholt/archive/v3 to support tar including many compressions Signed-off-by: Philipp Homann <homann.philipp@googlemail.com> * Dump: Allow dump output to stdout Signed-off-by: Philipp Homann <homann.philipp@googlemail.com> * Dump: Fixed bug present since #6677 where SessionConfig.Provider is never "file" Signed-off-by: Philipp Homann <homann.philipp@googlemail.com> * Dump: never pack RepoRootPath, LFS.ContentPath and LogRootPath when they are below AppDataPath Signed-off-by: Philipp Homann <homann.philipp@googlemail.com> * Dump: also dump LFS (fixes #10058) Signed-off-by: Philipp Homann <homann.philipp@googlemail.com> * Dump: never dump CustomPath if CustomPath is a subdir of or equal to AppDataPath (fixes #10365) Signed-off-by: Philipp Homann <homann.philipp@googlemail.com> * Use log.Info instead of fmt.Fprintf Signed-off-by: Philipp Homann <homann.philipp@googlemail.com> * import ordering * make fmt Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: techknowlogick <techknowlogick@gitea.io> Co-authored-by: Matti R <matti@mdranta.net>
This commit is contained in:
cmd
go.modgo.summodules/setting
vendor
github.com
andybalholm/brotli
LICENSEREADME.mdbackward_references.gobackward_references_hq.gobit_cost.gobit_reader.goblock_splitter.goblock_splitter_command.goblock_splitter_distance.goblock_splitter_literal.gobrotli_bit_stream.gocluster.gocluster_command.gocluster_distance.gocluster_literal.gocommand.gocompress_fragment.gocompress_fragment_two_pass.goconstants.gocontext.godecode.godictionary.godictionary_hash.goencode.goencoder_dict.goentropy_encode.goentropy_encode_static.gofast_log.gofind_match_length.gogo.modgo.sumh10.goh5.goh6.gohash.gohash_composite.gohash_forgetful_chain.gohash_longest_match_quickly.gohash_rolling.gohistogram.gohuffman.goliteral_cost.gomemory.gometablock.gometablock_command.gometablock_distance.gometablock_literal.goparams.goplatform.goprefix.goprefix_dec.goquality.goreader.goringbuffer.gostate.gostatic_dict.gostatic_dict_lut.gosymbol_list.gotransform.goutf8_util.goutil.gowrite_bits.gowriter.go
dsnet/compress
.travis.ymlLICENSE.mdREADME.mdapi.go
bzip2
go.modgo.suminternal
zbench.shzfuzz.shzprof.shztest.shgolang/gddo
klauspost
compress
fse
huff0
snappy
.gitignoreAUTHORSCONTRIBUTORSLICENSEREADMEdecode.godecode_amd64.godecode_amd64.sdecode_other.goencode.goencode_amd64.goencode_amd64.sencode_other.gorunbench.cmdsnappy.go
zstd
README.mdbitreader.gobitwriter.goblockdec.goblockenc.goblocktype_string.gobytebuf.gobytereader.godecoder.godecoder_options.goenc_dfast.goenc_fast.goenc_params.goencoder.goencoder_options.goframedec.goframeenc.gofse_decoder.gofse_encoder.gofse_predefined.gohash.gohistory.go
internal/xxhash
seqdec.goseqenc.gosnappy.gozstd.gopgzip
mholt/archiver/v3
.gitignoreLICENSEREADME.mdarchiver.goazure-pipelines.ymlbrotli.gobuild.bashbz2.gofilecompressor.gogo.modgo.sumgz.golz4.gorar.gosz.gotar.gotarbrotli.gotarbz2.gotargz.gotarlz4.gotarsz.gotarxz.gotarzst.goxz.gozip.gozstd.go
nwaples/rardecode
LICENSEREADME.mdarchive.goarchive15.goarchive50.gobit_reader.godecode29.godecode29_lz.godecode29_ppm.godecode50.godecode_reader.godecrypt_reader.gofilters.gogo.modhuffman.goppm_model.goreader.govm.go
pierrec/lz4
.gitignore.travis.ymlLICENSEREADME.mdblock.godebug.godebug_stub.go
internal/xxh32
lz4.golz4_go1.10.golz4_notgo1.10.goreader.gowriter.goulikunitz/xz
.gitignoreLICENSEREADME.mdTODO.mdbits.gocrc.goformat.gofox.xzgo.mod
internal
lzma
bintree.gobitops.gobreader.gobuffer.gobytewriter.godecoder.godecoderdict.godirectcodec.godistcodec.goencoder.goencoderdict.gofox.lzmahashtable.goheader.goheader2.golengthcodec.goliteralcodec.gomatchalgorithm.gooperation.goprob.goproperties.gorangecodec.goreader.goreader2.gostate.gotreecodecs.gowriter.gowriter2.go
lzmafilter.gomake-docsreader.gowriter.gounknwon/cae
xi2/xz
159
vendor/github.com/dsnet/compress/internal/prefix/debug.go
generated
vendored
Normal file
159
vendor/github.com/dsnet/compress/internal/prefix/debug.go
generated
vendored
Normal file
@ -0,0 +1,159 @@
|
||||
// Copyright 2015, Joe Tsai. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE.md file.
|
||||
|
||||
// +build debug
|
||||
|
||||
package prefix
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func max(a, b int) int {
|
||||
if a > b {
|
||||
return a
|
||||
}
|
||||
return b
|
||||
}
|
||||
|
||||
func lenBase2(n uint) int {
|
||||
return int(math.Ceil(math.Log2(float64(n + 1))))
|
||||
}
|
||||
func padBase2(v, n uint, m int) string {
|
||||
s := fmt.Sprintf("%b", 1<<n|v)[1:]
|
||||
if pad := m - len(s); pad > 0 {
|
||||
return strings.Repeat(" ", pad) + s
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
func lenBase10(n int) int {
|
||||
return int(math.Ceil(math.Log10(float64(n + 1))))
|
||||
}
|
||||
func padBase10(n, m int) string {
|
||||
s := fmt.Sprintf("%d", n)
|
||||
if pad := m - len(s); pad > 0 {
|
||||
return strings.Repeat(" ", pad) + s
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
func (rc RangeCodes) String() string {
|
||||
var maxLen, maxBase int
|
||||
for _, c := range rc {
|
||||
maxLen = max(maxLen, int(c.Len))
|
||||
maxBase = max(maxBase, int(c.Base))
|
||||
}
|
||||
|
||||
var ss []string
|
||||
ss = append(ss, "{")
|
||||
for i, c := range rc {
|
||||
base := padBase10(int(c.Base), lenBase10(maxBase))
|
||||
if c.Len > 0 {
|
||||
base += fmt.Sprintf("-%d", c.End()-1)
|
||||
}
|
||||
ss = append(ss, fmt.Sprintf("\t%s: {len: %s, range: %s},",
|
||||
padBase10(int(i), lenBase10(len(rc)-1)),
|
||||
padBase10(int(c.Len), lenBase10(maxLen)),
|
||||
base,
|
||||
))
|
||||
}
|
||||
ss = append(ss, "}")
|
||||
return strings.Join(ss, "\n")
|
||||
}
|
||||
|
||||
func (pc PrefixCodes) String() string {
|
||||
var maxSym, maxLen, maxCnt int
|
||||
for _, c := range pc {
|
||||
maxSym = max(maxSym, int(c.Sym))
|
||||
maxLen = max(maxLen, int(c.Len))
|
||||
maxCnt = max(maxCnt, int(c.Cnt))
|
||||
}
|
||||
|
||||
var ss []string
|
||||
ss = append(ss, "{")
|
||||
for _, c := range pc {
|
||||
var cntStr string
|
||||
if maxCnt > 0 {
|
||||
cnt := int(32*float32(c.Cnt)/float32(maxCnt) + 0.5)
|
||||
cntStr = fmt.Sprintf("%s |%s",
|
||||
padBase10(int(c.Cnt), lenBase10(maxCnt)),
|
||||
strings.Repeat("#", cnt),
|
||||
)
|
||||
}
|
||||
ss = append(ss, fmt.Sprintf("\t%s: %s, %s",
|
||||
padBase10(int(c.Sym), lenBase10(maxSym)),
|
||||
padBase2(uint(c.Val), uint(c.Len), maxLen),
|
||||
cntStr,
|
||||
))
|
||||
}
|
||||
ss = append(ss, "}")
|
||||
return strings.Join(ss, "\n")
|
||||
}
|
||||
|
||||
func (pd Decoder) String() string {
|
||||
var ss []string
|
||||
ss = append(ss, "{")
|
||||
if len(pd.chunks) > 0 {
|
||||
ss = append(ss, "\tchunks: {")
|
||||
for i, c := range pd.chunks {
|
||||
label := "sym"
|
||||
if uint(c&countMask) > uint(pd.chunkBits) {
|
||||
label = "idx"
|
||||
}
|
||||
ss = append(ss, fmt.Sprintf("\t\t%s: {%s: %s, len: %s}",
|
||||
padBase2(uint(i), uint(pd.chunkBits), int(pd.chunkBits)),
|
||||
label, padBase10(int(c>>countBits), 3),
|
||||
padBase10(int(c&countMask), 2),
|
||||
))
|
||||
}
|
||||
ss = append(ss, "\t},")
|
||||
|
||||
for j, links := range pd.links {
|
||||
ss = append(ss, fmt.Sprintf("\tlinks[%d]: {", j))
|
||||
linkBits := lenBase2(uint(pd.linkMask))
|
||||
for i, c := range links {
|
||||
ss = append(ss, fmt.Sprintf("\t\t%s: {sym: %s, len: %s},",
|
||||
padBase2(uint(i), uint(linkBits), int(linkBits)),
|
||||
padBase10(int(c>>countBits), 3),
|
||||
padBase10(int(c&countMask), 2),
|
||||
))
|
||||
}
|
||||
ss = append(ss, "\t},")
|
||||
}
|
||||
}
|
||||
ss = append(ss, fmt.Sprintf("\tchunkMask: %b,", pd.chunkMask))
|
||||
ss = append(ss, fmt.Sprintf("\tlinkMask: %b,", pd.linkMask))
|
||||
ss = append(ss, fmt.Sprintf("\tchunkBits: %d,", pd.chunkBits))
|
||||
ss = append(ss, fmt.Sprintf("\tMinBits: %d,", pd.MinBits))
|
||||
ss = append(ss, fmt.Sprintf("\tNumSyms: %d,", pd.NumSyms))
|
||||
ss = append(ss, "}")
|
||||
return strings.Join(ss, "\n")
|
||||
}
|
||||
|
||||
func (pe Encoder) String() string {
|
||||
var maxLen int
|
||||
for _, c := range pe.chunks {
|
||||
maxLen = max(maxLen, int(c&countMask))
|
||||
}
|
||||
|
||||
var ss []string
|
||||
ss = append(ss, "{")
|
||||
if len(pe.chunks) > 0 {
|
||||
ss = append(ss, "\tchunks: {")
|
||||
for i, c := range pe.chunks {
|
||||
ss = append(ss, fmt.Sprintf("\t\t%s: %s,",
|
||||
padBase10(i, 3),
|
||||
padBase2(uint(c>>countBits), uint(c&countMask), maxLen),
|
||||
))
|
||||
}
|
||||
ss = append(ss, "\t},")
|
||||
}
|
||||
ss = append(ss, fmt.Sprintf("\tchunkMask: %b,", pe.chunkMask))
|
||||
ss = append(ss, fmt.Sprintf("\tNumSyms: %d,", pe.NumSyms))
|
||||
ss = append(ss, "}")
|
||||
return strings.Join(ss, "\n")
|
||||
}
|
Reference in New Issue
Block a user