Commit Briefs

1252b141a2 Stefan Sperling

CHANGES for 0.47 (tags/0.47)


888b7d9932 Stefan Sperling

make use of a reflist object id map in 'got log'

Impoves performance of 'got log' on the FreeBSD Git repo which can easily contain more than 4000 references.


f0ff8d4c1b Stefan Sperling

fix tag object leak introduced in previous commit


24202e4649 Stefan Sperling

add tagged object IDs to reference list object ID map

Fixes display of "/tags/..." commit ID decorators in tog which was broken in previous commits.


a53af95f5e Stefan Sperling

fix error return from got_reflist_object_id_map_create()



dae613fa0e Stefan Sperling

remove a comment that is now misleading


d9dff0e5c6 Stefan Sperling

switch reflist to TAILQ; insert elements more efficiently for sorted input

ok naddy


87670572d0 Christian Weisgerber

switch the "tog <path>" log view shortcut to the global reference list, too

ok stsp


84de91061b Stefan Sperling

Add a refs argument to got_repo_match_object_id(), replacing 'resolve_tags'

Make use of this where possible to avoid re-reading references from disk. ok naddy


8924d611db Stefan Sperling

switch tog ref view to the global reference list as well

ok naddy


51a10b52c0 Stefan Sperling

make tog store refs and object id map in global variables instead of per view

ok naddy



d2075bf3e6 Stefan Sperling

make use of reflist object id maps in tog log and diff views

This is a partial fix for performance issues when browsing the FreeBSD Git repo, which can easily contain more than 4000 references. ok naddy


7b5b670e54 Stefan Sperling

implement an object ID map for reference lists

ok naddy


4c4ce67b62 Stefan Sperling

fix assignment to wrong pointer in got_ref_dup()

ok naddy


838b0131d8 Stefan Sperling

bump version number


22cbd110a8 Stefan Sperling

CHANGES for 0.46 (tags/0.46)


9a02f8b791 Stefan Sperling

switch to strerror_r(3) in error.c for thread-safety


c884fd0a8e Stefan Sperling

introduce got_custom_error array to support multiple errors in flight

This is still not thread-safe but at least avoids errors overwriting each other in single-threaded contexts.


ccf6dd5ee6 Stefan Sperling

avoid signed vs unsigned comparisons in fetch.c

ssizeof() macro idea courtesy of millert@ ok millert@


c156c7a4f4 Stefan Sperling

do not mix up repositories if tog's -r option is used inside a work tree

with input from and ok naddy


5a8b373cd0 Stefan Sperling

fix parsing of tag objects which lack a tag message

This problem could be triggered with the u-boot repository: $ git clone --bare https://gitlab.denx.de/u-boot/u-boot.git $ got log -r u-boot.git got-read-pack: bad object data got: bad object data $


e8bfb8f399 Stefan Sperling

fix path existence check in got_object_tree_path_changed()

A symptom of this was a segfault in 'got blame distrib/miniroot/install.sub' with the OpenBSD src.git from github, reported by jrick. The problem was that the commit graph traversed one commit too far. This could be more easily reproduced with 'got log': got log -c 05f568 -P distrib/miniroot/install.sub Which listed two commits instead of just the first one: 05f568ecc6aadefa1aff9064a29e798874a71409 <-- install.sub first created here 7c0d87f00e480cdf004324dad6f3e6f4418f8f42 "distrib/miniroot" exists in 7c0d87f00e480cdf004324... but not in the parent of this commit. Ensure that we traverse the full path in tree1 even if an intermediate tree2 cannot be opened. Instead of reporting success and a file change if we can't traverse further through tree2, we now hit this failing attempt to open the file 'install.sub' in tree object 180aa33df8d1 (tree1): te1 = find_entry_by_name(tree1, seg, seglen); if (te1 == NULL) { err = got_error(GOT_ERR_NO_OBJ); goto done; } fix tested and ok jrick