MCPcopy Create free account
hub / github.com/isomorphic-git/isomorphic-git / writeRef

Function writeRef

src/api/writeRef.js:45–98  ·  view source on GitHub ↗
({
  fs: _fs,
  dir,
  gitdir = join(dir, '.git'),
  ref,
  value,
  force = false,
  symbolic = false,
})

Source from the content-addressed store, hash-verified

43 *
44 */
45export async function writeRef({
46 fs: _fs,
47 dir,
48 gitdir = join(dir, '.git'),
49 ref,
50 value,
51 force = false,
52 symbolic = false,
53}) {
54 try {
55 assertParameter('fs', _fs)
56 assertParameter('gitdir', gitdir)
57 assertParameter('ref', ref)
58 assertParameter('value', value)
59
60 const fs = new FileSystem(_fs)
61
62 if (!validRef(ref, true)) {
63 throw new InvalidRefNameError(ref, cleanGitRef.clean(ref))
64 }
65
66 const updatedGitdir = await discoverGitdir({ fsp: fs, dotgit: gitdir })
67 if (
68 !force &&
69 (await GitRefManager.exists({ fs, gitdir: updatedGitdir, ref }))
70 ) {
71 throw new AlreadyExistsError('ref', ref)
72 }
73
74 if (symbolic) {
75 await GitRefManager.writeSymbolicRef({
76 fs,
77 gitdir: updatedGitdir,
78 ref,
79 value,
80 })
81 } else {
82 value = await GitRefManager.resolve({
83 fs,
84 gitdir: updatedGitdir,
85 ref: value,
86 })
87 await GitRefManager.writeRef({
88 fs,
89 gitdir: updatedGitdir,
90 ref,
91 value,
92 })
93 }
94 } catch (err) {
95 err.caller = 'git.writeRef'
96 throw err
97 }
98}

Callers 2

test-writeRef.jsFile · 0.85

Calls 7

joinFunction · 0.90
assertParameterFunction · 0.90
discoverGitdirFunction · 0.90
writeSymbolicRefMethod · 0.80
resolveMethod · 0.80
writeRefMethod · 0.80
existsMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…