Example #1
0
// gitAdd returns the tree object created by adding files to the index.
func gitAdd(repo *git.Repository, paths ...string) (*git.Tree, error) {
	indx, err := repo.Index()
	if err != nil {
		return nil, err
	}
	defer indx.Free()

	for _, file := range paths {
		err = indx.AddByPath(file)
		if err != nil {
			return nil, err
		}
	}

	err = indx.Write()
	if err != nil {
		return nil, err
	}

	treeID, err := indx.WriteTree()
	if err != nil {
		return nil, err
	}

	tree, err := repo.LookupTree(treeID)
	if err != nil {
		return nil, err
	}
	return tree, nil
}