(t *testing.T, repo *Repository, refName string, treeID plumbing.Hash, when time.Time)
| 1780 | } |
| 1781 | |
| 1782 | func 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 | } |
no test coverage detected
searching dependent graphs…