MCPcopy
hub / github.com/go-git/go-git / writeCommitToRef

Function writeCommitToRef

remote_test.go:1782–1827  ·  view source on GitHub ↗
(t *testing.T, repo *Repository, refName string, treeID plumbing.Hash, when time.Time)

Source from the content-addressed store, hash-verified

1780}
1781
1782func writeCommitToRef(t *testing.T, repo *Repository, refName string, treeID plumbing.Hash, when time.Time) plumbing.Hash {
1783 t.Helper()
1784
1785 ref, err := repo.Reference(plumbing.ReferenceName(refName), true)
1786 if err != nil {
1787 if errors.Is(err, plumbing.ErrReferenceNotFound) {
1788 if err := repo.Storer.SetReference(plumbing.NewHashReference(plumbing.ReferenceName(refName), plumbing.ZeroHash)); err != nil {
1789 t.Fatal(err)
1790 }
1791
1792 ref, err = repo.Reference(plumbing.ReferenceName(refName), true)
1793 if err != nil {
1794 t.Fatal(err)
1795 }
1796 } else {
1797 t.Fatal(err)
1798 }
1799 }
1800
1801 commit := &object.Commit{
1802 TreeHash: treeID,
1803 Author: object.Signature{
1804 When: when,
1805 },
1806 }
1807 if !ref.Hash().IsZero() {
1808 commit.ParentHashes = []plumbing.Hash{ref.Hash()}
1809 }
1810
1811 obj := repo.Storer.NewEncodedObject()
1812 if err := commit.Encode(obj); err != nil {
1813 t.Fatal(err)
1814 }
1815
1816 commitID, err := repo.Storer.SetEncodedObject(obj)
1817 if err != nil {
1818 t.Fatal(err)
1819 }
1820
1821 newRef := plumbing.NewHashReference(plumbing.ReferenceName(refName), commitID)
1822 if err := repo.Storer.CheckAndSetReference(newRef, ref); err != nil {
1823 t.Fatal(err)
1824 }
1825
1826 return commitID
1827}

Callers 1

Calls 11

EncodeMethod · 0.95
ReferenceNameTypeAlias · 0.92
NewHashReferenceFunction · 0.92
IsMethod · 0.80
ReferenceMethod · 0.65
SetReferenceMethod · 0.65
IsZeroMethod · 0.65
HashMethod · 0.65
NewEncodedObjectMethod · 0.65
SetEncodedObjectMethod · 0.65
CheckAndSetReferenceMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…