Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
# List all files that have ever been committed in this repository, in any
# commit in any branch.
import pygit2
import stat
def list_all_files(repo_path):
repo = pygit2.Repository(repo_path)
walker = repo.walk(, pygit2.GIT_SORT_NONE)
files = {}
for ref in repo.listall_references():
if not ref.startswith('refs/heads'):
for ref in walker:
add_tree(repo, ref.tree, '', files)
files = files.keys()
return sorted(files)
def add_tree(repo, tree, prefix, files):
for file in tree:
fullname = '%s/%s' % (prefix,
if stat.S_ISDIR(file.filemode):
add_tree(repo, file, fullname, files)
files[fullname] = 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.