MCPcopy
hub / github.com/git-lfs/git-lfs / migrateExportCommand

Function migrateExportCommand

commands/command_migrate_export.go:20–176  ·  view source on GitHub ↗
(cmd *cobra.Command, args []string)

Source from the content-addressed store, hash-verified

18)
19
20func migrateExportCommand(cmd *cobra.Command, args []string) {
21 ensureWorkingCopyClean(os.Stdin, os.Stderr)
22
23 l := tasklog.NewLogger(os.Stderr,
24 tasklog.ForceProgress(cfg.ForceProgress()),
25 )
26 defer l.Close()
27
28 db, err := getObjectDatabase()
29 if err != nil {
30 ExitWithError(err)
31 }
32 defer db.Close()
33
34 rewriter := getHistoryRewriter(cmd, db, l)
35
36 filter := rewriter.Filter()
37 if len(filter.Include()) <= 0 {
38 ExitWithError(errors.New(tr.Tr.Get("One or more files must be specified with --include")))
39 }
40
41 tracked := trackedFromExportFilter(filter)
42 gitfilter := lfs.NewGitFilter(cfg)
43
44 opts := &githistory.RewriteOptions{
45 Verbose: migrateVerbose,
46 ObjectMapFilePath: objectMapFilePath,
47 BlobFn: func(path string, b *gitobj.Blob) (*gitobj.Blob, error) {
48 if filepath.Base(path) == ".gitattributes" {
49 return b, nil
50 }
51
52 ptr, err := lfs.DecodePointer(b.Contents)
53 if err != nil {
54 if errors.IsNotAPointerError(err) {
55 return b, nil
56 }
57 return nil, err
58 }
59
60 downloadPath, err := gitfilter.ObjectPath(ptr.Oid)
61 if err != nil {
62 return nil, err
63 }
64
65 return gitobj.NewBlobFromFile(downloadPath)
66 },
67
68 TreeCallbackFn: func(path string, t *gitobj.Tree) (*gitobj.Tree, error) {
69 if path != "/" {
70 // Ignore non-root trees.
71 return t, nil
72 }
73
74 ours := tracked
75 theirs, err := trackedFromAttrs(db, t)
76 if err != nil {
77 return nil, err

Callers

nothing calls this directly

Calls 15

CloseMethod · 0.95
ObjectPathMethod · 0.95
ScanRefsMethod · 0.95
NewLoggerFunction · 0.92
ForceProgressFunction · 0.92
NewFunction · 0.92
NewGitFilterFunction · 0.92
DecodePointerFunction · 0.92
IsNotAPointerErrorFunction · 0.92
NewGitScannerFunction · 0.92
IsBareFunction · 0.92
NewFetchPruneConfigFunction · 0.92

Tested by

no test coverage detected