When trying to find the end of an email, instead of starting at the
beginning of the signature, we start at the end of the name (after the
first '<').
This brings libgit2 more in line with Git's behavior when reading out
existing signatures.
However, note that Git does not allow names like these through the
usual porcelain; instead, it silently strips any '>' characters it
sees.
The v0.99 tag in the Git repo triggers this behavior:
http://git.kernel.org/?p=git/git.git;a=tag;h=d6602ec5194c87b0fc87103ca4d67251c76f233a
Ideally, we'd allow the tag to be instantiated even though the tagger
field is missing, but this at the very least prevents libgit2 from
crashing.
To test this bug, a new repository has been added based on the test
branch in testrepo.git. It contains a "e90810b" tag that looks like
this:
object e90810b8df3e80c413d903f631643c716887138d
type commit
tag e90810b
This is a very simple tag.
This ensures commit->message is always non-NULL, even if the commit
message is empty or consists of only a newline.
One such commit can be found in the wild in the jQuery repository:
25b424134f
I am aware the codename is not gramatically correct in any language.
Check the COPYING file for the detailed terms on libgit2's license. Check
the AUTHORS file for the full list of guilty parties.
As we slowly stabilize the API, we've dropped 1 function from the library,
and changed the signature of only 5 of them. There's of course a good
chunk of new functionality, and a thousand bug fixes.
In this release of libgit2:
- Changed `git_blob_rawsize`: Now returns `size_t` instead of int, allowing
files >4GB in 64 bit systems.
- Removed `git_commit_message_short`: Please use `git_commit_message`
to get the full message and decide which is the "short view" according
to your needs (first line, first 80 chars...)
- Added `git_commit_message_encoding`: Returns the encoding field of a commit
message, if it exists.
- Changed `git_commit_create`, `git_commit_create_v`: New argument `encoding`, which
adds a encoding field to the generated commit object.
- Added `git_config_find_system`: Returns the path to the system's global config
file (according to the Core Git standards).
- Changed `git_config_get_XX`, `git_config_set_XX`: the `long` and `int` types have
been replaced by `int64` and `int32` respectively, to make their meaning more
obvious.
- Added `git_indexer`: An interface to index Git Packfiles has been added in the
`git2/indexer.h` header.
- Changed `git_reflog_entry_XX`: Reflog entries are now returned as `git_oid *` objects
instead of hexadecimal OIDs.
- Added `git_remote`: More fetch functionality has been added to the `git2/remote.h`
functionality. Local, Smart HTTP and Git protocols are now supported.
- Added `git_repository_head`: Returns the HEAD of the repository.
- Added `git_repository_config_autoload`: Opens the configuration file of a repository,
including the user's and the system's global config files, if they can be found.
- Changed `git_signature_now`: Now returns an error code; the signature is stored by
reference.
As we no longer use the STRLEN macro, the NUL-terminator in the string
was not copied over. Fix this.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
The documentation is a bit misleading. The subsection name is always
case-sensitive, but with a [section.subsection] header, the subsection
is transformed to lowercase when the configuration is parsed.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Winsock wants us to use closesocket() instead of close(), so introduce
the gitno_close function, which does the right thing.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
memset the structure on initialisation and don't try to dereference
the vector with the heads if we didn't find a repository.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Windows wants us to initialise the networking DLL before we're allowed
to send data through a socket. Call WSASetup and WSACleanup if
GIT_WIN32 is defined.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
This is clearer and sidesteps the issue of what the return value of
snprintf is on the particular OS we're running on.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
If ExpandEnvironmentStringsW is successful, it returns the amount of
characters written, including the NUL terminator.
Thanks to Emeric for reading the MSDN documentation correctly.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
6c8b458 removed an "unused" variable needed for git_hashtable_insert2(),
causing a segfault in reference_rename(). Instead, use
git_hashtable_insert().
Signed-off-by: schu <schu-github@schulog.org>