Commit Briefs
Expose got_ref_name_is_valid() for general purpose use.
This will be needed for a future 'got send' command.
expose got_ref_resolve_symbolic() at the public library API
This will be needed by a future 'got send' command.
expose the reflist_insert() helper function as got_reflist_insert()
This will be needed by 'gotadmin pack'.
validate reference names in open_ref()
This catches invalid reference names passed to 'got ref -l' and will also be needed to validate reference names passed to a future 'gotadmin pack' command. ok naddy@
plug a memory leak in got_ref_list_free()
Code which inserts a reference into a reflist passes ownership of this reference to the list. However, got_ref_list_free() never closed such references, which resulted in a memory leak. ok tracey
ensure that old commits remain referenced after rebase and histedit
Create automatic "backup" references which ensure that objects from the pre-rebase or pre-histedit state remain in the repository. A new -l option for 'got rebase' and 'got histedit' lists old commits. This makes it easier to recover from botched rebase or histedit operations. Removal of such objects currently requires got ref -d and git-gc. This will be made more convenient in the future. testing and ok jrick
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.
make dangling symbolic references show up in 'got ref -l'
Storing a resolved ID for each reference list item was a bad idea. This ID cannot be resolved if a symbolic references points to a reference which does not exist. Such symrefs were skipped by got ref -l as a result. Just let users of reference lists resolve the IDs as needed.