mirror of
https://github.com/libgit2/libgit2.git
synced 2026-01-25 02:56:17 +00:00
Page:
Libgit2 v1.0 Release Plan
Clone
30
Libgit2 v1.0 Release Plan
Edward Thomson edited this page 2014-01-14 10:37:52 -08:00
Table of Contents
Must Do
These are things without which we will not ship v1.0
- Network - See if we can unify the push and fetch refspec setting (why use a specific push function when you can already add the refspecs to the remote in-memory?) #1125 is somewhat related.
- Network - Coordinate with git-core about what
--tagsis supposed to mean (see current threads from mhagger) - Network - https://github.com/libgit2/libgit2/pull/1199
- ODB - Allow removal of objects from the odb (for backends that can).
- Submodules - Fix bugs with using
.git/configinstead of.gitmodulesand writing to.git/modules/SM/configwhen needed - Diff - Add option for getting unmerged entries if index contains unmerged items
Optional
These are things we would like to get to but will not block 1.0 being shipped
- Status - Add conflict details to status.
- SSH - Add support for accessing the hostkey; do something about ssh config. Maybe we should explicitly rely on libssh2 and give access to the underlying objects so the user can use libssh2 functions directly?
- [MAYBE] Network - Figure out if we want to support stuff like
remote.*.prunewhich recently landed in git. - [MAYBE] Network - Support for url replacements? (like
url.<base>.insteadOf) - [MAYBE] Misc - Support for looking up arbitrary commit header fields
- [MAYBE] Diff - Word diff
- [MAYBE] Diff - Histogram diff
- [MAYBE] Diff - Combined diff format. (I guess this one will involve API changes.)
Code investigations
- Why does
src/netops.c:gitno_connection_data_from_url()discard the path whichgitno_extract_url_partsgave it?
Done
These are things that started on this list but have been D O N E ✨
- [DONE] References - Let's stop pretending that refs and the reflog are two different things. Change the refdb backend to know to update a ref and reflog atomically. See #1920 comment
- [DONE] Network - Always create
FETCH_HEADwhich we currently skip if there are no configured refspecs (we should download the remote's HEAD then and store it inFETCH_HEAD. We also seem to recreate the file for each refspec, when we should put in all of them. See #1914 - [DONE] Network - Better refspec list handling. Currently it's annoying and not all that useful. Do like jgit and use something like
set_refspecs(char *list[])? See #1914 - [DONE] Network -
git_remote_list()is stupid. Return the list instead. - [DONE] References - Get rid of
git_branch_foreach(). It's already using the iterator interface, so if we do want it, let's just make it a multiplexing iterator. #1938 - [DONE] Misc - Have more sensible names for the streaming indexer functions, now that it's the only one we have. Remove
_stream_everywhere, and probably rename_addto_append._finalizeshould probably be named_commitor such. 'Finalize' has different meanings in OO languages. See #1918 - [DONE] Network - Support
multi_ack_detailedand thin packs, as Google Code won't talk to us unless we do. See #1919 formulti_ack_detailed. - [DONE] SSH - More descriptive names for the functions and auth types instead of the confusing key+password vs key+own-crypto divide- [DONE] Merge - Ship it
- [DONE] Blame - Ship it
- [DONE] Misc - Correctly handle
core.precomposeunicode, which is important for non-ASCII filenames on HFS+ - [DONE] Revwalk - It uses recursion to mark commits as uninteresting, which can blow the stack. See #1223 and a proposed fix at #1791
- [DONE] Config - Support for config includes #1833
- [DONE] Config - The XDG/global tests are fragile and currently fail if the user running the tests has a config in the XDG location. These tests need to be isolated better.
- [DONE] Network - Have the indexer check what the hash for a packfile should be.
- [DONE] Misc - Ship some version of public filtering API
- [DONE] Misc - Check if we correctly ref-count the memory windows. See e.g. #1272
- [DONE] Diff - Patience diff
- [DONE] Diff - Minimal diff