| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \ \ \
| |_|/ /
|/| | | |
Merge checkout strategy
|
| | | | |
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | | |
fetchhead: deal with quotes in branch names
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The current FETCH_HEAD parsing code assumes that a quote must end the
branch name. Git however allows for quotes as part of a branch name,
which causes us to consider the FETCH_HEAD file as invalid.
Instead of searching for a single quote char, search for a quote char
followed by SP, which is not a valid part of a ref name.
|
|\ \ \
| | | |
| | | | |
patch: emit deflated binary patches (optionally)
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Win32: UTF-8 <-> WCHAR conversion overhaul
|
| | | | | |
|
| | | | | |
|
| | |_|/
| |/| | |
|
|\ \ \ \
| |_|_|/
|/| | | |
Some doc and examples/diff.c changes
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This takes the `--stat` and related example options in the example
diff.c program and converts them to use the `git_diff_get_stats`
API which nicely formats stats for you.
I went to add bar-graph scaling to the stats formatter and noticed
that the `git_diff_stats` structure was holding on to all of the
`git_patch` objects. Unfortunately, each of these objects keeps
the full text of the diff in memory, so this is very expensive. I
ended up modifying `git_diff_stats` to keep just the data that it
needs to keep and allowed it to release the patches. Then, I added
width scaling to the output on top of that.
In making the diff example program match 'git diff' output, I ended
up removing an newline from the sumamry output which I then had to
compensate for in the email formatting to match the expectations.
Lastly, I went through and refactored the tests to use a couple of
helper functions and reduce the overall amount of code there.
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
I was playing with "git diff-index" and wanted to be able to
emulate that behavior a little more closely with the diff example.
Also, I wanted to play with running `git_diff_tree_to_workdir`
directly even though core Git doesn't exactly have the equivalent,
so I added a command line option for that and tweaked some other
things in the example code.
This changes a minor output thing in that the "raw" print helper
function will no longer add ellipses (...) if the OID is not
actually abbreviated.
|
|\ \ \
| | | |
| | | | |
A few niceties for binding authors
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Allow the credentials callback to return GIT_PASSTHROUGH to make the
transports code behave as though none was set.
This should make it easier for bindings to behave closer to the C code
when there is no credentials callback set at their level.
|
|/ / /
| | |
| | |
| | |
| | | |
This should make it easier for bindings to dynamically override their
own callbacks.
|
|\ \ \
| | | |
| | | | |
Fix some issues from the last Coverity scan
|
| | |/
| |/| |
|
|\ \ \
| |/ /
|/| | |
Fix reset for staged deletes
|
|/ / |
|
|\ \
| | |
| | | |
Check for compiler flag support instead of checking for a platform
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This simplifies platform/compiler dependent checks where we optionally
enable features or disable warnings.
|
| | | |
|
| | |
| | |
| | |
| | | |
Reported by coverity.
|
| |/
|/|
| |
| |
| | |
Returning an error cleared the buf, but this operation does not free the
memory associated with it. Use git_buf_free() instead.
|
|\ \
| | |
| | | |
Add support for SSH keyboard-interactive authentication
|
| | |
| | |
| | |
| | | |
allocated by us)
|
| | | |
|
| | | |
|
| |/
| |
| |
| | |
This allows for keyboard-interactive based SSH authentication
|
|\ \
| | |
| | | |
Fix several ignore and attribute file behavior bugs
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Only apply LEADING_DIR pattern munging to patterns in ignore and
attribute files, not to pathspecs used to select files to operate
on. Also, allow internal macro definitions to be evaluated before
loading all external ones (important so that external ones can
make use of internal `binary` definition).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Ignore patterns that ended with a trailing '/*' were still needing
to match against another actual '/' character in the full path.
This is not the same behavior as core Git.
Instead, we strip a trailing '/*' off of any patterns that were
matching and just take it to imply the FNM_LEADING_DIR behavior.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There was a latent bug where files that use macro definitions
could be parsed before the macro definitions were loaded. Because
of attribute file caching, preloading files that are going to be
used doesn't add a significant amount of overhead, so let's always
preload any files that could contain macros before we assemble the
actual vector of files to scan for attributes.
|
| | | |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When traversing the directory structure, the iterator pushes and
pops ignore files using a vector. Some directories don't have
ignore files, so it uses a path comparison to decide when it is
right to actually pop the last ignore file. This was only
comparing directory suffixes, though, so a subdirectory with the
same name as a parent could result in the parent's .gitignore
being popped off the list ignores too early. This changes the
logic to compare the entire relative path of the ignore file.
|
|\ \
| |/
|/| |
Introduce core.safecrlf handling
|
| | |
|
| | |
|
|\ \
| | |
| | | |
cred: tighten username rules
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The ssh-specific credentials allow the username to be missing. The idea
being that the ssh transport will then use the username provided in the
url, if it's available. There are two main issues with this.
The credential callback already knows what username was provided by the
url and needs to figure out whether it wants to ask the user for it or
it can reuse it, so passing NULL as the username means the credential
callback is suspicious.
The username provided in the url is not in fact used by the
transport. The only time it even considers it is for the user/pass
credential, which asserts the existence of a username in its
constructor. For the ssh-specific ones, it passes in the username stored
in the credential, which is NULL. The libssh2 macro we use runs strlen()
against this value (which is no different from what we would be doing
ourselves), so we then crash.
As the documentation doesn't suggest to leave out the username, assert
the need for a username in the code, which removes this buggy behavior
and removes implicit state.
git_cred_has_username() becomes a blacklist of credential types that do
not have a username. The only one at the moment is the 'default' one,
which is meant to call up some Microsoft magic.
|
|\ \
| | |
| | | |
Make index iterator thread safe
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The checks to see if files were out of date in the attibute cache
was wrong because the cache-breaker data wasn't getting stored
correctly. Additionally, when the cache-breaker triggered, the
old file data was being leaked.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
I don't love this approach, but achieving thread-safety for
attribute and ignore data while reloading files would require a
larger rewrite in order to avoid this. If an attribute or ignore
file is out of date, this holds a lock on the file while we are
reloading the data so that another thread won't try to reload the
data at the same time.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In the threading tests, I was still seeing a race condition where
the same item could end up being inserted multiple times into the
index. Preserving the sorted-ness of the index outside of the
`index_insert` call fixes the issue.
|