| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When a submodule was inserted with a different path and name, the
return value from khash greater than zero was allowed to propagate
back out to the caller when it should really be zeroed. This led
to a possible crash when reloading submodules if that was the
first time that submodule data was loaded.
|
| | |
| | |
| | |
| | |
| | |
| | | |
The reload_all call could end up dereferencing a NULL pointer if
there was an error while attempting to load the submodules config
data (i.e. invalid content in the gitmodules file). This fixes it.
|
| | | |
|
|\ \ \
| |_|/
|/| | |
Make submodules externally refcounted
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
`git_submodule` objects were already refcounted internally in case
the submodule name was different from the path at which it was
stored. This makes that refcounting externally used as well, so
`git_submodule_lookup` and `git_submodule_add_setup` return an
object that requires a `git_submodule_free` when done.
|
|\ \ \
| | | |
| | | | |
Update behavior for untracked contained repositories
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When a directory containing a .git directory (or even just a plain
gitlink) was found, libgit2 was going out of its way to treat it
specially. This seemed like it was necessary because the diff
code was not originally emulating Git's behavior for untracked
directories correctly (i.e. scanning for ignored vs untracked items
inside). Now that libgit2 diff mimics Git's untracked directory
behavior, the special handling for contained Git repos is actually
incorrect and this commit rips it out.
|
| | | |
|
|\ \ \
| |/ /
|/| | |
Callback function to hide commit and its parents in revision walker
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| |/ /
|/| | |
Refactor the `git_merge` API
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This survived the last round of culling, as the signature is only in the
comments.
|
|/ /
| |
| |
| |
| | |
On bare by default, or when core.logallrefupdates is false, we must not
write the reflog.
|
| |
| |
| |
| |
| | |
Given HEAD -> master -> foo, when updating foo's reflog we should also
update HEAD's, as it's considered the current branch.
|
| |
| |
| |
| |
| |
| | |
The reflog append function was overzealous in its checking. When passed
an old and new ids, it should not do any checking, but just serialize
the data to a reflog entry.
|
| |
| |
| |
| |
| | |
If the caller wants to update a ref to point to the same target as it
currently has, we should return early and avoid writing to the reflog.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The existing ones lack checking zeroed ids when switching back from an
unborn branch as well as what happens when detaching.
The reflog appending function mistakenly wrote zeros when dealing with a
detached HEAD. This explicitly checks for those situations and fixes
them.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
When we update the current branch, we must also append to HEAD's reflog
to keep them in sync.
This is a bit of a hack, but as git.git says, it covers 100% of
default cases.
|
| |
| |
| |
| |
| |
| | |
This is not something anybody would ever do; removing HEAD makes the
.git/ directory no longer be a repository, so we wouldn't be expected to
handle such a situation.
|
|/
|
|
|
|
| |
If the pqueue comparison fn returned just 0 or 1 (think "a<b")
then the sort order of returned items could be wrong because there
was a "< 0" that really needed to be "<= 0". Yikes!!!
|
| |
|
|\
| |
| | |
Rename options structures
|
| | |
|
| | |
|
| | |
|
|/ |
|
|
|
|
|
| |
MSVC doesn't like declaring variables in the middle of a block, so make
sure we only declare variables at the beginning of a block.
|
|
|
|
| |
The basic structure of each function is courtesy of arrbee.
|
|\
| |
| | |
Add ODB API to check for existence by prefix and object id shortener
|
| |
| |
| |
| |
| |
| | |
This finds a short id string that will unambiguously select the
given object, starting with the core.abbrev length (usually 7)
and growing until it is no longer ambiguous.
|
| | |
|
|\ \
| |/
|/| |
ODB writing fails gracefully when unsupported
|
| |
| |
| |
| | |
If no ODB backends support writing, we should fail gracefully.
|